영화 검색
1 | 2 | 3 |
---|---|---|
record_1.mp4 |
record_2.mp4 |
record_3.mp4 |
- 구성
- 총 두개(검색, 즐겨찾기)의 하단바로 구성
- 검색 입력창과 "내 즐겨찾기"를 보여주는 상단바
- 가운데는 검색 목록 또는 즐겨찾기 목록
- 앱 첫 진입 시 검색탭으로 시작, 상단바에 검색창, 목록에 "검색 결과가 없습니다."
- 검색 시작
- 검색 창 클릭시 돋보기 모양으로 설정, 버튼 클릭 시 키보드 내려가며 검색 시작.
- 한 줄에 영화 두개씩 노출, 상단바 고정
- 검색 결과
- 영화 아이템(포스터이미지, 즐겨찾기(하트), 영화제목, 연도, 타입) 표시
- 검색 결과 목록 최하단 내렸을 때 다음 페이지 API 호출
- 검색 결과 없으면 "검색 결과가 없습니다."
- 검색 결과 중 즐겨찾기(하트) 클릭하면 팝업(현재 ON/OFF 상태에 따라 달라짐)
- 즐겨찾기
- 즐겨찾기 목록 확인 ( 검색 결과와 동일 )
- 하트 클릭시 제거 팝업, 즉시 제거
├──application │ ├── Logger │ └── Application(Hilt) │ ├──buildSrc(KTS 빌드 버전) ├──data │ ├── di (NetworkModule, RepositoryModule) │ └── model (APIKey, Response) │ └── repository (MovieRepositoryImpl 구현체) │ └── service (MovieService Interface) ├──domain │ ├── di (UseCaseModule) │ ├── model (MovieEntity, Result) │ └── repository(MovieRepository Interface) │ └── usecase (검색, 다음 페이지) └──presentation ├── adapter (RecyclerView, BindingAdapter, ViewPager) ├── base (baseActivity, baseFragment, baseViewModel, baseDialog) ├── dialog ├── model (ViewMode - 검색, 즐겨찾기) ├── view (ToolBar) └── ui ├── main │ ├── Activity │ └── ViewModel ├── search(검색) │ ├── Fragment │ └── ViewModel └── bookmark(즐겨찾기) ├── Fragment └── ViewModel
- Kotlin
- CleanArchitecture + MVVM
- KTS 빌드구성
- JetPack(DataBinding, Hilt, LifeCycle)
- Retrofit
- Flow, LiveData
- Coroutine
- Image Glide
- Leak Canary
- Android Studio Chipmunk 2021.2.1
- minSdkVersion 20
- targetSdkVersion 30
- Test Device - Galaxy S10e