- Use Jetpack Compose for new UI — build composable functions with `@Composable`, manage state with `remember` and `mutableStateOf()`.
- Use `ViewModel` with `StateFlow` or `LiveData` for UI state — collect flows in composables with `collectAsStateWithLifecycle()`.
- Follow single-Activity architecture with Jetpack Navigation — use `NavHost` and `composable()` routes, not multiple Activities.
- Use Hilt for dependency injection — annotate Application with `@HiltAndroidApp`, ViewModels with `@HiltViewModel`, and inject with `@Inject`.
- Use `StateFlow` and `collectAsStateWithLifecycle()` to connect ViewModel state to Compose UI.
- Use Hilt for dependency injection. Annotate ViewModels with `@HiltViewModel`.
- Use Navigation Compose with type-safe routes for screen navigation.
- Use Room for local database with Flow-based queries for reactive data.
- Use Retrofit for network requests. Define API interfaces with suspend functions.