Android-Clean-Architecture
π A movie Android app that mimics a real-world project environment, showcasing Clean Architecture, Kotlin, and Jetpack Compose, with Offline-first support.
File Explorer
Download Latest Version (.zip)- app-codestyle.xml
- detekt.yml
- BaseTest.kt
- MainCoroutineRule.kt
- AndroidManifest.xml
- .gitignore
- build.gradle.kts
- proguard-rules.pro
- MovieApi.kt
- FavoriteMovieDao.kt
- MovieDao.kt
- MovieDatabase.kt
- MovieRemoteKeyDao.kt
- FavoriteMovieDbData.kt
- MovieData.kt
- MovieDbData.kt
- MovieRemoteKeyDbData.kt
- DataNotAvailableException.kt
- MovieDataMapper.kt
- FavoriteMoviesDataSource.kt
- FavoriteMoviesLocalDataSource.kt
- MovieDataSource.kt
- MovieLocalDataSource.kt
- MovieRemoteDataSource.kt
- MovieRemoteMediator.kt
- MovieRepositoryImpl.kt
- SearchMoviePagingSource.kt
- DiskExecutor.kt
- DispatchersProviderImpl.kt
- NetworkMonitorImpl.kt
- SafeApiCall.kt
- AndroidManifest.xml
- MockMovieRemoteDataSource.kt
- JsonLoader.kt
- MoviesJSONMock.json
- FavoriteMoviesLocalDataSourceTest.kt
- MovieLocalDataSourceTest.kt
- MovieRemoteDataSourceTest.kt
- MovieRemoteMediatorTest.kt
- MovieRepositoryImplTest.kt
- SearchMoviePagingSourceTest.kt
- .gitignore
- build.gradle.kts
- proguard-rules.pro
- MovieEntity.kt
- MovieRepository.kt
- AddMovieToFavorite.kt
- CheckFavoriteStatus.kt
- GetFavoriteMovies.kt
- GetMovieDetails.kt
- RemoveMovieFromFavorite.kt
- SearchMovies.kt
- DispatchersProvider.kt
- NetworkMonitor.kt
- Result.kt
- AndroidManifest.xml
- .gitignore
- build.gradle.kts
- proguard-rules.pro
- gradle-wrapper.jar
- gradle-wrapper.properties
- libs.versions.toml
- AppModule.kt
- DatabaseModule.kt
- DataModule.kt
- DispatcherModule.kt
- NetworkModule.kt
- Qualifier.kt
- MovieListItem.kt
- MovieEntityMapper.kt
- Page.kt
- BaseViewModel.kt
- FavoritesScreen.kt
- FavoritesStates.kt
- FavoritesViewModel.kt
- GetMoviesWithSeparators.kt
- InsertSeparatorIntoPagingData.kt
- FeedScreen.kt
- FeedStates.kt
- FeedViewModel.kt
- MainActivity.kt
- MainGraph.kt
- MainRouter.kt
- MovieDetailsScreen.kt
- MovieDetailsState.kt
- MovieDetailsViewModel.kt
- NavigationBarNestedGraph.kt
- NavigationBarScreen.kt
- NavigationBarSharedViewModel.kt
- NavigationBarUiState.kt
- SearchScreen.kt
- SearchStates.kt
- SearchViewModel.kt
- AppColor.kt
- Theme.kt
- BottomNavigationBar.kt
- DefaultDivider.kt
- EmptyStateView.kt
- Loader.kt
- MovieList.kt
- NoInternetConnectionBanner.kt
- PullToRefresh.kt
- SearchView.kt
- TopBar.kt
- PreviewContainer.kt
- BooleanExt.kt
- ComposeExtensions.kt
- DimensionExt.kt
- FlowExtensions.kt
- NavigationExtensions.kt
- SyncWork.kt
- App.kt
- bg_empty_favorite.png
- bg_empty_no_result.png
- bg_empty_search.png
- bg_image.png
- bg_movie_cover.jpg
- bg_search_view.xml
- ic_dark_mode.xml
- ic_dark_mode_fill.xml
- ic_favorite_border_white_48.xml
- ic_favorite_fill_white_48.xml
- ic_feed_border_48.xml
- ic_launcher_background.png
- ic_launcher_foreground.xml
- ic_search_white_48.xml
- ic_launcher.xml
- ic_launcher_round.xml
- ic_launcher.webp
- ic_launcher_round.webp
- ic_launcher.webp
- ic_launcher_round.webp
- ic_launcher.webp
- ic_launcher_round.webp
- ic_launcher.webp
- ic_launcher_round.webp
- ic_launcher.webp
- ic_launcher_round.webp
- colors.xml
- dimens.xml
- ic_launcher_background.xml
- strings.xml
- AndroidManifest.xml
- ic_launcher-playstore.png
- RemoteDataSourceModule.kt
- RemoteDataSourceModule.kt
- FavoritesViewModelTest.kt
- FeedViewModelTest.kt
- MovieDetailsViewModelTest.kt
- NavigationBarSharedViewModelTest.kt
- SearchViewModelTest.kt
- TestDispatchersProvider.kt
- .gitignore
- build.gradle.kts
- proguard-rules.pro
- app-example.png
- architecture0.png
- dark-screen1.png
- dark-screen2.png
- dark-screen3.png
- dark-screen4.png
- demo-dark.gif
- demo-light.gif
- l-screen.png
- light-screen1.png
- light-screen2.png
- light-screen3.png
- light-screen4.png
- screen1.png
- screen2.png
- screen3.png
- screen4.png
- screenshot-cover.png
- structure.png
- structure0.png
- .gitignore
- _config.yml
- build.gradle.kts
- detekt.gradle
- gradle.properties
- gradlew
- gradlew.bat
- kover.gradle
- LICENSE
- README.md
- settings.gradle
# Installation Guide
1. Get the code
git clone https://github.com/AliAsadi/Android-Clean-Architecture
Downloads the entire project code from GitHub to your computer.
cd Android-Clean-Architecture
Moves into the project folder you just downloaded.
2. Gradle (Java/Kotlin)
Medium RecommendedPrerequisites
- Git Needed to download the project code from GitHub.
- JDK (Java) Required to build and run Java/Kotlin projects.
- Gradle If the repo includes gradlew (Gradle Wrapper), you don't need to install Gradle separately.
./gradlew koverTask
Builds the project using Gradle.
./gradlew detektTask
Builds the project using Gradle.
A BUILD SUCCESSFUL message means it worked. The output is created under build/.
Pulled directly from this repo's README.
// repository documentation
Was this content helpful?
(0 ratings)
