https://kotlinlang.org logo
#compose
Title
# compose
g

Grigorii Yurkov

10/31/2020, 11:50 AM
Can someone explain me
navigation-compose
advantages over simple
when (screen) {...}
?
Copy code
@Composable
private fun AppContent(
    navigationViewModel: NavigationViewModel,
    postsRepository: PostsRepository,
    interestsRepository: InterestsRepository
) {
    Crossfade(navigationViewModel.currentScreen) { screen ->
        Surface(color = MaterialTheme.colors.background) {
            when (screen) {
                is Screen.Home -> HomeScreen(
                    navigateTo = navigationViewModel::navigateTo,
                    postsRepository = postsRepository
                )
                is Screen.Interests -> InterestsScreen(
                    navigateTo = navigationViewModel::navigateTo,
                    interestsRepository = interestsRepository
                )
                is Screen.Article -> ArticleScreen(
                    postId = screen.postId,
                    postsRepository = postsRepository,
                    onBack = { navigationViewModel.onBack() }
                )
            }
        }
    }
}
(code from JetNews)
a

alorma

10/31/2020, 12:27 PM
Separation of concerns From anywhere you can navigate just by call
navController.navigate()
instead of depend on a viewModel or similars. Also, arguments, and deeplinks
i

Ian Lake

10/31/2020, 2:08 PM