앱개발 심화강의에서 배우는 MVVM 패턴을 활용해보기 위한
새로운 과제가 있다.
우선 기존 MVC 패턴으로 구현 후 MVVM 패턴으로 리팩토링해보며
두 패턴의 차이점과 장단점을 알아보려고 한다.
책 검색하고 저장하는 앱
CoreData와 HTTP 통신을 사용하여 책을 검색하고 저장하는 앱의 기능을 구현합니다.
Level 1 - 화면 구성
- 아래 하단 탭바로 '검색 탭', '담은 책 리스트 탭' 이 있다.
- 상세화면은 검색결과의 리스트 아이템을 '탭' 하면 모달로 띄워진다.
- 리스트 탭은 '담기'를 한 책 리스트를 CoreData로 저장 및 리스트 화면에서 보여진다.
Level 2 - 책 검색 화면 구현
- 서치바를 이용하여 검색
- 검색(입력완료)를 누르면, 검색 결과 리스트에 책 목록이 등장
- 카카오 책 검색 API 활용
Level 3 - 책 상세 보기 & 담기 기능 구현
- CoreData 활용
- 스크롤 가능
- X, 담기 버튼 - 플로팅 버튼 ( 스크롤과 상관없이 항상 화면위에 노출 )
- 모달이 닫힌 후, 책 담기 완료! 알림창 띄우기 - Delegate 패턴 활용
- 담은책 화면 - 전체삭제, 추가 버튼 - 책 검색화면 띄우기
Level 4 - 최근 본 책 기능 구현
- 사용자가 책 상세보기 화면까지 살펴본 책이 있을 경우, 검색결과 리스트의 최상단에 최근 본 책 을 보여줍니다
- 검색 결과 리스트는 이제 2개의 섹션을 사용
- 최근 본 책이 없다면 섹션을 노출하지 않습니다.
- (선택구현) 최근 본 책을 ‘탭’하면 책 상세화면이 등장합니다.
(도전) Level 5 - 무한 스크롤 기능 구현, MVVM 리팩토링 (선택)
- 검색결과 리스트에 무한 스크롤 구현
- 응답 중 meta 필드 를 활용해 무한 스크롤을 구현해볼 수 있을 것 같은 생각이 듭니다.
- 만약 위 API 로 무한 스크롤 구현 불가능하다면, 그 이유를 제출하셔도 좋습니다.
- MVVM 으로 리팩토링
MVVM 패턴과 Rx를 사용하는 챌린지 과제와
MVC 패턴을 사용하는 Advance 과제 중
아직 MVVM 에 대한 이해가 부족하다고 생각했기에
MVC 패턴으로 구현 이후 리팩토링하며 MVVM패턴을 추가 공부하고자
Advance 과제를 선택하였다.
전반적인 기획은 가이드에 따라 진행하였다.
아키텍처 : MVC
- 확실하게 뷰와 뷰컨트롤러, 모델을 구분하고 이후 MVVM 통합을 해보며 차이점을 이해해보자
유저 플로우
- 첫 화면
책 검색 탭 화면 -> 책 검색 -> 검색 리스트 표시 -> 셀 클릭 시 상세화면 -> '담기' 버튼 클릭 시 담은책 리스트 탭에 표시
'내일배움캠프 iOS' 카테고리의 다른 글
UIKit) TIL # 52 앱개발 심화주차 개인과제 - Lv 2 API 연결 (0) | 2025.01.02 |
---|---|
UIKit) TIL # 51 앱개발 심화주차 개인과제 - Lv 1,2 컬렉션뷰 CompositinalLayout (0) | 2024.12.31 |
UIKit) TIL # 49 넷플릭스 클론 강의 (1) | 2024.12.27 |
UIKit) TIL # 48 넷플릭스 클론 강의 (0) | 2024.12.26 |
iOS,Swift) TIL # 47 - 동기, 비동기, 동시성(Concurrency), GCD (0) | 2024.12.24 |