함께 만드는 8000원 이하 식당지도
치솟는 물가에 밥 한끼 먹기도 부담되는 요즘, 저렴한 식당을 공유하며 함께 잘 먹고 잘 살자
👑 @mcrkgus | @EunsuSeo01 | @shimseohyun |
---|---|---|
홈화면 지도 전체 식당 족보 리스트 |
식당 제보 화면 식당 검색 화면 식당 제보 완료 화면 식당 상세 화면 나의 식당 족보 바텀 시트 |
온보딩 로그인 대학 선택 마이페이지 제보한 식당 리스트 좋아요한 식당 리스트 나의 족보 만들기 족보 내 식당 리스트 확인 |
StyleShare 의 Swift Style Guide 를 기본으로 작성되었습니다. SwiftLint 를 통해서 통일성있는 클린코드를 추구합니다.
1. 성능 최적화와 위해 더 이상 상속되지 않을 class 에는 꼭 final 키워드를 붙입니다.
2. 안전성을 위해 class 에서 사용되는 property는 모두 private로 선언합니다.
3. 명시성을 위해 약어와 생략을 지양합니다.
VC -> ViewController
TVC -> TableViewCell
4. 빠른 확인을 위해 Global위치에 함수를 만든다면, 퀵 헬프 주석을 답니다.
5. 런타임 크래시를 방지하기 위해 강제 언래핑을 사용하지 않습니다.
develop 브랜치
개발 작업 브랜치main 브랜치
릴리즈 버전 관리 브랜치
1. 작업할 내용에 대해서 이슈를 생성한다.
2. 나의 로컬에서 develop 브랜치가 최신화 되어있는지 확인한다.
3. develop 브랜치에서 새로운 이슈 브랜치를 생성한다 [커밋타입/#이슈번호]
4. 만든 브랜치에서 작업한다.
5. 커밋은 기능마다 쪼개서 작성한다.
6. 작업 완료 후, 에러가 없는지 확인한 후 push 한다
7. 코드리뷰 후 수정사항 반영한 뒤, develop 브랜치에 merge 한다
📁 Project
├── 📁 Application
│ ├── AppDelegate.swift
│ ├── SceneDelegate.swift
│ ├── LaunchScreen.storyboard
│ └── Info.plist
├── 📁 Global
│ ├── 🗂️ Protocols
│ ├── 🗂️ Components
│ │ ├── HankkiPopup
│ │ └── HankkiButton
│ ├── 🗂️ Consts
│ │ └── ImageLiterals
│ ├── 🗂️ Extensions
│ │ ├── UIView+.swift
│ │ ├── UIViewController+.swift
│ │ ├── UIFont+.swift
│ │ └── UIColor+.swift
│ ├── 🗂️ Resources
│ │ ├── Fonts
│ │ └── Assets.xcassets
│ └── 🗂️ Supporting Files
│ ├── Config.swift
│ └── Debug.xcconfig
│ └── Release.xcconfig
├── 📁 Network
│ ├── 🗂️ Base
│ │ ├── BaseDTO.swift
│ │ ├── BaseAPIService.swift
│ │ ├── BaseTargetTypeswift
│ │ ├── NetworkResult.swift
│ │ └── NetworkService.swift
│ └── 🗂️ Home
│ ├── DTO
│ ├── HomeAPI.swift
│ └── HomeAPIService.swift
└── 📁 Present
├── 🗂️ Base
│ ├── BaseCollectionViewCell.swift
│ ├── BaseTableViewCell.swift
│ └── BaseViewController.swift
├── 🗂️ Home
│ ├── Model
│ ├── View
│ └── ViewModel
└── 🗂️ HankkiPlayList
Name | Version | |
---|---|---|
Then | 3.0.0 |
객체를 생성하고 설정하는 코드를 하나의 블록으로 묶어 가독성을 향상시킨다. |
SnapKit | 5.7.1 |
Auto Layout 제약조건을 코드로 쉽게 작성할 수 있도록 한다. |
Moya | 15.0.3 |
네트워크 요청을 간편화하고, 구조화된 방식으로 관리하여 코드의 가독성과 유지 보수성을 높인다. |
Kingfisher | 7.12.0 |
URL로부터 이미지 다운 중 처리 작업을 간소화할 수 있도록 한다. |
NMFMaps | 15.0.3 |
다양한 지도 기능을 원활하게 구현할 수 있도록 한다. |
Lottie | 4.5.0 |
벡터 그래픽 애니메이션을 추가하고 관리한다. |