Skip to content

Latest commit

 

History

History
90 lines (76 loc) · 3.1 KB

README.md

File metadata and controls

90 lines (76 loc) · 3.1 KB

🧪 Breaking Bad - Jetpack Compose

Tech Stack

  • 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.
  • Clean Architecture (multi module)
  • MVVM pattern
  • Kotlin
    • Coroutines
    • Flows
    • Serialization
  • Type Safety Navigation
  • Material Design 3
  • Single Activity
  • StaggeredVerticalGrid
  • Gradle Version Catalog
  • Retrofit2
  • Coil-Compose
  • Timber
  • Haze
  • SharedElement
  • Kover

Multi Module

├── app
├── core
│   ├── common
│   ├── data
│   ├── database
│   ├── datastore
│   ├── designsystem
│   ├── domain
│   ├── model
│   └── network
└── feature
    ├── bottombar
    ├── detail
    ├── favorite
    ├── list
    ├── main
    └── setting

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

graph TD
    A[Main NavHost] --> B[BottomBar]
    A --> C[Detail]
    B --> D[Bottom NavHost]
    D --> E[List]
    D --> F[Favorite]
    D --> G[Setting]
Loading

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