├── base
│ └── BasePagingSource.kt
├── database
│ ├── BookmarkDao.kt
│ └── BookmarkDatabase.kt
├── paging
│ ├── common
│ │ ├── CreditPagingSource.kt
│ │ ├── GenreAllPagingSource.kt
│ │ ├── GenrePagingSource.kt
│ │ ├── GenreViewPagerPagingSource.kt
│ │ ├── RecommendPagingSource.kt
│ │ └── SimilarPagingSource.kt
│ ├── movie
│ │ ├── MoviePagingSource.kt
│ │ ├── MovieSearchAllPagingSource.kt
│ │ └── MovieSearchPagingSource.kt
│ └── tv
│ ├── TVPagingSource.kt
│ ├── TVSearchAllPagingSource.kt
│ └── TVSearchPagingSource.kt
├── repository
│ ├── local
│ │ └── BookmarkRepositoryImpl.kt
│ └── remote
│ ├── common
│ │ └── CommonRepositoryImpl.kt
│ ├── movie
│ │ └── MovieRepositoryImpl.kt
│ ├── search
│ │ └── SearchRepositoryImpl.kt
│ └── tv
│ └── TVshowRepositoryImpl.kt
└── service
├── commonservice
│ └── CommonService.kt
├── model
│ └── MovieResponse.kt
├── movieservice
│ └── MovieService.kt
└── tvservice
└── TVService.kt
├── model
│ ├── common
│ │ ├── Bookmark.kt
│ │ ├── Credit.kt
│ │ ├── Detail.kt
│ │ ├── Genre.kt
│ │ ├── OtherContent.kt
│ │ └── Trailer.kt
│ ├── movie
│ │ └── Movie.kt
│ └── tv
│ └── TVshow.kt
├── repository
│ ├── bookmark
│ │ └── BookmarkRepository.kt
│ ├── common
│ │ └── CommonRepository.kt
│ ├── movie
│ │ └── MovieRepository.kt
│ ├── search
│ │ └── SearchRepository.kt
│ └── tv
│ └── TVshowRepository.kt
└── usecase
├── CheckBookmarkUseCase.kt
├── DeleteAllBookarmkUseCase.kt
├── DeleteBookmarkUseCase.kt
├── GetBookmarkRepoUseCase.kt
├── GetCreditRepoUseCase.kt
├── GetGenreAllRepoUseCase.kt
├── GetGenreRepoUseCase.kt
├── GetMovieDetailRepoUseCase.kt
├── GetMoviePopularRepoUseCase.kt
├── GetMovieRepoUseCase.kt
├── GetMovieSearchAllRepoUseCase.kt
├── GetMovieSearchRepoUseCase.kt
├── GetRecommendRepoUseCase.kt
├── GetSimilarRepoUseCase.kt
├── GetTVDetailRepoUseCase.kt
├── GetTVSearchAllRepoUseCase.kt
├── GetTVSearchRepoUseCase.kt
├── GetTVshowRepoUseCase.kt
├── GetTrailerRepoUseCase.kt
├── GetTvPopularRepoUseCase.kt
└── SaveBookmarkUseCase.kt
├── AppConstants.kt
├── Event.kt
├── base
│ ├── BaseActivity.kt
│ ├── BaseAdapter.kt
│ ├── BaseFragment.kt
│ ├── BasePagingAdapter.kt
│ └── BaseViewHolder.kt
├── di
│ ├── App.kt
│ ├── LocalDataSourceModule.kt
│ ├── NetworkModule.kt
│ └── RepositoryModule.kt
├── utils
│ └── KeepStateNavigator.kt
├── view
│ ├── MainActivity.kt
│ ├── SplashActivity.kt
│ ├── adapter
│ │ ├── BindingAdapter
│ │ │ ├── ImageBindingAdapter.kt
│ │ │ └── TextBindingAdatper.kt
│ │ ├── BookmarkAdapter.kt
│ │ ├── ContentsAdapter.kt
│ │ ├── CreditAdapter.kt
│ │ ├── GenreAdapter.kt
│ │ ├── GenreAllAdapter.kt
│ │ ├── HorizontalItemDecorator.kt
│ │ ├── MoviePagingAdapter.kt
│ │ ├── MovieSearchPagingAdapter.kt
│ │ ├── MovieViewPagerAdapter.kt
│ │ ├── SearchDetailLoadStateAdapter.kt
│ │ ├── TVPagingAdapter.kt
│ │ ├── TVSearchPagingAdapter.kt
│ │ ├── TVViewPagerAdapter.kt
│ │ └── TrailerAdapter.kt
│ ├── bookmark
│ │ ├── BookmarkContainerFragment.kt
│ │ └── BookmarkFragment.kt
│ ├── detail
│ │ ├── DetailFragment.kt
│ │ └── VideoFragment.kt
│ ├── genre
│ │ ├── GenreAllFragment.kt
│ │ ├── movie
│ │ │ └── MovieGenreFragment.kt
│ │ └── tv
│ │ └── TVGenreFragment.kt
│ ├── home
│ │ ├── HomeContainerFragment.kt
│ │ └── HomeFragment.kt
│ └── search
│ ├── SearchAllFragment.kt
│ ├── SearchContainerFragment.kt
│ └── SearchFragment.kt
└── viewmodel
├── BookmarkViewModel.kt
├── DetailViewModel.kt
├── GenreViewModel.kt
├── HomeViewModel.kt
└── SearchViewModel.kt
아키텍쳐(Architecture), 디자인 패턴(Design Pattern) | Clean Architecture, MVVM, Repository Pattern |
네트워크(Network) | Retrofit2 |
비동기처리(Async) | Coroutine, Flow |
의존성 주입(Dependency Injection) | Dagger Hilt |
내부 DB(Internal DB) | Room |
이미지 처리(Image Load & Download) | Glide |
JetPack | ViewModel, Data Binding, Lifecycles, LiveData, Navigation |
Other | ViewPager2, CardView, RecyclerView |
For claims of copyright infringement, please contact our designated agent under the Digital Millennium Copyright Act:
Copyright Agent at: 489 S. El Camino Real, San Mateo, CA, 94402.