Skip to content

MovieAppJC developed with Jetpack Compose and follows the principles of Clean Architecture with Android Architecture Components.

Notifications You must be signed in to change notification settings

trunghau121/MovieAppJC

Repository files navigation

Screenshots:

Built with using Jetpack Compose

What How
🎭 User Interface (Android) Jetpack Compose
🏗 Architecture Clean
💉 DI (Android) Hilt
🌊 Async Coroutines + Flow
🌐 Networking Retrofit
📄 Database Local Room
📄 Parsing Moshi

Architecture

MovieAppJC follows the principles of Clean Architecture with Android Architecture Components.

Architecture's layers & boundaries:

image

UI Layer contains UI (Activities, Composables, Fragments) that are coordinated by ViewModels which execute 1 or multiple UseCases. Presentation Layer depends on Domain Layer.

Domain Layer is the most INNER part of the circle (no dependencies with other layers) and it contains Entities, Use cases & Repository Interfaces. Use cases combine data from 1 or multiple Repository Interfaces.

Data Layer contains Repository Implementations and 1 or multiple Data Sources. Repositories are responsible to coordinate data from the different Data Sources. Data Layer depends on Domain Layer.

Conventions:

Files are suffixed with be defined Class types.

  • ViewModels are suffixed with ViewModel. Ex: HomeViewModel
  • UseCases are suffixed with UseCase. Ex: DetailMovieUseCase
  • Models are suffixed with Model. Ex: MovieModel
  • Entities are suffixed with Entity. Ex: MovieEntity
  • DataSources are suffixed with DataSource. Ex: AppLocalDataSource, MovieLocalDataSource
  • Repositories are suffixed with Repository. Ex: MovieRepository

About

MovieAppJC developed with Jetpack Compose and follows the principles of Clean Architecture with Android Architecture Components.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages