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-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: 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
Instant
usage inNavigationEvent
with elapsed system milliseconds - Expose the kotlinx.serialization and com.chrynan.parcelable libraries as transitive dependencies
- Fixed incorrect usage of default
Parcelable
object instead ofparcelable
parameter inrememberSavableNavigator
functions - Fixed
NavigationEvent
serializer by manually implementing the serializers using a delegate to a snapshot wrapper class - Created
DestinationAndContext
wrapper class and updated theNavigationContainer
composable function to use that class, removing all otherNavigationContainer
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:
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-compose
module - Added thorough tests
- Made
Navigator
serializable so that it can be saved between configuration changes and transferred between different components - Renamed
NavContainer
toNavigationContainer
- 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
refreshVersions
library
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-compose
module - Added
NavContainer
withModifier
parameter to the common source set of thenavigation-compose
module
Full Changelog: 0.5.0...0.6.0
Release 0.5.0 (7)
- New API for creating a
Navigator
and 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
ViewModel
class 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)