윤빈 | 효리 | 조은 |
---|---|---|
Home |
MyPage, History |
Onboarding, Login |
Library | Version | Description |
---|---|---|
https://github.com/kakao/kakao-ios-sdk | 2.20.0 | 카카오 소셜 로그인 시 사용 |
https://github.com/Moya/Moya | 15.0.0 | Networking 시 사용 |
https://github.com/SnapKit/SnapKit | 5.6.0 | UI AutoLayout을 잡을 때 사용 |
https://github.com/devxoul/Then | 3.0.0 | 클로저를 통한 인스턴스 초기화를 할 수 있도록 도와주는 라이브러리 |
https://github.com/onevcat/Kingfisher | 7.10.1 | 웹에서 이미지를 다운로드하고 캐싱하기 위해 설계된 순수 Swift 라이브러리 |
1. 상속받지 않는 클래스는 final 키워드
2. 단일 정의 내에서만 사용되는 특정 기능 구현은 private 접근 제한자를 적극 사용
3. 임포트는 퍼스트파티, 서드파티 나누어서. 알파벳 순 정렬
4. MARK 주석은 위 아래 공백
5. 클래스, 구조체, 열거형, 프로토콜 등은 Upper Camel Case로 네이밍
6. 변수 상수, 함수 등은 lower Camel Case로 네이밍
- 배포 branch → main
- 개발 branch → develop
- 기능 구현 branch → feature
- 배포 이후, hotfix 브랜치*(출시 버전에서 발생한 버그를 수정 하는 브랜치)*를 사용할 예정입니다.
- feature branch는 develop branch로부터 생성합니다.
- 한 개의 기능을 기준으로 브랜치를 생성합니다.
- 적합한 예시 🙆🏻♀️
- 홈 뷰 UI 구현 (O)
- 홈 뷰 그래프 기능 구현 (O)
- 홈 뷰 API 서버통신 구현 (O)
- 부적합한 예시 🙅🏻♂️
- 홈 뷰 상단 layout (X)
- 홈 뷰 collectionView cell 터치 이벤트 추가 (X)
- 홈 뷰 만보수 통신 함수 구현 (X)
- 적합한 예시 🙆🏻♀️
ISSUE카테고리/#이슈번호
- 브랜치 네이밍 예시
[ISSUE] → "[Network] 로그인 서버통신 구현 #23"
[Branch Naming] → "network/#23"
[ISSUE] → "[Feat] 온보딩 뷰 구현 #45"
[Branch Naming] → "feat/#45"
다른 레퍼런스를 참고하다보면, develop 브랜치에서 feature 기능을 따로 파지 않고, 수정사항을 develop 브랜치에 바로 commit push 하는 경우가 있습니다.
💫 그러나, 안전한 개발을 위해 모티부에서는 develop 브랜치에 바로 commit push 하지 않도록 합시다!
만약 수정사항이 생긴다면, Fix관련 이슈를 파고, 브랜치를 생성한 뒤 작업하는 것을 원칙으로 합니다.
1. 구현 기능 확인
2. local에서 develop 브랜치 pull 받기
3. 이슈 생성
4. 이슈의 카테고리와 번호를 확인 후, 브랜치 생성(ex: `feat/#22`)
5. 작업하기
6. PR 생성 및 코드리뷰
7. develop 브랜치로 merge
1. 코드리뷰 없이는 Merge 하지 않습니다.
2. 추가적인 세팅을 할 땐 모든 코드가 develop에 반영 된 후 진행합니다.
중간중간 추가되는 폰트나 이미지를 프로젝트에 적용을 해야되는 시기가 올 수 있습니다.
이러한 상황에서는 아래와 같이 진행합니다.
1. 모든 코드가 develop에 반영해 merge
2. 추가된 이미지나 폰트, 색상들을 코드에 반영
3. 프로젝트 세팅을 한 브랜치를 develop에 머지
4. 각자 브랜치를 파서 작업
3. Confilct는 되도록 두명 이상이 함께 해결합니다.
- p1: 꼭 반영해 주세요
- p2: 웬만하면 반영해주세요
- p3: 그냥 사소한 의견입니다. 그냥 넘어가도 좋아요!
p1
class 앞에 final 키워드 빠져있습니다! 반영해주세용!
p3
이렇게 코드 구성을 짜는 것도 좋네요! 배워갑니당!
-> 칭찬이나 코드를 보고 느낀 점은 p3로 사용해주세요
├── 📁Application
│ ├── 📜AppDelegate
├───├── 📜SceneDelegate
├── 📁Global
│ ├── 📁Extension
│ ├── 📁Literals
│ │ ├── 📜ImageLiterals
│ │ ├── 📜TextLiterals
│ ├── 📁Protocols
│ ├── 📁Resources
│ │ ├── 📁Font
│ │ ├── 📜Assets
│ │ ├── 📜Info.plist
│ ├── 📁SupportingFiles
│ │ ├── 📜LaunchScreen
│ │ ├── 📁UIComponents
│ │ │ ├── 📜components
│ ├── 📁Base
│ │ ├──📜BaseViewController
├───├───├──📜BaseView
├── 📁Data
│ ├── 📁Home
│ | ├── 📁APIModel
├───├───├── 📁Model
├── 📁Network
│ ├── 📁Home
│ | ├── 📜Service (Moya enum 파일)
├───├───├── 📜API (api 연동 함수)
├── 📁Feature
│ ├── 📁Home -> MVC
│ │ │ ├── 📁Views
│ │ │ │ ├── 📁Cells
│ │ │ │ │ ├── 📜Cell1
│ │ │ │ │ ├── 📜Cell2
│ │ │ │ ├── views
├───├───├───├── 📁ViewControllers