A simple yet sufficient android application to fetch:
- Popular Movies
- Top Rated Movies
- Now Playing Movies
- Upcoming Movies using api from themoviedb.org
This project is built to show how to build modern android applications following Guide to app architecture with kotlin and some of the android jetpack libraries.
After cloning the project, find the gradle.properties
in the .gradle
folder inside the project directory.
Add TrailerMoviesApp_ApiKey = "YOUR-API-KEY"
to that file.
- Foundation - Components for core system capabilities, Kotlin extensions and support for
multidex and automated testing.
- AppCompat - Degrade gracefully on older versions of Android.
- Android KTX - Write more concise, idiomatic Kotlin code.
- Architecture - A collection of libraries that help you design robust, testable, and
maintainable apps. Start with classes for managing your UI component lifecycle and handling data
persistence.
- Data Binding - Declaratively bind observable data to UI elements.
- LiveData - Build data objects that notify views when the underlying database changes.
- Navigation - Handle everything needed for in-app navigation.
- Room - Access your app's SQLite database with in-app objects and compile-time checks.
- Paging - Load and display small chunks of data at a time.
- ViewModel - Store UI-related data that isn't destroyed on app rotations. Easily schedule asynchronous tasks for optimal execution.
- WorkManager - Manage your Android background jobs.
- UI - Details on why and how to use UI Components in your apps - together or separate
- Fragment - A basic unit of composable UI.
- Recyclerview - Display large sets of data in your UI while minimizing memory usage.
- Third party
- Glide for image loading
- Gson Java library that can be used to convert Java Objects into their JSON representation
- Retrofit A type-safe HTTP client for Android
- Timber A logger with a small, extensible API which provides utility on top of Android's normal Log class.
- Kotlin Coroutines for managing background threads with simplified code and reducing needs for callbacks
- Adding search page to the app. If you're interested in adding this feature, you can submit a PR. Note: The logic for this feature is already included
If you like the project, do well to star it and also keep a watch.