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.
- Host: GitHub
- URL: https://github.com/ahmedgamalramadan/movie-app-with-koin
- Owner: AhmedGamalRamadan
- Created: 2024-07-19T01:16:49.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2024-08-13T17:06:17.000Z (about 1 year ago)
- Last Synced: 2025-01-18T15:36:42.745Z (9 months ago)
- Topics: coil-image-loader, jetpack-compose, koin, koin-injection, koin-mvvm, kotlin, moshi-converter, mvvm-architecture, paging, retrofit
- Language: Kotlin
- Homepage:
- Size: 118 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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
## 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
![]()
![]()
![]()
![]()
![]()
![]()
## Connect with Me 🌐
Let's connect! Feel free to reach out on LinkedIn.