스스로 만들고 학습하며, 타인과 함께 공유하는 암기장
해당 레포지토리는 TCA(The Composable Architecture) 그리고 SwiftUI를 기반으로 개발된 암기장 앱 '메모라이징'에 대한 전체 소스코드를 포함하고 있습니다.
- Unidirectial Data Flow : 단방향 상태관리로 유지보수가 편리한 구조
- Modularization : 각 모듈이 독립적으로 분리되고 쉽게 조합될 수 있는 구조
- Control Side Effet : Side Effect를 컨트롤하여 편리한 Preview, Test 환경
- Exhaustive Testing : 모든 값의 변경을 팔로잉할 수 있는 테스트 환경
- Swift Concurrency : Swift 가장 최신의 비동기 및 병렬 코드 사용
해당 프로젝트는 Test App과 Core App을 독립적으로 분리하고 각각에 맞는 Dependency 구조를 설계하여 개발 시 더 효울적인 구조를 유지합니다. Full Package Dependency
Dependency Example
graph LR
A[AuthClientLive] --> B[AuthClient]
A --> C[FirebaseAuth]
A --> D[FirebaseFirestore]
A --> E[GoogleSignIn]
A --> F[KakaoSDKAuth]
B --> G[Dependencies]
B --> H[Models]
I[LoginFeature] --> B
J(LoginPreviewApp) --> I
K(MemorizingApp) --> I
K --> A
- 해당 레포지토리는 Main App Target뿐만 아니라 각 Feature마다 독립적인 Preview App Target이 존재합니다.
1. git clone https://github.com/JongHyunLee84/Memorizing.git
2. cd Memorizing
3. open the Xcode project: 'Memorizing.xcodeproj'
4. select app target that you want to run ex> 'Memorizing'
- 아래 대한 설정들은 Main App을 실행하기 위해 필요합니다.
- Info.plist에 'KAKAO_APP_KEY' Property 추가
- Firebase의 'GoogleService-Info' 파일 추가
- URLClient의 Secret 폴더 secret.json 파일 추가 (secret.json.sample 참고)
Apache License
Version 2.0 (January 2004)
http://www.apache.org/licenses/