손쉽게 즐기는 주류 생활
@doyeonk429 | @JustinLee02 | @yeseonglee | @dlguszoo |
---|---|---|---|
image | image | image | image |
stack |
stack |
stack |
stack |
StyleShare 의 Swift Style Guide 를 기본으로 작성되었습니다. SwiftLint 를 통해서 통일성있는 클린코드를 추구합니다.
1. 성능 최적화와 위해 더 이상 상속되지 않을 class 에는 꼭 final 키워드를 붙입니다.
2. 안전성을 위해 class 에서 사용되는 property는 모두 private로 선언합니다.
3. 명시성을 위해 약어와 생략을 지양합니다.
VC -> ViewController
TVC -> TableViewCell
4. 빠른 확인을 위해 Global위치에 함수를 만든다면, 퀵 헬프 주석을 답니다.
5. 런타임 크래시를 방지하기 위해 강제 언래핑을 사용하지 않습니다.
dev 브랜치
개발 작업 브랜치main 브랜치
릴리즈 버전 관리 브랜치
1. 작업할 내용에 대해서 이슈를 생성한다.
2. 나의 로컬에서 develop 브랜치가 최신화 되어있는지 확인한다.
3. develop 브랜치에서 새로운 이슈 브랜치를 생성한다 [커밋타입/#이슈번호]
4. 만든 브랜치에서 작업한다.
5. 커밋은 기능마다 쪼개서 작성한다.
6. 작업 완료 후, 에러가 없는지 확인한 후 push 한다
7. 코드리뷰 후 수정사항 반영한 뒤, develop 브랜치에 merge 한다
코드는 그대로 XCode에서 작성하면 됨. 외부 라이브러리 추가 시, Project파일과 Package파일 수정 필요함(못하겠으면 @doyeonk429 에게 연락)
-
env version : 4.31.0(mise 통해서 설치)
-
주요 명령어 (mise exec -- : node로 global 설정 시 필요 없음. 바로 명령어만 쳐도됨)
- Tuist project, Package file을 수정한 경우(infoplist, package, target)
tuist install
- 1번의 경우에서 프로젝트 세팅파일을 수정하고 싶은 경우
tuist edit
- Xcode project(workspace)를 열고 싶은 경우
tuist generate
- 모듈/피쳐/라이브러리 간 의존관계를 보고 싶은 경우(graph 첫 실행 시, 관련 패키지 설치 필요)
tuist graph
- package error 등으로 서드파티를 다시 불러오고 싶은 경우
tuist clean
- 그 외 명령어를 알고 싶을 때
tuist help
.
├── App
├── Core
│ ├── Common
│ │ ├── Components
│ │ ├── Model
│ │ └── View
│ ├── DB
│ │ ├── DataManger
│ │ └── DataModels
│ ├── Extensions
│ └── Utilities
├── Features
│ ├── Authentication
│ │ ├── Models
│ │ ├── ViewControllers
│ │ └── Views
│ ├── Community
│ │ ├── Models
│ │ ├── ViewControllers
│ │ └── Views
│ ├── Course
│ │ ├── Models
│ │ ├── ViewControllers
│ │ └── Views
│ ├── Custom
│ │ ├── ViewControllers
│ │ └── Views
│ ├── Home
│ │ ├── Models
│ │ ├── ViewControllers
│ │ └── Views
│ ├── Search
│ │ ├── ViewControllers
│ │ └── Views
│ ├── Setting
│ │ ├── Models
│ │ ├── ViewControllers
│ │ │ ├── AccountInfo
│ │ │ ├── AppInfo
│ │ │ └── MyWine
│ │ └── Views
│ │ └── MyWine
│ ├── TastingNote
│ │ ├── Models
│ │ ├── ViewControllers
│ │ │ └── ChangeVCs
│ │ └── Views
│ │ ├── Cells
│ │ ├── ChangeViews
│ │ └── CustomUIs
│ └── UserSurvey
│ ├── Models
│ ├── ViewControllers
│ └── Views
└── Network
├── Auth
│ ├── Endpoints
│ ├── Request
│ ├── Response
│ └── Services
├── Comment
│ ├── Endpoints
│ ├── Requests
│ ├── Responses
│ └── Services
├── Common
│ ├── Extensions
│ ├── Plugins
│ ├── Protocols
│ └── Response
├── Course
├── Member
│ ├── Endpoint
│ ├── Request
│ ├── Response
│ └── Service
├── MyWine
│ ├── Endpoint
│ ├── Request
│ ├── Response
│ └── Service
├── Notice
│ ├── Endpoint
│ ├── Response
│ └── Service
├── Party
│ ├── Endpoints
│ ├── Request
│ ├── Responses
│ └── Services
├── TastingNote
│ ├── Endpoint
│ ├── Request
│ ├── Response
│ └── Service
├── Wine
│ ├── Endpoint
│ ├── Response
│ └── Service
└── WishList
├── Endpoint
├── Response
└── Service
Name | Version | |
---|---|---|
Then | 3.0.0 |
객체를 생성하고 설정하는 코드를 하나의 블록으로 묶어 가독성을 향상시킨다. |
SnapKit | 5.7.1 |
Auto Layout 제약조건을 코드로 쉽게 작성할 수 있도록 한다. |
PinLayout | 1.10.5 |
Auto Layout 제약조건을 코드로 쉽게 작성할 수 있도록 한다. |
FlexLayout | 2.0.10 |
Auto Layout 제약조건을 코드로 쉽게 작성할 수 있도록 한다. |
Moya | 15.0.0 |
네트워크 요청을 간편화하고, 구조화된 방식으로 관리하여 코드의 가독성과 유지 보수성을 높인다. |
keychain-swift | 24.0.0 |
로컬 데이터를 안전하게 저장하고 접근할 수 있다. |
Kingfisher | 7.12.0 |
URL로부터 이미지 다운 중 처리 작업을 간소화할 수 있도록 한다. |
SDWebImage | 5.19.7 |
URL로부터 이미지 다운 중 처리 작업을 간소화할 수 있도록 한다.(비동기적 이미지 다운로드) |
kakao-ios-sdk | 2.23.0 |
카카오 로그인 |
Lottie | 4.5.0 |
벡터 그래픽 애니메이션을 추가하고 관리한다. |
SwiftyToaster | 1.0.2 |
토스트 메세지 뷰 및 인터렉션 |
Cosmos | 25.0.1 |
Star 버튼 및 인터렉션 |
AMPopTip | 4.12.0 |
툴팁 뷰 및 인터렉션 |