Skip to content

A Multi-Module Android app built using with Kotlin, Jetpack Compose, MVVM with Clean Architecture, Paging3, Flow, Coroutines, Hilt, Retrofit, OKHttp, Firebase, DataStore

License

Notifications You must be signed in to change notification settings

kursatkumsuz/movie

Repository files navigation

Movie App

This movie application provides users with an extensive collection of films, allowing them to explore detailed information about each movie. Users can search for specific films and delve into their details. Additionally, the app enables users to watch trailers and video clips related to each film.

Overview

  • This project embraces a robust development approach by incorporating Multi-Module, MVVM (Model-View-ViewModel), and Clean Architecture principles.

Multi-Module

  • The modular structure enhances maintainability, scalability, and extensibility.
  • Each module can be developed independently, fostering code organization and minimizing dependencies.

Clean Architecture

  • Clean Architecture principles are applied to each feature module in this project.

MVVM (Model-View-ViewModel)

  • MVVM provides a clear separation between the user interface (View) and business logic (ViewModel), promoting code readability.

Used in the project

  • Jetpack Compose: Modern declarative UI Toolkit for Android
  • Navigation Compose: Allows to easily build multi screen apps
  • Paging3 Allows for the gradual loading of large datasets from the data source easily
  • Firebase for Authentication & Storage
  • Hilt for dependency injection
  • Coroutines for asynchronous programming
  • Flow An asynchronous data stream that sequentially emits values
  • OkHttp for caching data.
  • Retrofit A modern and type-safe HTTP client for communicating with RESTful web services.
  • DataStore A modern data storage solution for storing and retrieving data, part of the Jetpack libraries.
  • TMDB API Popular and user editable database for movies and TV shows.

📸 Video

Timeline.1.mov

📸 Screens

Dark Mode

Releases

No releases published

Packages

No packages published

Languages