Releases: chRyNaN/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 #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-coremodule
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: 0.9.0...0.10.0
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
Instantusage inNavigationEventwith elapsed system milliseconds - Expose the kotlinx.serialization and com.chrynan.parcelable libraries as transitive dependencies
- Fixed incorrect usage of default
Parcelableobject instead ofparcelableparameter inrememberSavableNavigatorfunctions - Fixed
NavigationEventserializer by manually implementing the serializers using a delegate to a snapshot wrapper class - Created
DestinationAndContextwrapper class and updated theNavigationContainercomposable function to use that class, removing all otherNavigationContainerfunctions
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:
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
Fixed Issues
Full Changelog: 0.8.0...0.9.0
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-composemodule - Added thorough tests
- Made
Navigatorserializable so that it can be saved between configuration changes and transferred between different components - Renamed
NavContainertoNavigationContainer - Added more detailed documentation to the README file
New Contributors
Full Changelog: 0.6.0...0.8.0
Release 0.7.0 (9)
- Resolved issue #2
- Updated dependencies
- Migrated to using the
refreshVersionslibrary
Full Changelog: 0.6.0...0.7.0
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-composemodule - Added
NavContainerwithModifierparameter to the common source set of thenavigation-composemodule
Full Changelog: 0.5.0...0.6.0
Release 0.5.0 (7)
- New API for creating a
Navigatorand rendering the current content.
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
ViewModelclass and removedSaver
Full Changelog: 0.4.0...0.5.0
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: 0.3.0...0.4.0
Release 0.3.0 (5)
Release 0.3.0 (5)
Release 0.2.2 (4)
Release 0.2.2 (4)
Release 0.2.0 (2)
Release 0.2.0 (2)