An open API service indexing awesome lists of open source software.

https://github.com/ahmedgamalramadan/movie-app-with-koin

Movie application to get movies from an API using Koin.
https://github.com/ahmedgamalramadan/movie-app-with-koin

coil-image-loader jetpack-compose koin koin-injection koin-mvvm kotlin moshi-converter mvvm-architecture paging retrofit

Last synced: 7 months ago
JSON representation

Movie application to get movies from an API using Koin.

Awesome Lists containing this project

README

          

# Movie App

## Description
This is a practice Android application built using Jetpack Compose for UI, Koin for dependency injection, and Paging for efficient data loading. The app is designed to display a list of movies on a single home screen.

## Technologies Used :
* **Jetpack Compose:** The app leverages *Jetpack Compose*, a modern Android UI toolkit, to create a seamless and interactive user experience.
* **Kotlin:** Developed entirely in *Kotlin*, the codebase benefits from the conciseness and expressiveness of the language, promoting efficient and readable code.
* **Clean Architecture**: The project implements the principles of clean architecture to separate the business, presentation, and data layers. This enables easier testing and flexibility in swapping out layer implementations.
* **MVVM (Model-View-ViewModel)**: The MVVM architecture is utilized to separate the business logic from the view. The Model represents data and business rules, the View is the user-visible interface, and the ViewModel is responsible for preparing and delivering data to the View.
* **Retrofit:** Fetches news articles from an API.
* **Moshi:** For JSON parsing.
* **Koin:** Used for dependency injection, making the app more modular and easier to test.
* **Kotlin Coroutines**
* **ViewModel**
* **Paging** For handling large datasets efficiently.

## Architecture block diagram
![Android Architecture](https://github.com/lofcoding/AndroidArchitectureSample/assets/109604722/ed29d956-1154-4518-9107-e4e1a34b4a35)

## Screens
* **Home Screen:** Displays a paginated list of movies fetched from a remote API.

## How It Works

* **The app fetches a list of movies from a remote API and displays them in a paginated list.**
* **The ViewModel handles the business logic and interacts with the repository to fetch the data.**
* **Koin is used to inject dependencies, ensuring that components are easily testable and modular.**
* **Paging is used to load movies in chunks, improving performance and user experience.**

## Installation
1. **Clone the Repository**: Clone this repository to your local machine.
2. **Open in Android Studio**: Open the project in Android Studio.
3. **Build and Run**: Build and run the project on an Android device or emulator.

### Screenshot


splash
splash
splash


splash
splash
splash

## Connect with Me 🌐
Let's connect! Feel free to reach out on LinkedIn.


https://www.linkedin.com/in/ahmed-gamal-97509328a/