Android-Kotlin-MVI-CleanArchitecture
Android + Kotlin + Modularization + Gradle Depedency managment + Gradle written in Kotlin DSL + Custom Gradle Plugin + MVVM + MVI + Clean Architecture + Repository Pattern + Coroutines + Flows + Koin + Retrofit2 + ROOM + Kotlin-Android-Extension + KtLints
File Explorer
Download Latest Version (.zip)- KoinModules.kt
- BaseApp.kt
- AndroidManifest.xml
- .gitignore
- build.gradle.kts
- proguard-rules.pro
- BaseGradlePlugin.kt
- PluginExtensions.kt
- AndroidConfig.kt
- GradleDependency.kt
- LibraryDependency.kt
- ModulesDependency.kt
- TestLibraryDependency.kt
- CommonDependency.kt
- .gitignore
- build.gradle.kts
- AccountDao.kt
- AppDatabase.kt
- AuthTokenDao.kt
- BlogPostDao.kt
- DataBaseModule.kt
- SharedPrefsModule.kt
- BlogPostEntityMapper.kt
- EntityMapper.kt
- TokenEntityMapper.kt
- UserEntityMapper.kt
- CachedBlogPost.kt
- CachedToken.kt
- CachedUser.kt
- AccountCacheDataSourceImpl.kt
- BlogCacheDataSourceImpl.kt
- TokenCacheDataSourceImpl.kt
- AndroidManifest.xml
- .gitignore
- build.gradle.kts
- proguard-rules.pro
- AccountCacheDataSource.kt
- BlogCacheDataSource.kt
- BlogCacheQueries.kt
- TokenCacheDataSource.kt
- AccountRemoteDataSource.kt
- AuthRemoteDataSource.kt
- BlogRemoteDataSource.kt
- BaseEntity.kt
- BlogPostEntity.kt
- BlogPostListEntity.kt
- TokenEntity.kt
- UserEntity.kt
- DataModule.kt
- BaseMapper.kt
- BlogPostMapper.kt
- Mapper.kt
- TokenMapper.kt
- UserMapper.kt
- AccountRepositoryImpl.kt
- AuthRepositoryImpl.kt
- BlogRepositoryImpl.kt
- CreateBlogRepositoryImpl.kt
- NetworkBoundResource.kt
- .gitignore
- build.gradle.kts
- proguard-rules.pro
- DataState.kt
- StateResource.kt
- UseCaseModule.kt
- BaseModel.kt
- BlogPost.kt
- BlogPostList.kt
- Token.kt
- User.kt
- AccountRepository.kt
- AuthRepository.kt
- BaseRepository.kt
- BlogRepository.kt
- CreateBlogRepository.kt
- ChangePasswordUseCase.kt
- GetAccountUseCase.kt
- UpdateAccountUseCase.kt
- CheckTokenUseCase.kt
- LoginUseCase.kt
- RegisterUseCase.kt
- CreateBlogUseCase.kt
- DeleteBlogPostUseCase.kt
- FiltrationUseCase.kt
- IsAuthorBlogPostUseCase.kt
- SearchBlogUseCase.kt
- UpdateBlogPostUseCase.kt
- AccountViewState.kt
- AuthViewState.kt
- BlogViewState.kt
- CreateBlogViewState.kt
- Constants.kt
- .gitignore
- build.gradle.kts
- proguard-rules.pro
- BaseActivity.kt
- BaseFragment.kt
- BaseViewModel.kt
- BottomNavController.kt
- DataStateChangeListener.kt
- SessionManager.kt
- UICommunicationListener.kt
- ViewExtensions.kt
- AccountEventState.kt
- AuthEventState.kt
- BlogEventState.kt
- CreateBlogEventState.kt
- AuthActivity.kt
- AuthViewModel.kt
- ForgotPasswordFragment.kt
- LoginFragment.kt
- RegisterFragment.kt
- SplashActivity.kt
- AccountFragment.kt
- AccountViewModel.kt
- BaseAccountFragment.kt
- ChangePasswordFragment.kt
- UpdateAccountFragment.kt
- BlogListItem.kt
- BlogViewModel.kt
- Getters.kt
- Pagination.kt
- Setters.kt
- Adapters.kt
- BaseBlogFragment.kt
- BlogFragment.kt
- BlogViewHolder.kt
- GenericViewHolder.kt
- UpdateBlogFragment.kt
- ViewBlogFragment.kt
- CreateBlogFragment.kt
- CreateBlogViewModel.kt
- MainActivity.kt
- AuthModule.kt
- MainModule.kt
- BaseMapper.kt
- BlogPostMapper.kt
- Mapper.kt
- TokenMapper.kt
- UserMapper.kt
- BaseModelView.kt
- BlogPostListView.kt
- BlogPostView.kt
- TokenView.kt
- UserView.kt
- Constants.kt
- fade_in.xml
- fade_out.xml
- slide_in_left.xml
- slide_in_right.xml
- slide_out_left.xml
- slide_out_right.xml
- bottom_nav_selector.xml
- codingwithmitch_logo.png
- default_image.png
- ic_account_circle_white_24dp.xml
- ic_add_circle_outline_white_24dp.xml
- ic_check_green_24dp.xml
- ic_edit_black_24dp.xml
- ic_filter_list_grey_24dp.xml
- ic_home_white_24dp.xml
- ic_launcher_background.xml
- ic_mood_bad_black_24dp.xml
- main_button_drawable.xml
- red_button_drawable.xml
- ic_launcher_foreground.xml
- activity_auth.xml
- activity_main.xml
- activity_splash.xml
- fragment_account.xml
- fragment_blog.xml
- fragment_change_password.xml
- fragment_create_blog.xml
- fragment_forget_password.xml
- fragment_login.xml
- fragment_register.xml
- fragment_update_account.xml
- fragment_update_blog.xml
- fragment_view_blog.xml
- layout_blog_filter.xml
- layout_blog_list_item.xml
- layout_no_more_results.xml
- edit_view_menu.xml
- main_bottom_navigation_menu.xml
- publish_menu.xml
- search_menu.xml
- update_menu.xml
- ic_launcher.xml
- ic_launcher_round.xml
- ic_launcher.png
- ic_launcher_round.png
- ic_launcher.png
- ic_launcher_round.png
- ic_launcher.png
- ic_launcher_round.png
- ic_launcher.png
- ic_launcher_round.png
- ic_launcher.png
- ic_launcher_round.png
- nav_account.xml
- nav_auth.xml
- nav_blog.xml
- nav_create_blog.xml
- colors.xml
- dimen.xml
- strings.xml
- styles.xml
- AndroidManifest.xml
- .gitignore
- build.gradle.kts
- proguard-rules.pro
- gradle-wrapper.jar
- gradle-wrapper.properties
- RemoteModule.kt
- BaseEntityMapper.kt
- BlogPostEntityMapper.kt
- BlogPostListEntityMapper.kt
- EntityMapper.kt
- UserEntityMapper.kt
- BaseRemote.kt
- RemoteBlogPost.kt
- RemoteBlogPostList.kt
- RemoteUser.kt
- AccountAPIService.kt
- AuthAPIService.kt
- BlogAPIService.kt
- AccountRemoteDataSourceImpl.kt
- AuthRemoteDataSourceImpl.kt
- BlogRemoteDataSourceImpl.kt
- .gitignore
- build.gradle.kts
- proguard-rules.pro
- .gitignore
- build.gradle.kts
- gradle.properties
- gradlew
- gradlew.bat
- LICENSE
- local.properties
- README.md
- settings.gradle.kts
# Installation Guide
1. Get the code
git clone https://github.com/MoIbrahim15/Android-Kotlin-MVI-CleanArchitecture
Downloads the entire project code from GitHub to your computer.
cd Android-Kotlin-MVI-CleanArchitecture
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.
cd app
This project's files live in a subfolder, so move into it first.
./gradlew build
Builds the project using Gradle.
A BUILD SUCCESSFUL message means it worked. The output is created under build/.
// repository documentation
Was this content helpful?
(0 ratings)
