Skip to content

v0.14.0

Choose a tag to compare

@bsudekum bsudekum released this 22 Feb 19:17
· 4418 commits to master since this release

Changes since v0.13.1:

Breaking Changes

  • Removed the dependency on AWSPolly. Voice announcements are now coming directly from Mapbox and for free for all developers. Because of this, PollyVoiceController has been removed. #617
  • MapboxDirections.swift version 0.17.x is now required. #1085
  • Removed the key RouteControllerNotificationUserInfoKey.estimatedTimeUntilManeuverKey from .routeControllerProgressDidChange. Please use durationRemaining instead which can be found on the RouteProgress. #1126
  • Renamed notification names associated with RouteController in Objective-C code. #1122
  • The user info keys of RouteController-related notifications have been renamed and are now members of the RouteControllerNotificationUserInfoKey struct in Swift and the MBRouteControllerNotificationUserInfoKey extensible enumeration in Objective-C. #1122
Here is reference for the new notification names:
Swift Objective-C
Old New Old New
Notification.Name.navigationSettingsDidChange Notification.Name.navigationSettingsDidChange MBNavigationSettingsDidChange MBNavigationSettingsDidChangeNotification
Notification.Name.routeControllerProgressDidChange Notification.Name.routeControllerProgressDidChange MBRouteControllerNotificationProgressDidChange MBRouteControllerProgressDidChangeNotification
Notification.Name.routeControllerDidPassSpokenInstructionPoint Notification.Name.routeControllerDidPassSpokenInstructionPoint MBRouteControllerDidPassSpokenInstructionPoint MBRouteControllerDidPassSpokenInstructionPointNotification
Notification.Name.routeControllerWillReroute Notification.Name.routeControllerWillReroute MBRouteControllerWillReroute MBRouteControllerWillRerouteNotification
Notification.Name.routeControllerDidReroute Notification.Name.routeControllerDidReroute MBRouteControllerDidReroute MBRouteControllerDidRerouteNotification
Notification.Name.routeControllerDidFailToReroute Notification.Name.routeControllerDidFailToReroute MBRouteControllerDidFailToReroute MBRouteControllerDidFailToRerouteNotification
RouteControllerProgressDidChangeNotificationProgressKey RouteControllerNotificationUserInfoKey.routeProgressKey MBRouteControllerProgressDidChangeNotificationProgressKey MBRouteControllerRouteProgressKey
RouteControllerProgressDidChangeNotificationLocationKey RouteControllerNotificationUserInfoKey.locationKey MBRouteControllerProgressDidChangeNotificationLocationKey MBRouteControllerLocationKey
RouteControllerProgressDidChangeNotificationSecondsRemainingOnStepKey 🚮 (removed) MBRouteControllerProgressDidChangeNotificationSecondsRemainingOnStepKey 🚮 (removed)
RouteControllerNotificationLocationKey RouteControllerNotificationUserInfoKey.locationKey MBRouteControllerNotificationLocationKey MBRouteControllerLocationKey
RouteControllerNotificationRouteKey 🚮 (unused) MBRouteControllerNotificationRouteKey 🚮 (unused)
RouteControllerNotificationErrorKey RouteControllerNotificationUserInfoKey.routingErrorKey MBRouteControllerNotificationErrorKey MBRouteControllerRoutingErrorKey
RouteControllerDidFindFasterRouteKey RouteControllerNotificationUserInfoKey.isOpportunisticKey MBRouteControllerDidFindFasterRouteKey MBRouteControllerIsOpportunisticKey
RouteControllerDidPassSpokenInstructionPointRouteProgressKey RouteControllerNotificationUserInfoKey.routeProgressKey MBRouteControllerDidPassSpokenInstructionPointRouteProgressKey MBRouteControllerRouteProgressKey

Core Navigation

  • Location updates sent via .routeControllerProgressDidChange are now always sent as long as the location is qualified. #1126
  • Exposes setOverheadCameraView(from:along:for:) which is useful for fitting the camera to an overhead view for the remaining route coordinates.
  • Changed the heuristics needed for a the users location to unsnap from the route line. #1110
  • Changes routeController(:didDiscardLocation:) to routeController(:shouldDiscardLocation:). Now if implemented, developers can choose to keep a location when RouteController deems a location unqualified. #1095

User Interface

  • Added a NavigationMapView.localizeLabels() method that should be called within MGLMapViewDelegate.mapView(_:didFinishLoading:) for standalone NavigationMapViews to ensure that map labels are in the correct language. #1111
  • The / delimiter is longer shown when a shield is shown on either side of the delimiter. This also removes the dependency SDWebImage. #1046
  • Exposes constants used for styling the route line. #1124
  • Exposes update(for:) on InstructionBannerView. This is helpful for developers creating a custom user interface. #1085

Voice Guidance

  • Exposes RouteVoiceController.speak(_:) which would allow custom subclass of MapboxVoiceController to override this method and pass a modified SpokenInstruction to our superclass implementation.

Documentation is available online or within Xcode.