Our sample uses Jetpack Navigation. It brought some strong dependencies through whole project, such as
HomeFragment.kt
...
val navController = viewBinding.bottomNavigation.setupWithNavController(
navGraphIds = navGraphIds,
fragmentManager = childFragmentManager,
containerId = R.id.nav_host_container,
intent = requireActivity().intent
)
or codegen into
CharactersListFragment.kt
...
is CharactersListViewEvent.OpenCharacterDetail ->
findNavController().navigate(
CharactersListFragmentDirections
.actionCharactersListFragmentToCharacterDetailFragment(viewEvent.id))
It's not good decision without scalable points for projects "under Forma". And we think that will be good have some abstraction navigation layer, which will protect project structure, architecture from navigation tools dependencies, especially codegen from Navigation component.
That's why need to create own navigation system, which will be use by app presentation layer. May be after, we will think about additional navigation targets for Forma.
See here, some mind ideas how it may be look

Our sample uses Jetpack Navigation. It brought some strong dependencies through whole project, such as
or codegen into
It's not good decision without scalable points for projects "under Forma". And we think that will be good have some abstraction navigation layer, which will protect project structure, architecture from navigation tools dependencies, especially codegen from Navigation component.
That's why need to create own navigation system, which will be use by app presentation layer. May be after, we will think about additional navigation targets for Forma.

See here, some mind ideas how it may be look