Releases: stadiamaps/ferrostar
0.21.0
What's Changed
This release adds a route overview for Android, after some updates to the MapLibre Compose wrapper enabled bounding box cameras. This comes with a new button in the default UI which is shown automatically whenever the camera is following the user during navigation.
This release also includes a breaking change to the startNavigation
method of FerrostarCore
on Android. This previously returned a view model, but after discussing with major users, we determined that this was not a good approach. Every app, except for those that consist only of a navigation view presented "modally" for a single purpose, will have its own view model. Since view models are not composable, we determined that this method should no longer return anything.
This is a source breaking change, so the compiler will let you know that your code is broken. We will continue to ship a DefaultViewModel
to enable the super simple "modal" navigation use case without extra code, but you need to construct it yourself. We have also updated the demo app to reflect best practices, continuing to use the AppModule
object as a stand-in for dependency injection, and modeling things as they would be structured in most apps, without locking the demo app into a specific DI framework. In short, everything you need is exposed by the FerrostarCore
UI StateFlow
, and you can build your view model around this.
We have also bumped the minimum iOS version to 16, which is a breaking change. iOS 16 contains significant improvements to SwiftUI, which we will be incorporating over time.
Added
- Android route overview by @ianthetechie in #345
Fixed
- Fix issue with expanded full screen layout for instructions by @ianthetechie in #350
- Fix state flow of mute UI updates on Android by @ianthetechie in #351
- Fix initializing of traversed variable in distance_along by @almontasser in #353
New Contributors
- @almontasser made their first contribution in #353
Full Changelog: 0.20.1...0.21.0
0.20.1
No breaking changes; just a bunch of small improvements and dependency updates :)
What's Changed
- Bump androidx.compose.ui:ui-test-junit4 from 1.7.4 to 1.7.5 in /android by @dependabot in #338
- Bump thiserror from 1.0.64 to 1.0.66 in /common by @dependabot in #335
- Bump serde_json from 1.0.128 to 1.0.132 in /common by @dependabot in #334
- Bump insta from 1.40.0 to 1.41.1 in /common by @dependabot in #332
- Bump agp from 8.7.1 to 8.7.2 in /android by @dependabot in #336
- Bump uniffi from 0.28.1 to 0.28.2 in /common by @dependabot in #333
- Bump androidx-lifecycle from 2.8.6 to 2.8.7 in /android by @dependabot in #337
- Bump uuid from 1.10.0 to 1.11.0 in /common by @dependabot in #331
- Fix button inconsistencies by @ianthetechie in #342
- Catch up on docs by @ianthetechie in #341
- Bump com.vanniktech.maven.publish from 0.29.0 to 0.30.0 in /android by @dependabot in #340
- Open up synthesizer property; bump version for a release by @ianthetechie in #349
Full Changelog: 0.20.0...0.20.1
0.20.0
Another epic release! The most exciting feature is support for arbitrary annotations on iOS. Annotations are JSON data that "annotates" each line segment (coordinate pair) for the entire route. We've included data models for the ones included in Valhalla, most notably speed limits, but you can add your own arbitrary fields too!
Breaking changes
- We made some changes to the navigation views on iOS; if you had a heavily customized view, you may get some compilation errors which should guide you to a fix.
- Users of the simulated location provider may need to add a third argument to configure jitter. (Add a random jitter of 10 meters to make your GPS look a bit tipsy 🙃)
- The interface to the instructions view on Android has changed rather significantly to include a view of upcoming steps.
What's Changed
- Version bumps for android by @Archdoog in #311
- Upgrade maplibre compose by @ianthetechie (fixes some long-standing camera issues) in #314
- Apple Annotation parsing by @Archdoog in #287
- Add IOS mute button by @MarekSabol in #296
- Progress view: show the current road name by @ianthetechie in #307
- Fixes for SimulatedLocationProvider by @ahmedre in #327
- Update to georust/geo v0.29.0 by @michaelkirk in #328
- More realistic GPS simulation with consistent or random lateral offset by @engali94 in #323
- Upcoming maneuver list for Android by @ianthetechie in #326
New Contributors
- @MarekSabol made their first contribution in #296
- @engali94 made their first contribution in #323
Full Changelog: 0.19.0...0.20.0
0.19.0
What's Changed
- Add Prettier by @haysmike in #304
- Autocomplete search for Android Demo App by @ianthetechie in #295
- Support for visual sub-maneuvers by @ahmedre in #303
- Remove the Gradle Secrets plugin by @ianthetechie in #305
- Add a skip.signing parameter for local publishing by @ahmedre in #306
Full Changelog: 0.18.0...0.19.0
0.18.0
What's Changed
- Initial draft of adding TypeScript types by @CatMe0w in #181
- Bump agp from 8.6.1 to 8.7.0 in /android by @dependabot in #281
- Revamp contributing guide; freshen some other stale docs by @ianthetechie in #291
- Modernize Android CI by @ianthetechie in #297
- Fix proguard/r8 rules for Android by @ahmedre in #300
New Contributors
Full Changelog: 0.17.0...0.18.0
0.17.0
What's Changed
- [ios] pull down InstructionView handle to show remaining steps by @michaelkirk in #276
- Bump thiserror from 1.0.63 to 1.0.64 in /common by @dependabot in #279
- Bump rstest from 0.22.0 to 0.23.0 in /common by @dependabot in #280
- Bump net.java.dev.jna:jna from 5.14.0 to 5.15.0 in /android by @dependabot in #282
- Bump kotlinx-coroutines from 1.8.1 to 1.9.0 in /android by @dependabot in #283
- Bump github.com/maplibre/swiftui-dsl from 0.0.29 to 0.1.0 by @dependabot in #278
Full Changelog: 0.16.0...0.17.0
0.16.0
What's Changed
Full Changelog: 0.15.0...0.16.0
0.15.0
What's Changed
- Android demo is now more easily configurable with API keys via
local.properties
by @ianthetechie in #267 - Breaking Support support for arbitrary Valhalla options (formerly we only merged costing opts) by @ianthetechie in #268
If you utilized the costingOptions
parameter previously, note that it has been renamed to options
. Swift will automatically force you to change due to its syntax, but Kotlin may silently accept existing source code unless you explicitly named all arguments. Since this release now merges all JSON options into the Valhalla request body, you will need to move your existing argument under the costing options key like so:
- {"bicycle": {"use_roads": 0.2}}
+ {"costing_options": {"bicycle": {"use_roads": 0.2}}}
Full Changelog: 0.14.0...0.15.0
0.14.0
What's Changed
- [ios] name tweak - they are "insets" not "inset" by @michaelkirk in #265
- Fix subtle bug in setSimulatedRoute by @ianthetechie in #266
Full Changelog: 0.13.3...0.14.0
0.13.3
This release fixes an issue with sources and documentation not downloading on Android.
Full Changelog: 0.13.2...0.13.3