Recent Releases of navigation

navigation - Release 0.10.0 (12)

[!Warning]
This release contains breaking API changes.

What's Changed

  • Fixed Back Navigation Issues + Misc Updates by @chRyNaN in https://github.com/chRyNaN/navigation/pull/12
  • Changed the Navigation API
  • Added binary compatibility plugin
  • Updated Compose Multiplatform to version 1.5.0-beta01
  • Updated Kotlinx Coroutines to version 1.7.3
  • Added more native targets for the navigation-core module

API Changes

Fixing the back navigation issues introduced a new back operation. This change required renaming the goBack function and introducing another "goBack" function but for context changes. As these are essentially stack operations, I decided to rename the functions along the lines with expected stack functions, and change the forward navigation function names as well. The following chart breaks down the changes:

| Old Name | New Name | | ----------------------- | -------------------------- | | goTo | push(destination) | | changeContext | push(context) | | goBack | popDestination | | goBack | popContext |

There still exists goTo and changeContext functions, but those are deprecated. This is done to ease the transition to the new API.

Also, the Kotlin Binary Compatibility Plugin was added so that it is known when future breaking changes occur and makes it easier to limit any breaking changes. This will be helpful as this API becomes more stable and reaches a 1.0.0 release.

Full Changelog: https://github.com/chRyNaN/navigation/compare/0.9.0...0.10.0

- Kotlin
Published by chRyNaN almost 3 years ago

navigation - Release 0.9.0

Warning: This release contains Breaking API Changes.

What's Changed

  • Updated Compose Multiplatform dependency to version 1.4.1
  • Removed kotlinx.datetime dependency and replaced Instant usage in NavigationEvent with elapsed system milliseconds
  • Expose the kotlinx.serialization and com.chrynan.parcelable libraries as transitive dependencies
  • Fixed incorrect usage of default Parcelable object instead of parcelable parameter in rememberSavableNavigator functions
  • Fixed NavigationEvent serializer by manually implementing the serializers using a delegate to a snapshot wrapper class
  • Created DestinationAndContext wrapper class and updated the NavigationContainer composable function to use that class, removing all other NavigationContainer functions

Breaking Changes

Before there were two NavigationContainer composable functions: one that had a content closure parameter that received a single NavigationDestination value, and one that had a content closure parameter that received both NavigationDestination and NavigationContext values. This caused confusion and required explicitly declaring the parameters in the closure so that the type system knew which function was being used.

Now, there is only a single NavigationContainer composable function that has a content closure parameter which takes a single DestinationAndContext type:

kotlin NavigationContainer(navigator) { (destination, context) -> }

As seen in the above example, even though there is only one DestinationAndContext type, we can make use of destructuring declarations to explicitly define the values as different variables.

Merged PRs

  • Address Issue #8 + Misc Updates by @chRyNaN in https://github.com/chRyNaN/navigation/pull/10
  • Fixed Serialization Issue #9 by @chRyNaN in https://github.com/chRyNaN/navigation/pull/11

Fixed Issues

  • #8
  • #9

Full Changelog: https://github.com/chRyNaN/navigation/compare/0.8.0...0.9.0

- Kotlin
Published by chRyNaN almost 3 years ago

navigation - Release 0.8.0

Note: This release has breaking API changes.

What's Changed

  • Simplified navigation API
  • Minimum Android version lowered to 21
  • Updated Kotlin to version 1.8.20
  • Updated Compose Multiplatform to version 1.4.0
  • Updated other dependencies
  • Added iOS target for the navigation-compose module
  • Added thorough tests
  • Made Navigator serializable so that it can be saved between configuration changes and transferred between different components
  • Renamed NavContainer to NavigationContainer
  • Added more detailed documentation to the README file

New Contributors

  • @codlab made their first contribution in https://github.com/chRyNaN/navigation/pull/1

Full Changelog: https://github.com/chRyNaN/navigation/compare/0.6.0...0.8.0

- Kotlin
Published by chRyNaN about 3 years ago

navigation - Release 0.7.0 (9)

  • Resolved issue https://github.com/chRyNaN/navigation/issues/2
  • Updated dependencies
  • Migrated to using the refreshVersions library

Full Changelog: https://github.com/chRyNaN/navigation/compare/0.6.0...0.7.0

- Kotlin
Published by chRyNaN over 3 years ago

navigation - Release 0.6.0 (8)

  • Updated Kotlin to version 1.7.10 and compose-jb to version 1.2.0-beta02
  • Added iOS and JS support to the navigation-compose module
  • Added NavContainer with Modifier parameter to the common source set of the navigation-compose module

Full Changelog: https://github.com/chRyNaN/navigation/compare/0.5.0...0.6.0

- Kotlin
Published by chRyNaN over 3 years ago

navigation - Release 0.5.0 (7)

  • New API for creating a Navigator and rendering the current content.

```kotlin val navigator = rememberNavigator("Greeting")

NavContainer(navigator) { _, destination -> when (destination) { "Greeting" -> Text("Hello") "Farewell" -> Text("Good-bye") else -> Text("Unexpected Key: $key") } }

navigator.goTo("Farewell") ```

  • Updated Kotlin to version 1.7.0
  • Updated compose-jb to version 1.2.0-alpha01-dev755
  • Updated other dependencies
  • Added ViewModel class and removed Saver

Full Changelog: https://github.com/chRyNaN/navigation/compare/0.4.0...0.5.0

- Kotlin
Published by chRyNaN almost 4 years ago

navigation - Release 0.4.0 (6)

  • Moved ExperimentalNavigationApi annotation to the navigation-core module
  • Updated NavigationEventHandler and NavigationEventNavigator to not have an upper bounds on NavigationIntent
  • Updated NavigationEvents generic type to not have an upper bound on NavigationIntent
  • Updated NavigationHandler onNavigate parameter name
  • Created StackNavigator interface and removed ComposeStackNavigator
  • Renamed NavStackDuplicateContentStrategy to StackDuplicateContentStrategy
  • Created StackNavigationHandler
  • Made NavigationEvent constructors internal
  • Added support for Compose Saver for key properties
  • Created NavigationContext interface
  • Converted ComposeScopeNavigator to ComposeContextNavigator
  • Added support for iOS Simulator Arm64 to the navigation-core module
  • Updated Kotlin to 1.6.10

Full Changelog: https://github.com/chRyNaN/navigation/compare/0.3.0...0.4.0

- Kotlin
Published by chRyNaN about 4 years ago

navigation - Release 0.3.0 (5)

- Kotlin
Published by chRyNaN over 4 years ago

navigation - Release 0.2.2 (4)

- Kotlin
Published by chRyNaN over 4 years ago

navigation - Release 0.2.0 (2)

- Kotlin
Published by chRyNaN over 4 years ago

navigation - Initial release version 0.1.0 (1)

- Kotlin
Published by chRyNaN over 4 years ago