This repo is a major rework/refactor of Dicoding Tourism App because it's deprecated and very outdated.
Reworked to be inline with current Modern Android Development (MAD).
- Offline-first app, with recommended approach by Google (utilizing Single Source of Truth of data)
- UI built with Views, using Material Design 3 by Google
- With Single Activity Approach, as recommended by Google
- With Clean Architecture and recommended app architecture by Google, and Dependency Injection (Koin)
- With Reactive Programming, utilizing Kotlin Flow and Coroutines
- Dynamic Feature Implementation
DicodingApp_Tourism_Rework_Demo_Compressed.mp4
- Inline with Modern Android Development (MAD) right now
- Not violating Clean Architecture principles, and also adhere to recommended App Architecture by Google
- With Reactive Programming Approach (UI State, StateFlow, Kotlin Flow, Kotlin Coroutines, etc)
- Utilizing Jetpack Navigation Component for navigation between feature and dynamic features modules (Implicit Deeplink)
- Better Dynamic Feature (On Demand Modules) implementation
- Offline-first implementation fully working
- No Internet Connection Check implemented
- With Single Activity Approach
- UI Using Material Design 3 Completely
- Using Gradle Version Catalog for managing dependencies
- Fixed all deprecated and error in the project
- Search feature from SSOT
- Build Gradle Convention Plugins
- https://developer.android.com/topic/modularization
- https://developer.android.com/topic/architecture#addendum
- https://developer.android.com/guide/navigation/integrations/multi-module
- https://developer.android.com/guide/navigation/integrations/feature-modules
- https://developer.android.com/topic/architecture/data-layer/offline-first
- https://github.com/android/nowinandroid
- https://developer.android.com/topic/architecture/ui-layer
- https://developer.android.com/reference/kotlin/androidx/room/Upsert
- https://developer.android.com/guide/playcore/feature-delivery
- https://m3.material.io
- and more ... (will be updated soon)