

A Compose Multiplatform Navigation library which supports Platform Native Features like Predictive Back Gesture(Android), Swipe-Back Gesture(iOS), Shared Element Transition(Common).
This library adopts a screen transition pattern based on NavHost, similar to the Jetpack Navigation library. A key difference is that it allows for customization of the Predictive Back animation separately.
Check out the project website for detailed guides.
Supported targets
android
ios
web (IR and Wasm)
desktop (jvm and )
Installation
[versions]
eungabi = "<version>"
[libraries]
eungabi = { module = "io.github.easternkite:eungabi", version.ref = "eungabi" }
Quick Start
You can create Navigation graph the most simplest way.
See Quick Start section of our project website.
val controller = rememberEunGabiController()
EunGabiNavHost(
modifier = Modifier,
controller = controller,
startDestination = "routeA",
) {
composable("routeA") {
MainComponent("routeA") {
controller.navigate("routeB")
}
}
composable("routeB") {
DetailsComponent(
"routeB",
onNavigateBack = controller::navigateUp
) {
egController.navigate("routeC")
}
}
}
Passing Arguments
Eungabi also provides a way to pass arguments during navigation.
See Passing Arguments section of our project website.
Transition with animations
You can simply customize transition animations during animation.
See Transition with Animations section of our project website.
Predictive Back Animation
Eungabi now supports The Coolest customizable Predictive Back Animation Feature on both Android and iOS!
See Predictive Back Animation section of our project website for detailed guides.
| Android | iOS |
|---|
 |  |
License
Copyright 2024-2025 easternkite
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this except compliance the License.
You may obtain a copy of the License at
http:
Unless applicable law agreed to writing, software
distributed under the License distributed an BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express implied.
See the License the specific language governing permissions
limitations under the License.