Maven metadata URL Android API kotlin ktlint License MIT
Voyager: Compose on Warp Speed
A multiplatform navigation library built for, and seamlessly integrated with, Jetpack Compose.
Create scalable Single-Activity apps powered by a pragmatic API:
class HomeScreenModel : ScreenModel { // ... } class HomeScreen : Screen { @Composable override fun Content() { val screenModel = rememberScreenModel<HomeScreenModel>() // ... } } class SingleActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { Navigator(HomeScreen()) } } }
Turn on the Warp Drive and enjoy the voyage π
See the project website for documentation and APIs.
- Supported platforms: Android, iOS, Desktop, Web.
- Linear navigation
- BottomSheet navigation
- Tab navigation like Youtube app
- Nested navigation (multiple stacks, parent navigation)
- ScreenModel (a.k.a ViewModel) integrated with Koin, Kodein, Hilt, Coroutines, RxJava, LiveData
- Android ViewModel integration (with Hilt support)
- Type-safe multi-module navigation
- State-aware Stack API
- Built-in transitions
- State restoration after Activity recreation
- Lifecycle callbacks
- Back press handling
- Deep linking support
| Stack API | Android ViewModel | ScreenModel | Basic nav. |
|---|---|---|---|
| navigation-stack | navigation-android-viewmodel | navigation-screenmodel | navigation-basic |
| BottomSheet nav. | Tab nav. | Multi-module nav. | Nested nav. |
|---|---|---|---|
| navigation-bottom-sheet | navigation-tab | navigation-multi-module | navigation-nested |