An Android app that displays top and trending movies consuming themoviedb api. Built using architecture components, MVVM and repository pattern as practice for the AAD certification.
- Get a free TMDb API Key from here
- Clone the repository onto your local machine.
- Use your API key in the gradle buildconfig.
- Build and run the app.
The project is built using Model-View-ViewModel Architecture. MVVM is a software architectural pattern which helps to cleanly separate the business and presentation logic of an application from its user interface.
-
- Android KTX - Provide concise, idiomatic Kotlin to Jetpack and Android platform APIs.
- AndroidX - Major improvement to the original Android Support Library, which is no longer maintained.
- Lifecycle - Perform actions in response to a change in the lifecycle status of another component, such as activities and fragments.
- LiveData - Lifecycle-aware, meaning it respects the lifecycle of other app components, such as activities, fragments, or services.
- ViewModel - Designed to store and manage UI-related data in a lifecycle conscious way. The ViewModel class allows data to survive configuration changes such as screen rotations.
- Data Binding - Allows you to bind UI components in your layouts to data sources in your app using a declarative format rather than programmatically.
- Room - Provides an abstraction layer over SQLite used for offline data caching.
- Navigation Component -Component that allows easier implementation of navigation from simple button clicks to more complex patterns.
- WorkManager - An API that makes it easy to schedule reliable, asynchronous tasks that are expected to run even if the app exits or the device restarts.
-
Kotlin Coroutines - A Kotlin feature that converts async callbacks for long-running tasks, such as database or network access, into sequential code.
-
Koin - A pragmatic lightweight dependency injection framework for Kotlin.
-
Material Design - A design system created by Google to help teams build high-quality digital experiences for Android, iOS, Flutter, and the web.
-
Retrofit - Type-safe http client and supports coroutines out of the box.
-
Moshi Moshi is a modern JSON library for Android and Java. It makes it easy to parse JSON into Java objects:
-
okhttp - An efficient HTTP & HTTP/2 client for Android and Java applications.
-
Glide - An image loading and caching library for Android focused on smooth scrolling
The Application UI: Supports dark and light themes, search functionality, bookmarking and latest movie notifications.