diff --git a/README.md b/README.md index 4c35c16..8d2858a 100644 --- a/README.md +++ b/README.md @@ -16,14 +16,14 @@ ## Tech Stack - [Jetpack](https://developer.android.com/jetpack) - - Compose - Define your UI programmatically with composable functions that describe its shape - and data dependencies. - - Hilt - Extend the functionality of Dagger Hilt to enable dependency injection. - - Lifecycle - Build lifecycle-aware components that can adjust behavior based on the current - lifecycle state - - Room - Create, store, and manage persistent data backed by a SQLite database. - - ViewModel - Store and manage UI-related data in a lifecycle conscious. - - App Startup - initialize components at app startup. + - Compose - Define your UI programmatically with composable functions that describe its shape + and data dependencies. + - Hilt - Extend the functionality of Dagger Hilt to enable dependency injection. + - Lifecycle - Build lifecycle-aware components that can adjust behavior based on the current + lifecycle state + - Room - Create, store, and manage persistent data backed by a SQLite database. + - ViewModel - Store and manage UI-related data in a lifecycle conscious. + - App Startup - initialize components at app startup. - Clean Architecture (multi module) - MVVM pattern - Kotlin @@ -65,5 +65,26 @@    └── setting ``` -## Module Graphs +The file structure is similar to Now in Android, but to follow Clean Architecture, the domain layer +does not reference the data layer. + +## Nested NavHosts + +```mermaid +graph TD + A[Main NavHost] --> B[BottomBar] + A --> C[Detail] + B --> D[Bottom NavHost] + D --> E[List] + D --> F[Favorite] + D --> G[Setting] +``` + +Even though using nested NavHosts makes things more complex, this approach was chosen to achieve screen transition animations similar to those between Activities. + +(One NavHost needs to manage how to hide the bottom navigation and apply animations during screen transitions.) + +# Module Graphs + ![](project.dot.png) +