커밋메시지앞에 주제를 붙혀주세요
- feat: 새로운 기능 추가
- fix: 버그 수정
- docs: 문서 수정
- style: 코드 스타일 변경 (코드 포매팅, 세미콜론 누락 등)
- design: 사용자 UI 디자인 변경
- test: 테스트 코드, 리팩토링 (Test Code)
- refactor: 리팩토링 (Production Code)
- build: 빌드 파일 수정
- ci: CI 설정 파일 수정
- perf: 성능 개선
- chore: 자잘한 수정이나 빌드 업데이트
- rename: 파일 혹은 폴더명을 수정만 한 경우
- remove: 파일을 삭제만 한 경우
ex)
feat: 좋아요 버튼을 누를 때 햅틱 피드백 추가
- 코드 컨벤션은 SwiftLint로 관리됩니다.
- Indent Width는 2를 사용합니다.
Xcode -> Settings -> Text Editing -> Indentation -> Indent Width
- 다국어 처리는 프로그램을 이용해 자동화하여 관리하고 있습니다.
- SwiftUI
- Combine
- Swift Composable Architecture
패키지들은 각자의 샘플 프로젝트와 유닛테스트를 소유하고있습니다.
실제 앱 프로젝트입니다. 아래의 패키지들을 조립해서 만들고 있습니다.
앱의 기반이 되는 코드들을 포함합니다.
이 패키지에 포함되는 코드들은 이 프로젝트 어디에서나 사용될 수 있습니다.
변경사항이 적을 것으로 예상되는 코드들을 포함하고 있어야 합니다.
UI에 관련된 코드들이 들어있습니다.
도메인 레이어의 코드들이 들어있습니다.
프로젝트가 커질 경우 Domain을 루트 디렉토리로 하여, Usecase 혹은 Entity별 패키지를 가져야 할 것 같습니다.
각각의 기능들을 담당하고 있는 패키지입니다. View와 ViewModel을 포함하고 있습니다.
Domain, UIComponents, ImageLoader 패키지를 적절히 사용해 구현합니다.
실제 데이터를 호출하는 코드를 포함하고 있습니다.
화면 간의 의존성을 제거하기 위해 코디네이터 패턴을 사용해 화면들을 관리합니다.
앱 패키지 내에서 플로우 코드를 작성해 어떤 화면이든 적절히 사용자에게 보여줄 수 있습니다.
- Github
- Notion
- Figma
- Google Meet
PhotoArchive-iOS is released under the MIT license. See LICENSE for details.