Skip to content

A Compose Multiplatform Navigation Library that supports coolest transition features like predictive back gesture(iOS, Android), Shared Element Transition(All). It supports Mobile(Android, iOS), Desktop(Jvm, MacOS), Web(Wasm, IR).

License

Notifications You must be signed in to change notification settings

easternkite/eungabi

Repository files navigation

eungabi_readme_2

GitHub branch check runs Dynamic TOML Badge Dynamic TOML Badge Maven Central Version

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.

Supported targets

  • android
  • ios
  • web (IR and Wasm)
  • desktop (jvm and macOS)

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 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.