Skip to content

Syer10/voyager

 
 

Repository files navigation

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.

dependencies {
    // Navigator, supports Android, Desktop, iOS and MacOS
    implementation("ca.gosyer:voyager-navigator:<version>")

    // TabNavigator, supports Android, Desktop, iOS and MacOS
    implementation("ca.gosyer:voyager-tab-navigator:<version>")

    // BottomSheetNavigator, supports Android, Desktop, iOS and MacOS
    implementation("ca.gosyer:voyager-bottom-sheet-navigator:<version>")

    // Transitions, supports Android, Desktop, iOS and MacOS
    implementation("ca.gosyer:voyager-transitions:<version>")

    // Android ViewModel integration
    implementation("ca.gosyer:voyager-androidx:<version>")

    // Hilt integration
    implementation("ca.gosyer:voyager-hilt:<version>")

    // Kodein integration
    implementation("ca.gosyer:voyager-kodein:<version>")

    // Koin integration
    implementation("ca.gosyer:voyager-koin:<version>")

    // Kotlin Routing integration
    implementation("ca.gosyer:voyager-routing:<version>")

    // Kotlin Routing integration with typesafe urls
    implementation("ca.gosyer:voyager-routing-typesafe:<version>")

    // RxJava integration, supports Android and Desktop
    implementation("ca.gosyer:voyager-rxjava:<version>")

    // LiveData integration
    implementation("ca.gosyer:voyager-livedata:<version>")
}

Features

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

About

🛸 A pragmatic navigation library for Jetpack Compose

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Kotlin 99.0%
  • Shell 1.0%