소중한 연인과의 추억을 기록해 보세요 🥰
위치와 날짜를 기반으로 사진을 기록해요 😎
위치와 날짜를 기반으로 추억을 모아볼 수 있어요 ☺
ViewController의 책임을 분리하고자 MVVM-C 를 도입하게 되었습니다.
View에 사용되는 데이터의 관리를 ViewModel이 하도록 역할을 분리함으로써 코드의 가독성을 향상시켰습니다.
TabBar, Naviagtion 사용 등으로 화면 전환이 많아지고, ViewController 간 의존성이 높아짐에 따라, 화면전환 로직 분리의 필요성을 느껴 Coordinator 패턴을 도입했습니다.
모듈 간 레벨을 만들어 하위 레벨의 모듈만 접근 가능하도록 설계 했습니다.
기능별로 모듈을 만들어 기능별로 확장과 유지보수가 용이하도록 설계 했습니다.
공통으로 사용하는 UI나 비지니스 로직을 Common 모듈에서 관리하고, 상위 레벨 Common모듈의 코드를 사용하여 중복을 줄였습니다.
- 기본적인 틀이 항상 같은 Response에 대응하여 제네릭한 JsonParser 구현
- 재사용 가능한 NetworkManager 구현
- 기본 제공하지 않는 Toast Message 직접 구현
- 서버와의 이미지 용량 이슈 해결
- 디자이너의 요구사항에 따라 CustomDatePicker구현 (1편, 2편, 3편)