/Movie_Star

Primary LanguageKotlin

Movie_Star

영화 검색

1 2 3
record_1.mp4
record_2.mp4
record_3.mp4

구현 목록

  • 구성
    • 총 두개(검색, 즐겨찾기)의 하단바로 구성
    • 검색 입력창과 "내 즐겨찾기"를 보여주는 상단바
    • 가운데는 검색 목록 또는 즐겨찾기 목록
    • 앱 첫 진입 시 검색탭으로 시작, 상단바에 검색창, 목록에 "검색 결과가 없습니다."
  • 검색 시작
    • 검색 창 클릭시 돋보기 모양으로 설정, 버튼 클릭 시 키보드 내려가며 검색 시작.
    • 한 줄에 영화 두개씩 노출, 상단바 고정
  • 검색 결과
    • 영화 아이템(포스터이미지, 즐겨찾기(하트), 영화제목, 연도, 타입) 표시
    • 검색 결과 목록 최하단 내렸을 때 다음 페이지 API 호출
    • 검색 결과 없으면 "검색 결과가 없습니다."
    • 검색 결과 중 즐겨찾기(하트) 클릭하면 팝업(현재 ON/OFF 상태에 따라 달라짐)
  • 즐겨찾기
    • 즐겨찾기 목록 확인 ( 검색 결과와 동일 )
    • 하트 클릭시 제거 팝업, 즉시 제거

Structure

├──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

Skills

  • Kotlin
  • CleanArchitecture + MVVM
  • KTS 빌드구성
  • JetPack(DataBinding, Hilt, LifeCycle)
  • Retrofit
  • Flow, LiveData
  • Coroutine
  • Image Glide
  • Leak Canary

Environment

  • Android Studio Chipmunk 2021.2.1
  • minSdkVersion 20
  • targetSdkVersion 30
  • Test Device - Galaxy S10e