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
  






		                                  
		                                    
 | 
 | 
 |
 | 
 |