사용자가 검색어 (Title, Author 등)를 입력하여 책을 검색하고 결과를 리스트로 표시하는 앱을 만드세요.
- 사용자가
입력
필드에 검색어를 입력합니다. - 사용자가 검색어를 검색하면 특정 데이터(Title, Author, Published Date, Picture 등)가 포함된 책 목록을 반환하는 API를 호출합니다.
- 사용자는 검색된 도서 수와 전체 결과를 모두 볼 수 있습니다. (페이지네이션이 가능해야 합니다.)
- 리스트의 하단에 도달했을 경우 다음 페이지를 불러옵니다. (원티드 앱 채용탭의 공고 목록 처럼 구현)
- 목록에서 각 항목의 자세한 정보가 있는 화면으로 이동합니다.
- 외부 사이트로 이동하는 링크 추가하거나, 책 상세 화면을 직접 구현해도 됩니다.
- 제약조건: 웹브라우저 앱으로 오픈하면 안 됩니다.
-
언어: Swift
-
OS: Deployment Target iOS 14.1
-
아키텍처: MVVM
-
UI는 코드로 작성
-
에러 핸들링을 포함
💡 기타 라이브러리는 자유롭게 사용하셔도 됩니다. 단, 차후 면접에서 사용하신 라이브러리에 대한 질의가 있을 수 있습니다.
- 로딩 애니메이션 추가
- 유닛 테스트 작성
- MVVM 대신 Clean Swift 사용
- iOS 14.1
- UIKit + SnapKit
- SwiftUI
- MVVM -> VIP
- Alamofire
- RxSwift
- RxAlmofire
- Decodable 모델
- HttpClient 모듈
- HttpRouter 모듈
- Kingfisher
- SkeletonView
- Then
UIKit + SnapKit
에서SwiftUI
로 변경중인 상황을 가정하고 검색화면은UIKit
, 상세화면은SwiftUI
로 구현- 무한검색 방지를 위해 쿼리는
q=intitle
로 제한 (최대 200개 응답) - 페이지네이션는
UITableViewDataSourcePrefetching
로 처리 - 로딩 애니메이션은
TableView + RxSwift + SkeletonView
으로실험적
으로 구현 - API 에러는
.catchAndReturn(.empty)
로 단순처리 후 검색 결과 없음으로 표시 MVVM 1차 구현
후VIP로 최종 구현
(UI-Router 제외), 저장소 tag 남김Unit Test
미구현