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 trek 🖖
See the project website for documentation and APIs.
- Supported platforms: Android, Desktop
- 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
- iOS support
- Multiplatform sample
- Migrate from Groovy to KTS
Stack API | Android ViewModel | ScreenModel | Basic nav. |
---|---|---|---|
BottomSheet nav. | Tab nav. | Multi-module nav. | Nested nav. |
---|---|---|---|