A Compose Multiplatform Navigation library which support 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.
android
ios
web
(IR
andWasm
)desktop
(jvm
andmacOS
)
[versions]
eungabi = "<version>"
[libraries]
eungabi = { module = "io.github.easternkite:eungabi", version.ref = "eungabi" }
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")
}
}
//...
}
Eungabi also provides a way to pass arguments during navigation.
See Passing Arguments section of our project website.
You can simply customize transition animations during animation.
See Transition with Animations section of our project website.
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 |
---|---|
Copyright 2024 easternkite
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.