🎬 This is a Compose version of my earlier Catchflicks project. This will be my new Kitchen Sink Project for learning new Android concepts. This project mainly contains Compose Navigation, Compose Paging, Coroutines, Hilt, Retrofit, and all the UI created in Jetpack Compose 🎬
Following MVVM Architecture based on a single 'app' module.
- data
- model
- remote
- response
- di
- domain
- model
- repository
- ui
- component
- navigation
- screens
- theme
- util
- util
- ComposeCatchflicksApplication.kt
- MainActivity.kt
- Jetpack Compose - UI creation library
- Compose Navigation - Navigate between Compose Screen
- Compose Paging - Managing multiple pages of data
- Coil - Image Loading Library
- Coroutines - Async Programming
- StateFlow - Observable Data holder
- Compose Material3 for Android - Modular and customizable Material Design
- AssistChip - Chips are for info
- Hilt - Dependency Injection Library
- Retrofit - Used for Networking
- OkHTTP - HTTP Client required by Retrofit Library for Networking
- Kotlinx Serialization - Use to serialize and deserialize Kotlin objects to JSON
- Kotlin Gradle - All the gradle files are written in pure kotlin
- Lifecycle - Manage activity and fragment lifecycle
- LiveData - Observable data holder
- AndroidX - Android library for core functionalities
- ViewModel - Manage data in lifecycle-aware fashion
This project fetches movies data from the TMDb API.
To begin the setup, you'll need to create an API key.
- Create an account at themoviedb.org
- Go to settings from the profile icon
- Click on API
- Click on Create
# Insert at ~/local.properties
TMDB_API_KEY=<insert>
This project uses the Hilt for dependency Injection. After opening this project in your Android Studio you might get some error which is due unavailability of a few classes.
You need to make a project
or try to build the project, this will generate all the required classes for Hilt.
- Pagination
- Custom Adapter for Retrofit Response
- Jetpack Compose
- Kotlin Gradle files
- Kotlinx Serialization
Author: Akshay Nandwana
Need a Mentor? Click Here
Copyright 2022 Akshay Nandwana
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.