/voyager

🛸 A pragmatic navigation library for Jetpack Compose

Primary LanguageKotlinMIT LicenseMIT

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 trek 🖖

Documentation

See the project website for documentation and APIs.

Features

Roadmap

  • iOS support
  • Multiplatform sample
  • Migrate from Groovy to KTS

Samples

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