|
3 | 3 | <p align="center"> |
4 | 4 | <a href='https://developer.android.com'><img src='http://img.shields.io/badge/platform-android-green.svg'/></a> |
5 | 5 | <a href="https://kotlinlang.org/docs/whatsnew1920.html"><img src = "https://shields.io/badge/kotlin-2.0.20-blue" /></a> |
6 | | - <a href="https://developer.android.com/jetpack/compose/bom"><img src = "https://img.shields.io/badge/jetpack%20compose-2024.08.00-brightgreen" /></a> |
| 6 | + <a href="https://developer.android.com/jetpack/compose/bom"><img src = "https://img.shields.io/badge/jetpack%20compose-2024.09.00-brightgreen" /></a> |
7 | 7 | <a href="https://opensource.org/licenses/Apache-2.0"><img src="https://img.shields.io/badge/license-Apache%202.0-blue.svg"/></a> |
8 | 8 | </p> |
9 | 9 |
|
|
16 | 16 | ## Tech Stack |
17 | 17 |
|
18 | 18 | - [Jetpack](https://developer.android.com/jetpack) |
19 | | - - Compose - Define your UI programmatically with composable functions that describe its shape |
20 | | - and data dependencies. |
21 | | - - Hilt - Extend the functionality of Dagger Hilt to enable dependency injection. |
22 | | - - Lifecycle - Build lifecycle-aware components that can adjust behavior based on the current |
23 | | - lifecycle state |
24 | | - - Room - Create, store, and manage persistent data backed by a SQLite database. |
25 | | - - ViewModel - Store and manage UI-related data in a lifecycle conscious. |
26 | | - - App Startup - initialize components at app startup. |
| 19 | + - Compose - Define your UI programmatically with composable functions that describe its shape |
| 20 | + and data dependencies. |
| 21 | + - Hilt - Extend the functionality of Dagger Hilt to enable dependency injection. |
| 22 | + - Lifecycle - Build lifecycle-aware components that can adjust behavior based on the current |
| 23 | + lifecycle state |
| 24 | + - Room - Create, store, and manage persistent data backed by a SQLite database. |
| 25 | + - ViewModel - Store and manage UI-related data in a lifecycle conscious. |
| 26 | + - App Startup - initialize components at app startup. |
27 | 27 | - Clean Architecture (multi module) |
28 | 28 | - MVVM pattern |
29 | 29 | - Kotlin |
|
65 | 65 | └── setting |
66 | 66 | ``` |
67 | 67 |
|
68 | | -## Module Graphs |
| 68 | +The file structure is similar to Now in Android, but to follow Clean Architecture, the domain layer |
| 69 | +does not reference the data layer. |
| 70 | + |
| 71 | +## Nested NavHosts |
| 72 | + |
| 73 | +```mermaid |
| 74 | +graph TD |
| 75 | + A[Main NavHost] --> B[BottomBar] |
| 76 | + A --> C[Detail] |
| 77 | + B --> D[Bottom NavHost] |
| 78 | + D --> E[List] |
| 79 | + D --> F[Favorite] |
| 80 | + D --> G[Setting] |
| 81 | +``` |
| 82 | + |
| 83 | +Even though using nested NavHosts makes things more complex, this approach was chosen to achieve screen transition animations similar to those between Activities. |
| 84 | + |
| 85 | +(One NavHost needs to manage how to hide the bottom navigation and apply animations during screen transitions.) |
| 86 | + |
| 87 | +# Module Graphs |
| 88 | + |
69 | 89 |  |
| 90 | + |
0 commit comments