μ°μ± κ³Ό μ΄λμ μ¦κΈ°λ μ¬λλ€μ μν iOS μ±μ λλ€.
μ΄ νλ‘μ νΈλ Tuistλ₯Ό νμ©ν λͺ¨λν μν€ν μ²μ **SwiftUI + TCA(The Composable Architecture)**λ₯Ό κΈ°λ°μΌλ‘ κ°λ°λμμ΅λλ€.
π¦ GoForAWalk
βββ π Shared
β βββ Extension
βββ βοΈ Core
β βββ Network
β βββ KeychainStore
βββ π― Domain
β βββ AuthService
β βββ FeedService
β βββ UserService
βββ π¨ Feature
βββ SignInFeature
βββ FeedFeature
βββ ProfileFeature
λͺ¨λ λ μ΄μ΄μμ 곡μ©μΌλ‘ μ¬μ¬μ©λλ λͺ¨λλ€μ΄ μμΉν©λλ€.
- Extension: κ³΅ν΅ νμ₯ κΈ°λ₯
μ±μ λΉμ¦λμ€ λ‘μ§μ ν¬ν¨νμ§ μλ μμ κΈ°λ₯μ± λͺ¨λλ€μ΄ μμΉν©λλ€.
- Network: λ€νΈμνΉ κ΄λ ¨ κΈ°λ₯
- KeychainStore: ν€μ²΄μΈ μ μ₯μ κ΄λ¦¬
λλ©μΈ λ‘μ§μ΄ μ§νλλ λ μ΄μ΄λ‘, λΉμ¦λμ€ μλΉμ€λ€μ΄ μμΉν©λλ€.
- AuthService: μΈμ¦ κ΄λ ¨ λΉμ¦λμ€ λ‘μ§
- FeedService: νΌλ κ΄λ ¨ λΉμ¦λμ€ λ‘μ§
- UserService: μ¬μ©μ κ΄λ ¨ λΉμ¦λμ€ λ‘μ§
μ¬μ©μμ μ‘μ μ μ²λ¦¬νκ³ λ°μ΄ν°λ₯Ό 보μ¬μ£Όλ, μ¬μ©μμ μ§μ λ§λΏλ λ μ΄μ΄μ λλ€.
- SignInFeature: λ‘κ·ΈμΈ νλ©΄ λ° κΈ°λ₯
- FeedFeature: νΌλ νλ©΄ λ° κΈ°λ₯
- ProfileFeature: νλ‘ν νλ©΄ λ° κΈ°λ₯
- Language: Swift
- UI Framework: SwiftUI
- Architecture: TCA (The Composable Architecture)
- Modularization: Tuist
- Dependency Management: Tuist
- Xcode: 16.0+
- iOS: 18.0+
- Tuist: μ€μΉ νμ
| λͺ λ Ήμ΄ | μ€λͺ |
|---|---|
make init |
νλ‘μ νΈ μ΄λ¦κ³Ό organizationμ μ λ ₯νμ¬ νλ‘μ νΈ κΈ°λ³Έ μΈν |
make signing |
νλ‘μ νΈ Team Signing |
make generate |
μΈλΆ λνλμ fetch λ° νλ‘μ νΈ generate |
make clean |
μ 체 xcodeproj, xcworkspace νμΌ μμ |
make reset |
tuist clean ν, μ 체 xcodeproj, xcworkspace νμΌ μμ |
| λͺ λ Ήμ΄ | μ€λͺ |
|---|---|
make module |
μλ‘μ΄ λͺ¨λ μμ± |
make dependency |
λνλμ μΆκ° |
| λͺ λ Ήμ΄ | μ€λͺ |
|---|---|
make ci_generate |
CIμ© νλ‘μ νΈ generate (SwiftLint μ μΈ) |
make cd_generate |
CDμ© νλ‘μ νΈ generate (SwiftLint μ μΈ) |
λͺ¨λ Feature λͺ¨λμ TCA(The Composable Architecture) ν¨ν΄μ λ°λ¦ λλ€:
- State: νλ©΄μ μν
- Action: μ¬μ©μ μ‘μ λ° μμ€ν μ΄λ²€νΈ
- Reducer: μν λ³κ²½ λ‘μ§
- Environment: μΈλΆ μμ‘΄μ±
- μμ λ μ΄μ΄λ νμ λ μ΄μ΄μλ§ μμ‘΄ν μ μμ΅λλ€
- κ°μ λ μ΄μ΄ λ΄ λͺ¨λ κ° μμ‘΄μ±μ μ΅μνν©λλ€
- Core λ μ΄μ΄λ λΉμ¦λμ€ λ‘μ§μ ν¬ν¨νμ§ μμ΅λλ€
νλ‘μ νΈμ λν μ§λ¬Έμ΄λ μ μμ¬νμ΄ μμΌμλ©΄ Issuesλ₯Ό ν΅ν΄ μ°λ½ν΄μ£ΌμΈμ.