일별 박스오피스 정보 및 영화 상세정보를 확인할 수 있는 앱
프로젝트기간: 2024.02.13 ~ 2024.03.15 (6주간)
- Clean Architecture + MVVM 학습 및 적용
- HTTP 통신을 처리할 수 있는 네트워크 모듈 생성
- Swift Concurrency 학습 및 적용
| 개발언어 및 환경 | 협업도구 | 기술스택 |
|---|---|---|
| Swift | Notion | SwiftLint |
| UIKit | Github | MVVM |
| Xcode 17.0 | Discord | Input-Output |
| Navigator | ||
| Observable | ||
| Completion Handler → Swift Concurrency | ||
| TDD |
Clean Architecture + MVVM
Presentaion: View, ViewModelDomain: Entity, Use Case, Repository InterfaceData: Repository- 의존성의 방향이 안쪽 방향으로만(
Domain) 향하게 하고 안쪽에서 바깥 방향으로는 의존하지 않는 구조
- VC간의 결합도를 줄이고 응집도를 높이기 위한 라우팅 객체(
Navigator)와 의존성 주입을 위한 객체(Depengency Manager)
Observable을 활용한 옵저버 패턴 적용(ViewController↔ViewModel)- 데이터 바인딩을 통한 반응형 프로그래밍 구현
- 다양한 형태의
Request와Response를 처리할 수 있는 네트워크 모듈 - 하나의 모듈로 다양한 API 가능
- 네트워크 통신을 통해 불러온 이미지 캐싱
NSCache
- CollectionView를 활용한 영화 목록 및 상세 정보 UI 구현
UIActivityIndicatorView및UIRefreshControl를 활용해 로드 중 및 새로고침 UI 구현
- ViewModel → ViewModel with InputOutput Pattern - 양방향 바인딩
- 비동기 처리 마이그레이션(
Completion Handler→Swift Concurrency)
| 윤진영(yuni) | 장우석(sidi) |
|---|---|