Skip to content

Latest commit

 

History

History
91 lines (73 loc) · 4.23 KB

README.md

File metadata and controls

91 lines (73 loc) · 4.23 KB

eungabi_readme_2

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

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