Baking-App-Kotlin
Android architecture sample with dynamic feature modularisation, clean architecture with MVI (Uni-directional data flow), dagger hilt, DFM Navigation, kotlin coroutines with StateFlow and Exo player.
File Explorer
Download Latest Version (.zip)- android_build.yml
- AppComponent.kt
- NavigationModule.kt
- NavigationDispatcher.kt
- NavigationDispatcherImpl.kt
- MainActivity.kt
- BakingApplication.kt
- ic_baseline_arrow_back_24.xml
- ic_launcher_background.xml
- ic_launcher_foreground.xml
- googlesans.ttf
- activity_main.xml
- ic_launcher.xml
- ic_launcher_round.xml
- ic_launcher.png
- ic_launcher_foreground.png
- ic_launcher_round.png
- ic_launcher.png
- ic_launcher_foreground.png
- ic_launcher_round.png
- ic_launcher.png
- ic_launcher_foreground.png
- ic_launcher_round.png
- ic_launcher.png
- ic_launcher_foreground.png
- ic_launcher_round.png
- ic_launcher.png
- ic_launcher_foreground.png
- ic_launcher_round.png
- nav_main.xml
- colors.xml
- dimens.xml
- strings.xml
- styles.xml
- resources.xml
- AndroidManifest.xml
- ic_launcher-web.png
- ic_launcher_app-web.png
- .gitignore
- build.gradle.kts
- proguard-rules.pro
- kotlin-library.gradle.kts
- spotless.gradle.kts
- AppDependencies.kt
- BuildType.kt
- Extensions.kt
- build.gradle.kts
- FakeNavigationDispatcher.kt
- FlowRecorder.kt
- MainCoroutineRule.kt
- TestPostExecutionThread.kt
- AndroidManifest.xml
- .gitignore
- build.gradle.kts
- SimpleEmptyStateView.kt
- ic_error_page_2.xml
- simple_empty_state_view_layout.xml
- attrs.xml
- strings.xml
- styles.xml
- AndroidManifest.xml
- .gitignore
- build.gradle.kts
- consumer-rules.pro
- proguard-rules.pro
- CoreComponent.kt
- ViewModelKey.kt
- DataModule.kt
- ExecutorModule.kt
- FactoryModule.kt
- ImageLoaderModule.kt
- RemoteModule.kt
- FeatureScope.kt
- PostExecutionThreadImpl.kt
- Extensions.kt
- FlowExt.kt
- ViewExt.kt
- AssistedViewModelFactory.kt
- ViewModelFactory.kt
- ImageLoader.kt
- ImageLoaderImpl.kt
- ViewBinding.kt
- LifecycleFlow.kt
- cheese_cake.jpg
- AndroidManifest.xml
- .gitignore
- build.gradle.kts
- consumer-rules.pro
- proguard-rules.pro
- IngredientModelMapper.kt
- RecipeModelMapper.kt
- StepModelMapper.kt
- IngredientModel.kt
- RecipeModel.kt
- StepInfoModel.kt
- StepModel.kt
- AndroidManifest.xml
- IngredientModelMapperTest.kt
- RecipeModelMapperTest.kt
- StepModelMapperTest.kt
- DummyData.kt
- .gitignore
- build.gradle.kts
- consumer-rules.pro
- proguard-rules.pro
- RecipeComponent.kt
- PresentationModule.kt
- ViewModelModule.kt
- Injector.kt
- HomeStateMachine.kt
- RecipeViewAction.kt
- RecipeViewIntent.kt
- RecipeViewResult.kt
- RecipeViewState.kt
- RecipeActionProcessor.kt
- RecipeViewIntentProcessor.kt
- Alias.kt
- RecipeViewModel.kt
- RecipeViewStateReducer.kt
- RecipeAdapter.kt
- RecipeFragment.kt
- Extensions.kt
- error.jpg
- ic_empty.xml
- content_main.xml
- fragment_recipe.xml
- recipe_placeholder_item.xml
- colors.xml
- dimens.xml
- resources.xml
- strings.xml
- styles.xml
- resources.xml
- AndroidManifest.xml
- DummyData.kt
- FakeRecipeActionProcessor.kt
- FakeRecipeRepository.kt
- RecipeActionProcessorTest.kt
- RecipeViewIntentProcessorTest.kt
- RecipeViewModelTest.kt
- RecipeViewStateReducerTest.kt
- .gitignore
- build.gradle.kts
- RecipeDetailComponent.kt
- PresentationModule.kt
- Injector.kt
- IngredientDetailMapper.kt
- RecipeDetailModel.kt
- StepDetailMapper.kt
- RecipeDetailModelFactory.kt
- RecipeDetailStateMachine.kt
- RecipeDetailViewAction.kt
- RecipeDetailViewIntent.kt
- RecipeDetailViewResult.kt
- RecipeDetailViewState.kt
- RecipeDetailActionProcessor.kt
- RecipeDetailIntentProcessor.kt
- Alias.kt
- RecipeDetailViewModel.kt
- RecipeDetailViewStateReducer.kt
- HeaderViewHolder.kt
- IngredientStepAdapter.kt
- IngredientViewHolder.kt
- RecyclerViewExt.kt
- StepViewHolder.kt
- RecipeDetailFragment.kt
- ic_play_arrow_black_24dp.xml
- fragment_recipe_detail.xml
- ingredient_list_content.xml
- item_header_layout.xml
- step_list_content.xml
- strings.xml
- AndroidManifest.xml
- .gitignore
- build.gradle.kts
- StepDetailComponent.kt
- PresentationModule.kt
- Injector.kt
- StepDetailViewStateFactory.kt
- StepDetailStateMachine.kt
- StepDetailViewAction.kt
- StepDetailViewIntent.kt
- StepDetailViewResult.kt
- StepDetailViewState.kt
- StepDetailActionProcessor.kt
- StepDetailIntentProcessor.kt
- Alias.kt
- StepDetailViewModel.kt
- StepDetailViewStateReducer.kt
- StepDetailFragment.kt
- fragment_step_detail.xml
- strings.xml
- AndroidManifest.xml
- .gitignore
- build.gradle.kts
- VideoPlayer.kt
- VideoPlayerComponent.kt
- VideoPlayerState.kt
- video_player.xml
- dimens.xml
- AndroidManifest.xml
- .gitignore
- build.gradle.kts
- gradle-wrapper.jar
- gradle-wrapper.properties
- RecipeRemote.kt
- EntityMapper.kt
- IngredientEntityMapper.kt
- RecipeEntityMapper.kt
- StepEntityMapper.kt
- IngredientEntity.kt
- RecipeEntity.kt
- StepEntity.kt
- RecipeRepositoryImpl.kt
- DummyData.kt
- FakeRecipeRemoteImpl.kt
- IngredientEntityMapperTest.kt
- RecipeEntityMapperTest.kt
- StepEntityMapperTest.kt
- RecipeRepositoryImplTest.kt
- .gitignore
- build.gradle.kts
- NoParamsException.kt
- PostExecutionThread.kt
- Ingredient.kt
- Recipe.kt
- Step.kt
- RecipeRepository.kt
- FlowUseCase.kt
- FetchRecipes.kt
- DummyData.kt
- TestPostExecutionThread.kt
- FakeRecipeRepository.kt
- FakeUseCases.kt
- FlowUseCaseTest.kt
- FetchRecipesTest.kt
- .gitignore
- build.gradle.kts
- RecipeRemoteImpl.kt
- RemoteModelMapper.kt
- IngredientRemoteMapper.kt
- RecipeRemoteMapper.kt
- StepRemoteMapper.kt
- IngredientRemoteModel.kt
- RecipeRemoteModel.kt
- StepRemoteModel.kt
- ApiService.kt
- ApiServiceFactory.kt
- RecipeRemoteTest.kt
- IngredientRemoteMapperTest.kt
- RecipeRemoteMapperTest.kt
- StepRemoteMapperTest.kt
- DummyData.kt
- Helpers.kt
- RecipeRequestDispatcher.kt
- recipe_response.json
- .gitignore
- build.gradle.kts
- SingleEvent.kt
- ViewEvent.kt
- ModelMapper.kt
- ActionProcessor.kt
- IntentProcessor.kt
- MVIView.kt
- StateMachine.kt
- ViewAction.kt
- ViewIntent.kt
- ViewResult.kt
- ViewState.kt
- ViewStateReducer.kt
- SingleEventTest.kt
- .gitignore
- build.gradle.kts
- ThreadedViewModel.kt
- AndroidManifest.xml
- .gitignore
- build.gradle.kts
- consumer-rules.pro
- proguard-rules.pro
- .gitignore
- build.gradle.kts
- gradle.properties
- gradlew
- gradlew.bat
- LICENSE
- README.md
- settings.gradle.kts
# Installation Guide
1. Get the code
git clone https://github.com/Ezike/Baking-App-Kotlin
Downloads the entire project code from GitHub to your computer.
cd Baking-App-Kotlin
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)
