happic:
ํ๋ฃจ ํ ์ปท์ ์ฌ์ง๊ณผ ํค์๋ ๋ถ์์ด ์๋ ค์ฃผ๋ ๋์ ํ๋ณต, ํดํฝ
30th THE SOPT APP JAM
ํ๋ก์ ํธ ๊ธฐ๊ฐ : 2021.07.02 ~ 2021.07.23
Team happic iOS Developers
์ด์ธ์ง | ์ค์๋น | ๊ฐ์นํ |
lsj8706 | devxsby | ZaidKang |
Development Environment and Using Library
- Development Environment
- Library
๋ผ์ด๋ธ๋ฌ๋ฆฌ | ์ฌ์ฉ ๋ชฉ์ | Version | Management Tool |
---|---|---|---|
Alamofire | ์๋ฒ ํต์ | 5.6.1 | SPM |
SnapKit | UI Layout | 5.0.0 | SPM |
Then | UI ์ ์ธ | 3.0.0 | SPM |
Kingfisher | ์ด๋ฏธ์ง ์ฒ๋ฆฌ | 7.2.4 | SPM |
Tabman | ๋ทฐ ํ์ด์ ์ปค์คํ | 2.12.0 | SPM |
pageboy | ๋ทฐ ํ์ด์ ์ปค์คํ | 3.6.2 | SPM |
- framework
ํ๋ ์์ํฌ | ์ฌ์ฉ ๋ชฉ์ |
---|---|
UIKit | UI ๊ตฌํ |
Coding Convention
โจ
Git Branch Convention
- Branch Naming Rule
- Issue ์์ฑ ํ ์์ฑ๋๋ ๋ฒํธ์ Issue์ ๊ฐ๋ตํ ์ค๋ช ๋ฑ์ ์กฐํฉํ์ฌ Branch ์ด๋ฆ ๊ฒฐ์
<Prefix>/<#IssueNumber>-<Description>
- Commit Message Rule
[Prefix] : <Description>
- Code Review Rule
- ์ฝ๋ ๋ฆฌ๋ทฐ๋ ์ต๋ํ ๋นจ๋ฆฌ ํ๋ค.
- ์ฝ๋ ๋ฆฌ๋ทฐ๋ ์ต๋ํ ์ ์ฑ๊ป ํ๋ค.
โจ
Git Flow
1. ์์
๋จ์๋ณ Issue ์์ฑ : ๋ด๋น์, ๋ผ๋ฒจ, ํ๋ก์ ํธ ์ฐ๊ฒฐ
2. Fork ๋ฐ์ ๋ก์ปฌ ๋ ํฌ์์ develop ๋ธ๋์น ์ต์ ํ : git pull (origin develop)
3. Branch ์์ฑ : git switch -c Prefix/#IssueNumber-description
> ์์) chore/#3-Project-Setting
4. ๋ก์ปฌ ํ๊ฒฝ์์ ์์
ํ Add -> Commit -> Push -> Pull Request์ ๊ณผ์ ์ ๊ฑฐ์น๋ค.
Prefix์ ์๋ฏธ
> [Feat] : ์๋ก์ด ๊ธฐ๋ฅ ๊ตฌํ
> [Chore] : ๊ทธ ์ด์ธ์ ์ก์ผ/ ๋ฒ์ ์ฝ๋ ์์ , ํจํค์ง ๊ตฌ์กฐ ๋ณ๊ฒฝ, ํ์ผ ์ด๋, ํ์ผ์ด๋ฆ ๋ณ๊ฒฝ
> [Add] : ์ฝ๋ ๋ณ๊ฒฝ ์๋ ๋จ์ ํ์ผ ์ถ๊ฐ, ์์
๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ถ๊ฐ
> [Fix] : ๋ฒ๊ทธ, ์ค๋ฅ ํด๊ฒฐ, ์ฝ๋ ์์
> [Style] : ์ฝ๋ ํฌ๋งทํ
, ์ฝ๋ ๋ณ๊ฒฝ์ด ์๋ ๊ฒฝ์ฐ, ์ฃผ์ ์์
> [Docs] : README๋ WIKI ๋ฑ์ ๋ฌธ์ ๊ฐ์
> [Refactor] : ์ ๋ฉด ์์ ์ด ์์ ๋ ์ฌ์ฉํฉ๋๋ค
> [Test] : ํ
์คํธ ๋ชจ๋, ๋ฆฌํํ ๋ง ํ
์คํธ ์ฝ๋ ์ถ๊ฐ
5. Pull Request ์์ฑ
- closed : #IssueNumber๋ก ์ด์ ์ฐ๊ฒฐ, ๋ฆฌ๋ทฐ์ด ์ง์
6. Code Review ์๋ฃ ํ Pull Request ์์ฑ์๊ฐ develop Branch๋ก mergeํ๊ธฐ
- Develop Branch protection rules : Merge ์ ์ต์ 1 Approve ํ์
7. ์ข
๋ฃ๋ Issue์ Pull Request์ Label๊ณผ Project๋ฅผ ๊ด๋ฆฌ
โจ
Naming & Code Convention
- ํจ์, ๋ฉ์๋ : lowerCamelCase ์ฌ์ฉํ๊ณ , ๋์ฌ๋ก ์์ํ๋ค.
- ๋ณ์, ์์ : lowerCamelCase ์ฌ์ฉํ๋ค.
- ํด๋์ค, ๊ตฌ์กฐ์ฒด, enum, extension ๋ฑ : UpperCamelCase ์ฌ์ฉํ๋ค.
- ๊ธฐ๋ณธ MVC ํด๋๋ง ๊ตฌ์กฐ์ ๋ฐ๋ผ ํ์ผ์ ๊ตฌ๋ถํ์ฌ ์ฌ์ฉํ๋ค.
- ํ์ผ, ๋ฉ์๋, ํด๋์ค ๋ช
์ฝ์ด ์ฌ์ฉ ์ง์ํ๋ค.
- ์์) ViewController โ
VC (โ)
- ์์) CollectionViewCell โ
CVC (โ)
- ์์) loginButtonDidTap: UIButton ->
loginBtnTapped (โ)
- ์์) ViewController โ
- ์ด๊ธฐ UI ๋ ์ด์์ ์ก์์ค๋๋ง configure ํค์๋๋ฅผ ์ฌ์ฉํ๊ณ , ์ด์ธ๋ set ํค์๋๋ฅผ ์ฌ์ฉํ๋ค.
- ์์) func configureUI โ
func setUI (โ)
- ์์) func setDelegate ... โ
func configureDelegate (โ)
- ์์) func configureUI โ
- ์ด์ธ ๊ธฐ๋ณธ ๋ช ๋ช ๊ท์น์ Swift Style Guide, API Design Guidelines , Swift Style Guide๋ฅผ ์ฐธ๊ณ ํ๋ค.
- ์์๋ฐ์ง ์๋ ํด๋์ค๋ final ํค์๋๋ฅผ ๋ถ์ธ๋ค.
- ๋จ์ผ ์ ์ ๋ด์์๋ง ์ฌ์ฉ๋๋ ํน์ ๊ธฐ๋ฅ ๊ตฌํ์ private ์ ๊ทผ ์ ํ์๋ฅผ ์ ๊ทน ์ฌ์ฉํ๋ค.
- ํตํฌํ๊ธฐ๋ฅ์ ํ์ฉํ ๋งํฌ์ ๋ฌธ๋ฒ์ ํ์ฉํ ์ฃผ์์ ์ ๊ทน ์ฌ์ฉํ๋ค.
- ์ด์ธ๋ ์ปค์คํ
ํ SwiftLint Rule์ ์ ์ฉํ๋ค.
- ์ ์ธ์ฌํญ
- trailing_whitespace
- identifier_name
- line_length
- type_name
โจ
Project Foldering
Happic-iOS
โฃ Base.lproj
โ โ Main.storyboard
โฃ Global
โ โฃ Literal
โ โฃ Base
โ โฃ Protocols
โ โฃ Util
โ โฃ Extension
โ โฃ Resource
โ โ โฃ Assets.xcassets
โ โ โ โฃ AccentColor.colorset
โ โ โ โ โ Contents.json
โ โ โ โฃ AppIcon.appiconset
โ โ โ โ โ Contents.json
โ โ โ โ Contents.json
โ โ โ Base.lproj
โ โ โ โ LaunchScreen.storyboard
โ โฃ Supports
โ โ โฃ AppDelegate.swift
โ โ โ SceneDelegate.swift
โ โ UIComponent
โฃ Network
โ โฃ APIService
โ โฃ Foundation
โ โ Model
โฃ Screens
โ โฃ Auth
โ โฃ CreateCharacter
โ โฃ CreateContents
โ โฃ HappicCapsule
โ โฃ HappicReport
โ โฃ HaruHappic
โ โฃ Home
โ โฃ Setting
โ โ Tabbar
โ Info.plist