-
Notifications
You must be signed in to change notification settings - Fork 6
Clean Architecture with MVVM C
S004_강현준 edited this page Nov 29, 2021
·
3 revisions
MVVM Clean Architecture
- Clean Architecture는 Domain Layer가 다른 Layer에 독립적이기 때문에 테스트하기 용이하고 Domain Layer를 재사용 및 교체하기 좋다는 장점이 존재합니다.
- ViewController는 단위 테스트를 하기 어렵다는 단점이 있는데 이를 UIKit에 독립적인 ViewModel을 사용하므로써 테스트를 진행할 수 있습니다.
- 화면 이동을 담당하는 Coordinator가 존재하고 ViewModel에서 호출하는 구조이지만, ViewModel의 UIKit 의존성을 끊어내기 위하여 delegate 패턴을 적용하였습니다.
Coordinator
- 하나의 화면에서 다른 화면으로 전환을 할 때 다른 ViewController를 알아야하는 경우가 발생했습니다. Coordinator 패턴을 적용하면 ViewController 사이의 의존성을 제거할 수 있기에 MVVM+C를 사용하였습니다.
- 추가적으로 ViewController에서 화면전환의 기능 로직이 포함되게 된다면 ViewController 코드의 양이 방대해지는 문제가 발생할 수 있습니다. 이를 코디네이터로 분리함으로써 방지하도록 하였습니다.
|
|
|
|
---|---|---|---|
@mandeuk26 | @kimwj9792 | @hj56775 | @bestowing |
2주차
3주차
4주차
5주차
6주차
더보기
- CollectionView + Diffable & Compositional 사용 이유
- App Target iOS13+ 인 이유
- Storyboard를 채택한 이유
- 뒤로가기 버튼에 특정 액션을 넣으면 Swipe back이 되지 않는 문제
- 메모리 누수 발생 문제
- 맵뷰가 주기적으로 리프레쉬되는 문제
- UserLocation 화면을 빠져나와도 업데이트 해야하는 문제
- Compositional Layout의 estimated가 정상 동작하지 않는 문제
- Keyboard에 의해 TextField가 가려지는 문제
- 사용자가 권한을 거절했을때 생길 수 있는 문제
- 이미지를 불러올때 프레임 드랍이 발생하는 문제
- PHPicker를 이용해 이미지를 보여줄 때 이미지를 순서대로 표시하지 못하는 문제
- 관광명소 검색화면에서 빠르게 스크롤 시 적합한 관광명소 이미지를 보여주지 못하는 문제
- 무한스크롤 캘린더 구현과 VoiceOver 적용시 문제