An Android app am using The TMDB API to display Movies. Am building it with with clean architecture principles, Repository and MVVM with JetPack Compose Libraries. Its a work in progress trying to implement all the related libraries on Android using Kotlin and working with the best architecture.
The project uses best practices, tools and solutions:
- Kotlin
- MVVM architecture.
- Dependency Injection
The Libraries am using in the Development of the whole Application.
-
Architecture
- MVVM - application level
- Android Architecture components
-
Stack
- Jetpack🚀 - libraries that help follow best practices, reduce boilerplate code, and write code that works consistently across Android versions and devices so that developers can focus on the code they care about.
- Dagger-Hilt - For dependency injection
- ViewBinding - support library that allows binding of UI components in layouts to data sources,binds character details and search results to UI.
- Navigation Component
- Moshi - a modern JSON library for Android, Java and Kotlin. It makes it easy to parse JSON
- Paging 3 - library helps you load and display pages of data from a larger dataset from local storage or over network.
- Coroutines - is a concurrency design pattern that you can use on Android to simplify code that executes asynchronously
- Flow - is a type that can emit multiple values sequentially, as opposed to suspend functions that return only a single value.
- ViewModel - Manage UI related data in a lifecycle conscious way and act as a channel between use cases and ui
- Android Studio -> File -> New -> From Version control -> Git
- From the terminal run git clone https://github.com/Danc-0/Movies.git
Create an account in [The TMDB API ](https://developers.themoviedb.org/3/getting-started/introduction) and request
for an APIKEY from which go to local.properties file in the build scripts and add it
as APIKEY = "YOURAPIKEY"
This is a short demo of how the application looks like
Contibutions are welcomed. Feel free to add anything or remove anything that is unnecessary
Give a ⭐ if you like the Project