Skip to content

Commit 15e9d01

Browse files
authored
Merge pull request #100 from YAPP-Github/TNT-294-ReadMe
[TNT-294] λ¦¬λ“œλ―Έ μž‘μ„±
2 parents 6c295b8 + 3efbc5e commit 15e9d01

7 files changed

+102
-1
lines changed

β€ŽREADME.mdβ€Ž

Lines changed: 102 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,102 @@
1-
# 25th-App-Team-2-iOS
1+
# TnT
2+
<img src="https://raw.githubusercontent.com/YAPP-Github/TnT-iOS/refs/heads/TNT-294-ReadMe/TnT/Photos/TNT_%E1%84%80%E1%85%B3%E1%84%85%E1%85%A2%E1%84%91%E1%85%B5%E1%86%A8%E1%84%8B%E1%85%B5%E1%84%86%E1%85%B5%E1%84%8C%E1%85%B5.png" >
3+
4+
### # νŠΈλ ˆμ΄λ„ˆμ™€ νŠΈλ ˆμ΄λ‹ˆλ₯Ό μ—°κ²°ν•˜λ‹€
5+
6+
PT νš¨κ³Όκ°€ λ―Έλ―Έν•˜κ±°λ‚˜, κΎΈμ€€νžˆ PTλ₯Ό μ§€μ†ν•˜κΈ° μ–΄λ €μ› λ‚˜μš”? νŠΈλ ˆμ΄λ„ˆμ™€ νŠΈλ ˆμ΄λ‹ˆ μ‚¬μ΄μ˜ 체계적인 μ†Œν†΅κ³Ό 효유적인 PT μš΄μ˜μ„ 직접 κ²½ν—˜ν•˜μ„Έμš” :)
7+
8+
πŸ’ͺ🏻 νŠΈλ ˆμ΄λ„ˆλŠ” 체계적인 νšŒμ› 관리λ₯Ό, νŠΈλ ˆμ΄λ‹ˆλŠ” 효율적인 기둝을!
9+
πŸ‹ TnT와 ν•¨κ»˜ νŠΈλ ˆμ΄λ„ˆμ™€ νŠΈλ ˆμ΄λ‹ˆμ˜ μΌ€λ―Έλ₯Ό ν„°νŠΈλ €λ³΄μ„Έμš”!
10+
11+
-------
12+
### Develpoment Environment
13+
```
14+
Minimum Deployments: iOS 17.0
15+
Xocde Version: 16.0.1
16+
Tuist Version: 4.37.0
17+
```
18+
19+
**μ™ΈλΆ€ 라이브러리**
20+
```
21+
kakao-ios-sdk
22+
KingFisher
23+
FirebaseMessaging
24+
ComposableArchitecture
25+
FSCalendar
26+
```
27+
28+
---
29+
### Skill Stack
30+
- Development: SwiftUI + Tuist + Modular Architecture
31+
- Modular Architecture : Clean Architecture κΈ°μ€€ λ ˆμ΄μ–΄λ³„ λͺ¨λ“ˆν™”
32+
- Architecture : Clean Architecture + TCA
33+
---
34+
35+
### Architecture (Clean Architecture + TCA)
36+
37+
<img src="https://raw.githubusercontent.com/YAPP-Github/TnT-iOS/refs/heads/TNT-294-ReadMe/TnT/Photos/Architecture.png">
38+
39+
-------
40+
### Layer κ΅¬ν˜„ λ‚΄μš©
41+
**Application Layer**
42+
- AppDelegate, SceneDelegate μœ„μΉ˜
43+
- μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ μ§„μž…μ μœΌλ‘œμ¨ μ‹€ν–‰κ³Ό κ΄€λ ¨λœ μž‘μ—…μ„ μ²˜λ¦¬ν•¨
44+
45+
`Data Layer`
46+
- μ™ΈλΆ€ 데이터 μ†ŒμŠ€μ™€μ˜ μƒν˜Έμž‘μš©μ„ λ‹΄λ‹Ήν•˜λŠ” λ ˆμ΄μ–΄
47+
- Network / Local(KeyChain) 둜 λ‚˜λˆ„μ–΄ μ™ΈλΆ€ 데이터λ₯Ό 관리함
48+
- DTO둜 λ°›μ•„μ˜€λ©° Mapperλ₯Ό 톡해 μ•± 내뢀에 λ§žλŠ” λ°μ΄ν„°λ‘œ λ³€ν™˜ν•˜μ—¬ μ‚¬μš©
49+
- Moya의 λ‘œμ§μ„ URLSession에 점λͺ©ν•˜μ—¬ Interceptor와 Loggerλ₯Ό κ΅¬ν˜„ν•¨
50+
51+
`Domain Layer`
52+
- λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ„ μ²˜λ¦¬ν•˜λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ 핡심 λ ˆμ΄μ–΄λ‘œ, μ•±μ˜ 도메인 κ·œμΉ™μ„ μ •μ˜ν•¨
53+
- Entity: λΉ„μ¦ˆλ‹ˆμŠ€ λ„λ©”μΈμ˜ 핡심 λͺ¨λΈμ΄λ©°, UIλ‚˜ μ™ΈλΆ€ 데이터 μ†ŒμŠ€μ™€ 독립적
54+
- UseCase: νŠΉμ • λΉ„μ¦ˆλ‹ˆμŠ€ κ·œμΉ™μ„ μˆ˜ν–‰ν•˜λŠ” μΈν„°νŽ˜μ΄μŠ€λ‘œ, Repositoryλ₯Ό 톡해 데이터λ₯Ό κ°€μ Έμ˜€κ±°λ‚˜ κ°€κ³΅ν•˜μ—¬ Presentation Layerμ—μ„œ μ‚¬μš©ν•  수 μžˆλ„λ‘ κ΅¬ν˜„ν•¨
55+
- Repository Protocol: 데이터 μ ‘κ·Ό 방식(Network, Local Storage λ“±)을 μΆ”μƒν™”ν•˜μ—¬, Data Layer의 κ΅¬ν˜„κ³Ό λΆ„λ¦¬λœ ν˜•νƒœλ‘œ μœ μ§€μ‹œν‚΄
56+
57+
`Presentation Layer`
58+
- UI와 κ΄€λ ¨λœ λͺ¨λ“  μš”μ†Œλ₯Ό λ‹΄λ‹Ήν•˜λŠ” λ ˆμ΄μ–΄λ‘œ, **SwiftUI + TCA** 으둜 ꡬ성됨
59+
- **View (SwiftUI)**: Storeμ—μ„œ μ œκ³΅ν•˜λŠ” μƒνƒœλ₯Ό 기반으둜 UIλ₯Ό λ Œλ”λ§ν•˜λ©°, μœ μ € μΈν„°λž™μ…˜μ„ Action으둜 λ³€ν™˜ν•˜μ—¬ Store에 전달함
60+
- **Feature (Reducer + State + Action)**: 각 화면을 ν•˜λ‚˜μ˜ Feature둜 κ΅¬μ„±ν•˜κ³ , Reducerμ—μ„œ State와 Action을 κ΄€λ¦¬ν•˜λ©° λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ„ UseCase에 μœ„μž„ν•¨
61+
- **Navigation**: TCA의 Reducer 기반 λ„€λΉ„κ²Œμ΄μ…˜μ„ ν™œμš©ν•˜μ—¬ ν™”λ©΄ μ „ν™˜μ„ κ΄€λ¦¬ν•˜λ©°, λ„€λΉ„κ²Œμ΄μ…˜ μƒνƒœ(Path, Stack)λ₯Ό State둜 μœ μ§€ν•¨
62+
63+
`DIContainer`
64+
- DIContainerλŠ” μ•± μ „λ°˜μ—μ„œ **객체의 생성과 μ˜μ‘΄μ„± μ£Όμž…μ„ 관리함**
65+
- 각 λ ˆμ΄μ–΄μ˜ 객체듀이 직접 μΈμŠ€ν„΄μŠ€λ₯Ό μƒμ„±ν•˜λŠ” λŒ€μ‹ , DIContainerλ₯Ό 톡해 ν•„μš”ν•œ μ˜μ‘΄μ„±μ„ μ£Όμž…λ°›λ„λ‘ μ„€κ³„ν•˜μ—¬ **클린 μ•„ν‚€ν…μ²˜μ˜ 원칙(μ˜μ‘΄μ„± μ—­μ „ 원칙, DIP)** 을 λ”°λ₯Ό 수 μžˆλ„λ‘ν•¨
66+
- Repository, UseCase, Reducer(Store) λ“±κ³Ό 같은 핡심 객체듀을 DIContainerμ—μ„œ μƒμ„±ν•˜κ³  κ΄€λ¦¬ν•˜λ©°, Environment λ˜λŠ” Resolverλ₯Ό 톡해 ν•„μš”ν•œ 객체λ₯Ό μ£Όμž…λ°›μ•„ μ‚¬μš©
67+
68+
`Design System`
69+
- λ””μžμΈκ³Ό κ΄€λ ¨λœ 파일, μ†ŒμŠ€λ“€μ΄ λͺ¨μ—¬μžˆλŠ” λͺ¨λ“ˆ
70+
- λΉ„μ¦ˆλ‹ˆμŠ€ 둜직과 μ—°κ΄€ 없이 λ””μžμΈλ§Œ μ •μ˜λ˜μ–΄ μžˆλŠ” λͺ¨λ“ˆ
71+
72+
---
73+
### Main Features
74+
- 둜그인
75+
- μ†Œμ…œλ‘œκ·ΈμΈ 지원 (카톑 / μ• ν”Œ)
76+
- νŠΈλ ˆμ΄λ„ˆ
77+
- ν™ˆ
78+
- μˆ˜μ—… μΆ”κ°€ 및 일정 확인
79+
- μˆ˜μ—… 관리
80+
- ν”Όλ“œλ°±
81+
- νŠΈλ ˆμ΄λ‹ˆκ°€ 보낸 ν”Όλ“œλ°±μ„ ν™•μΈν•˜κ³  ν”Όλ“œλ°± 전솑
82+
- νšŒμ› λͺ©λ‘
83+
- νšŒμ›μ„ μ—°κ²° 및 ν•΄μ œ
84+
- νšŒμ› μ΄ˆλŒ€
85+
- 내정보
86+
- λ‘œκ·Έμ•„μ›ƒ 및 νƒˆν‡΄
87+
- 내정보 확인
88+
- νŠΈλ ˆμ΄λ‹ˆ
89+
- ν™ˆ
90+
- μˆ˜μ—… 관리 및 μš΄λ™ 기둝
91+
- 식단 기둝
92+
- 내정보
93+
- λ‘œκ·Έμ•„μ›ƒ 및 νƒˆν‡΄
94+
- 내정보 확인
95+
96+
---
97+
### App Images
98+
99+
| νŠΈλ ˆμ΄λ‹ˆ ν™ˆ | `νŠΈλ ˆμ΄λ„ˆ ν™ˆ` | `내정보` | `νŠΈλ ˆμ΄λ‹ˆ 식단기둝` |
100+
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
101+
| <img src="https://raw.githubusercontent.com/YAPP-Github/TnT-iOS/refs/heads/TNT-294-ReadMe/TnT/Photos/%E1%84%90%E1%85%B3%E1%84%85%E1%85%A6%E1%84%8B%E1%85%B5%E1%84%82%E1%85%B5_%E1%84%92%E1%85%A9%E1%86%B7.PNG" width="143" height="300"> | <img src="https://raw.githubusercontent.com/YAPP-Github/TnT-iOS/refs/heads/TNT-294-ReadMe/TnT/Photos/%E1%84%90%E1%85%B3%E1%84%85%E1%85%A6%E1%84%8B%E1%85%B5%E1%84%82%E1%85%A5_%E1%84%92%E1%85%A9%E1%86%B7.PNG" width="143" height="300"><br><br><br> | <img src="https://raw.githubusercontent.com/YAPP-Github/TnT-iOS/refs/heads/TNT-294-ReadMe/TnT/Photos/%E1%84%90%E1%85%B3%E1%84%85%E1%85%A6%E1%84%8B%E1%85%B5%E1%84%82%E1%85%A5_%E1%84%82%E1%85%A2%E1%84%8C%E1%85%A5%E1%86%BC%E1%84%87%E1%85%A9.jpeg" width="143" height="300"> | <img src="https://raw.githubusercontent.com/YAPP-Github/TnT-iOS/refs/heads/TNT-294-ReadMe/TnT/Photos/%E1%84%90%E1%85%B3%E1%84%85%E1%85%A6%E1%84%82%E1%85%B5%E1%84%8B%E1%85%B5_%E1%84%89%E1%85%B5%E1%86%A8%E1%84%83%E1%85%A1%E1%86%AB%E1%84%80%E1%85%B5%E1%84%85%E1%85%A9%E1%86%A8.PNG" width="143" height="300"> |
102+
| | | | |

β€ŽTnT/Photos/Architecture.pngβ€Ž

37.8 KB
Loading
123 KB
Loading
Loading
276 KB
Loading
139 KB
Loading
105 KB
Loading

0 commit comments

Comments
Β (0)