A comprehensive guide to deciding where initial data-loading logic should live in Jetpack Compose apps. Covers four patterns: LaunchedEffect(Unit) as a code smell (Pattern 0), init{} in ViewModel (Pattern 1), explicit action dispatch with sealed interfaces (Pattern 2), and reactive .onStart+stateIn pipelines (Patterns 3 and 4).
Sort: