Application built with Jetpack Compose which uses TmDB as data source.
To get this app running add your API KEY to local.properties
as shown below, if you don't have one you can easily get one from here after creating a free account.
api="<your-api-key>"
- Minimum SDK 23
- Target SDK 30
- Jetpack Compose - Jetpack Compose is Android’s modern toolkit for building native UI. It simplifies and accelerates UI development on Android. Quickly bring your app to life with less code, powerful tools, and intuitive Kotlin APIs.
- Kotlin - Officially supported programming language for Android development.
- Coroutines - For asynchronous and more..
- Android Architecture Components - Collection of libraries that help you design robust, testable, and maintainable apps.
- LiveData - Data objects that notify views when the underlying database changes.
- ViewModel - Stores UI-related data that isn't destroyed on UI changes.
- Navigation - For naviation between composables.
- Hilt - Dependency Injection Framework
- Material Components for Android - Modular and customizable Material Design UI components for Android.
- Accompanist - Accompanist is a group of libraries that contains some utilities which I've found myself copying around projects which use Jetpack Compose.
- Moshi - Moshi is a modern JSON library for Android and Java, to ease the process of parsing JSON.
- Retrofit - A type-safe HTTP client for Android and Java.
- Store - Store is a Kotlin library for loading data from remote and local sources.
app/src/main/java/dev/shreyansh/tmdb
├── data # Data layer
│ ├── api # API service
│ ├── db # Database setup
│ │ └── dao # Model DAO's
│ ├── model # Models
│ │ └── responses # Wrapper classes for models to parse API respose
│ └── repository # Repository classes which acts as a single source of truth for the ViewModel
├── di # Dependency Injection setup
├── ui # UI layer
│ ├── about # UI for about screen
│ ├── home # UI for home screen
│ ├── movie # UI for movie screen
│ ├── navigation # Navigation setup
│ ├── theme # Theme for TmDB
│ └── tvShows # UI for Tv show screen
└── utils # Helper functions and classes
This app is written while keeping in mind the MVVM architecture.