Announcements
This page contains important announcements about new iOS features, fixes, or breaking changes shared in advance with our developer community. For the latest changes make sure to check the Release notes page.
Announcing breaking changes: May 15, 2023
Navigation
What is changing?
NavigationSnapshot
is no longer optional.- In
TomTomSDKNavigation
:- We are removing the enum
Navigation.OptionsError
. - We are changing the return type for func
EngineActions.navigationSnapshot()
fromTomTomSDKNavigationEngines.NavigationSnapshot?
toTomTomSDKNavigationEngines.NavigationSnapshot
. - We are changing the return type for func
Navigation.navigationSnapshot()
fromTomTomSDKNavigationEngines.NavigationSnapshot?
toTomTomSDKNavigationEngines.NavigationSnapshot
.
- We are removing the enum
Announcing breaking changes: May 8, 2023
Maps
What is changing?
- In
TomTomSDKAddonNavigationVisualization
:- We are adding the
NavigationVisualizationServiceProtocol.horizonConfiguration
property as a protocol requirement.
- We are adding the
Announcing breaking changes: May 2, 2023
Navigation
What is changing?
- We are removing the
locale
parameter from theOfflineLocationContextProviderEngine
init.Locale
is now taken from the navigation snapshot. - We are removing the
locale
parameter from the experimentalHybrid-
andOnlineLocationContextProviderEngine
init.Locale
is now taken from the navigation snapshot. - In the
TomTomSDKRouteProjectionEngineTileStore
, we are renaming the experimentalOnlineRouteProjectionEngine
toTileStoreRouteProjectionEngine
. - In the
TomTomSDKMapMatchingEngineTileStore
, we are renaming the experimentalOnlineMapMatchingEngine
toTileStoreMapMatchingEngine
. - We are removing from experimental the feature toggles
newNavigationProcessing
,useNavigationTileStore
,useRouteProjectionEngine
andstandaloneRouteTrackingEngine
. These features are now moved to Public Preview.
Routing
What is changing?
- In
TomTomSDKVehicle
:- We are renaming
VehicleParameter
enum’s casevehicleWeight
toweight
. - We are renaming
VehicleUpdateOption
enum’s casevehicleType
totype
, casevehicleWeight
toweight
.
- We are renaming
Announcing breaking changes: April 24, 2023
Navigation
Minor changes
- In
NavigationEngines
:- We are changing the
HorizonOptions
ID parameter from UUID to Int.
- We are changing the
Routing
- In
TomTomSDKNavigation
:NavigationRouteObserver
changes: we are removing thedidActiveRouteChange(routes:reason:)
method. Active route changes are now handled with thedidReplanRoute(replannedRoute:reason:)
.
- We are adding
VehicleError.invalidVehicleParameter
. DefaultVehicleProvider.setVehicle
may now throw aVehicleError.invalidVehicleParameter
error.DefaultVehicleProvider.updateVehicleState
may now throw aVehicleError.invalidVehicleParameter
error.
Announcing breaking changes: April 10, 2023
Navigation
Minor changes
- In the
TomTomSDKAddonNavigationVisualization
module, we are introducing a newLinePatternDisplay
type.
Routing
What is changing?
- The
VehicleProvider.registerVehicleUpdateObserver
now throwsVehicleError.alreadyRegisteredObserver
instead ofVehicleError.invalidVehicleSnapshot
. - We are renaming the
VehicleError.modelIDSupportError(String)
tounsupportedModelID(String)
to align error case naming. - We are adding
VehicleError.alreadyRegisteredObserver
. - We are changing the
onActiveRouteChange
signature. This change affects the following modules:TomTomSDKNavigation
TomTomSDKNavigationUI
GoSDKNavigationVisualizationAddon
Announcing breaking changes: April 3, 2023
General
What is changing?
- In
TomTomSDKVehicle
(preparation for long distance EV route support):Motorized
protocol: We are changing themodelId
property type fromString?
toVehicleModelID?
DefaultVehicleProvider
class: We are adding thevehicleModelID
parameter to thesetVehicle
function.
Maps
Minor changes
- In
TomTomSDKMapDisplay
:- In
LineOptions.PatternAppearance
we are adding a newpatternTexture
property of the typeUIImage
.
- In
Navigation
What is changing?
- In
TomTomSDKNavigation
(Catching up with Android SDK for decision point navigation for a better route proposal):- We are extending
NavigationRouteObserver
with the following:- func
didActiveRouteChange(routes: [Route], reason: RouteReplanningReason)
- func
didChangeRoutes(navigatedRoutes: NavigatedRoutes)
- func
- We are extending
Announcing breaking changes: March 27, 2023
Navigation
- What is changing?
- In
TomTomSDKNavigationEngines
, we are renaming theDataSourceSelectionEngine.process()
function toprocess(navigationSnapshot:)
function.
Announcing breaking changes: March 20, 2023
Maps
Minor changes
- In
TomTomSDKMapDisplay
:- We are changing
RouteOptions.destination
from a computed property to a stored property.
- We are changing
Navigation
What is changing?
- In
TomTomSDKAddonNavigationVisualization
:- The
StyleConfiguration.init(route:routeTraffic:)
constructor has a newdestinationConnectionLine
property of the typeDestinationConnectionLineStyle
.
- The
Minor changes
- In
TomTomSDKAddonNavigationVisualization
:- We are introducing a new
DestinationConnectionLineStyle
type.
- We are introducing a new
Announcing breaking changes: March 13, 2023
Maps
What is changing?
- In
TomTomSDKMapDisplay
we are renaming theLineOptions.PatternAppearance.patternTextureIcon
var topatternTexture
.
Routing
What is changing?
- We are renaming
ContinuousReplanningMode
toBetterProposalAcceptanceMode
. We are adding theUnreachable only
mode and removing theNone
mode.
Navigation
What is changing?
TomTomSDKAddonNavigationVisualization
:- In the
MagnitudeOfDelayStyle
initializer we are renaming thelinePatternTextureIcon
parameter tolinePatternTexture
.
- In the
Minor changes
- We are adding a new field for charging parameters to the
ElectricEngine
data class.
Announcing breaking changes: March 6, 2023
General
What is changing?
- We are removing
TomTomSDKLocationProvider.DefaultCLLocationProvider.init(locationValidationPolicy: TomTomSDKLocationProvider.LocationUpdateValidator? = nil, observationHandler: TomTomSDKCommon.Observable)
from the public API. - We are removing the
rawValue
API from theTomTomSDKCommon
enums (therawValue
is an implementation detail and the user application code depends on it). The following enums are affected:ADRTunnelRestrictionCode
Category
CauseCode
DrivingSide
EffectCode
EngineType
Geometry
RoadClass
RoadSubClass
RoadType
VehicleLoadType
WarningLevel
Maps
What is changing?
- In
TomTomSDKMapDisplay
, we are renaming theOnTrafficIncidentObservable
protocol toTrafficIncidentObserver
. - We are removing the
rawValue
API from theTomTomSDKAddonNavigationVisualization
enums (therawValue
is an implementation detail and the user application code depends on it). The following enum is affected:TrafficIncidentCategory
Search
What is changing?
- We are converting
SearchOptions.resultTypes
from[SearchResultType]
toSet<SearchResultType>
. - We are removing the
rawValue
API fromTomTomSDKStructuredSearch
enums (therawValue
is an implementation detail and the user application code should depends on it). The affected enum is:StructuredSearchError
- We are removing the
StandardCategoryID.unknown
enum case fromTomTomSDKSearch
. - We are moving
SearchError
fromTomTomSDKSearch
toTomTomSDKSearchOffline
. - In
DynamicData
, we are replacingCurrencyCode
with aString
. - In
DynamicData
, we are renamingFuelPricePerUnit
toFuelPrice
. - We are converting
FuelPricePerUnit.volumeUnit
fromString
toUnitVolume
. - In
DynamicData
, we are renamingFuelPrice
toFuelPriceDetails
. - We are wrapping
fuelPriceID
(String) into aDynamicData.FuelPriceResponse
struct . - The geometry of
searchAreas
is changing fromprotocol
toenum
. - In
SearchResult.fuelPriceDataSourceID
we are changing the type fromString
toFuelPriceID
. - In
SearchResult.evConnectorAvailabilityDataSourceID
we are changing the type fromString
toEVChargingAvailabilityID
. - In
SearchResult.parkingDetailID
we are changing the type fromString
toParkingDetailID
. - In
TomTomSDKDynamicData
:- We are removing the
Availability.init(current:perPowerLevel:)
constructor . - We are removing the
EVChargingAvailabilityResponse.init(connectors:availabilityID:)
constructor. - We are removing the
CurrentStatus
struct. - We are removing the
Availability.current
var. - We are removing the
Availability.perPowerLevel
var. - We are renaming the
Connector
struct toConnectorAvailability
. - We are changing the return type in the
Connector.type.Get()
accessor fromSwift.String
toTomTomSDKCommon.ConnectorType
. - We are changing the return type in the
EVChargingAvailabilityOptions.availabilityID.Get()
accessor fromSwift.String
toTomTomSDKDynamicData.EVChargingAvailabilityID
. - We are changing the return type in the
EVChargingAvailabilityResponse.availabilityID.Get()
accessor fromSwift.String
toTomTomSDKDynamicData.EVChargingAvailabilityID
. - We are changing the return type in the
EVChargingAvailabilityResponse.connectors.Get()
accessor from[TomTomSDKDynamicData.Connector]
to[TomTomSDKDynamicData.ConnectorAvailability]
. - We are changing the parameter 0 type in the
Connector.init(type:total:availability:)
constructor fromSwift.String
toTomTomSDKCommon.ConnectorType
. - We are changing the return type in the
Connector.init(type:total:availability:)
constructor fromTomTomSDKDynamicData.Connector
toTomTomSDKDynamicData.ConnectorAvailability
. - We are changing the parameter 0 type in the
EVChargingAvailabilityOptions.init(availabilityID:connectors:minPower:maxPower:)
constructor fromSwift.String
toTomTomSDKDynamicData.EVChargingAvailabilityID
. - We are changing the declared type in the
Connector.type
var fromSwift.String
toTomTomSDKCommon.ConnectorType
. - We are changing the declared type in the
EVChargingAvailabilityOptions.availabilityID
var fromSwift.String
toTomTomSDKDynamicData.EVChargingAvailabilityID
. - We are changing the declared type in the
EVChargingAvailabilityResponse.availabilityID
var fromSwift.String
toTomTomSDKDynamicData.EVChargingAvailabilityID
. - We are changing the declared type in the
EVChargingAvailabilityResponse.connectors
var from[TomTomSDKDynamicData.Connector]
to[TomTomSDKDynamicData.ConnectorAvailability]
.
- We are removing the
Routing
What is changing?
- In
TomTomSDKRoute
:- We are removing the
Route.getLineSegmentNr(preIndex:distanceAlongRoute:)
func. - We are removing the
Route.segmentDistances
var.
- We are removing the
- We are removing the
rawValue
API from theTomTomSDKRoute
enums (the rawValue is an implementation detail and user application code depends on it). The following enums are affected:AnnouncementPoints
InstructionPhoneticsType
InstructionType
RoadShieldReferences
Navigation
What is changing?
- In the
NavigationView.ViewModel
, we marked thelocale
propertyprivate
and removed it fromNavigationTextToSpeechService
. - We are removing the
rawValue
API fromTomTomSDKNavigationEngines
enums (therawValue
is an implementation detail and the user application code depends on it). The affected enums are:ProjectedRouteSection.Boundary
RoutePlanChangeReason
TypeOfRoad
- We are removing the
rawValue
API fromTomTomSDKNavigation
enums. The affected enums are:NavigationProcessingError
NavigationStartError
Announcing breaking changes: February 27, 2023
Search
What is changing?
- We are removing the
geopoliticalView
parameter fromSearchOptions
andReverseGeocoderOptions
. Instead, we are adding it as an ISO 3166-1 alpha-2 country code string toOnlineSearch.init()
andOnlineReverseGeocoder.init()
. - We are moving
entryPoints
fromPOI
toPlace
.
Routing
What is changing?
- We are removing
ConsumptionModel
because it is unused. - In
Range
, we are adding support for different representations for the boundary; we now have aRangeBoundary
interface instead of having a vector of coordinates. It is being implemented by a polygon class. - We are reordering
RangeCalculationOptions
properties to align with Android. - The vehicle type in
RangeCalculationOptions
/RoutePlanningOptions
is now non-optional and defaults toVehicleType.car
. - The engine efficiencies of the consumption model are now represented as
TTUnitRatio
instead ofDouble
so it aligns with Android. RouteReplanningResult
is now returning a list ofRoutes
(active route and alternatives).
Navigation
What is changing?
- We are removing:
- The
message
andmessagePhonetics
parameters fromGuidanceAnnouncement
. - The
Direction description()
func. - The
Direction.direction(from:)
func. - The
Direction.encode(to:)
func. - The
LaneSeparator.description()
func. - The
LaneSeparator.laneSeparator(from:)
func.
- The
- In the
Direction
enum we are removing conformance toDecodable
. - In the
Direction
enum we are removing conformance toEncodable
.
Announcing breaking changes: February 20, 2023
Maps
What is changing?
- In
TomTomSDKMapDisplayDataProviderOffline
module: We are replacingMapDisplayDataProvider.isOfflineTileDataProvider()
method with a computed property. - In
AutocompleteOptions
, we are making the limit non-optional. The default value = 5. - We are changing Struct
MapGestureDisableOption
to an Enum. - We are replacing the following:
- Func
MapGestureDisableOption.doubleTap()
with the.doubleTap
enum case. - Func
MapGestureDisableOption.doubleTapAndPan()
with the.doubleTapAndPan
enum case. - Func
MapGestureDisableOption.longPress()
with the.doubleTapAndPan
enum case. - Func
MapGestureDisableOption.none()
with the.none
enum case. - Func
MapGestureDisableOption.pan()
with the.pan
enum case. - Func
MapGestureDisableOption.pinch()
with the.pinch
enum case. - Func
MapGestureDisableOption.rotate()
with the.rotate
enum case. - Func
MapGestureDisableOption.tap()
with the.tap
enum case. - Func
MapGestureDisableOption.tilt()
with the.tilt
enum case. - Func
MapGestureDisableOption.twoFingerTap()
with the.twoFingerTap
enum case.
- Func
- In Property
TomTomMap.disabledGestures
we are changing the return type fromTomTomSDKMapDisplay.MapGestureDisableOption
to[TomTomSDKMapDisplay.MapGestureDisableOption]
. - We are removing the following:
- Func
CameraActions.addCameraEventObserver(_:)
. - Func
CameraActions.removeCameraEventObserver(_:)
. - Func
MapDelegate.map(_:didChangeCameraProperties:)
. - Func
MapDelegate.map(_:didChangeCameraTrackingMode:)
. - Func
MapDelegate.map(_:didDoubleTapOn:)
. - Func
MapDelegate.map(_:didLongPressOn:)
. - Func
MapDelegate.map(_:didSteadyCamera:)
. - Func
MapDelegate.map(_:didTapOn:)
. - Func
MapDelegate.map(_:didTapOnAnnotation:onCoordinate:)
. - Func
MapDelegate.map(_:didTapOnCurrentLocation:)
. - Func
MapDelegate.map(_:onInteraction:)
. - Func
MapDelegate.mapDidTapOnRecenterButton(_:)
. - Protocol
CameraEventObservable
.
- Func
- In
TomTomSDKMapDisplayDataProviderOffline
:- We are changing the return type in Func
OfflineTileDataProviderFactory.createOfflineTileDataProvider(store:)
fromTomTomSDKMapDisplay.MapDisplayDataProvider
toTomTomSDKMapDisplay.MapDisplayDataProvider?
.
- We are changing the return type in Func
Map delegate will be:
public protocol MapDelegate: AnyObject { /// Method for reporting states for a interaction with map. /// - Parameter map: The instance of the Map where the event occurred. /// - Parameter interaction: The interaction func map(_ map: TomTomMap, onInteraction interaction: MapInteraction)
/// Method for reporting states for a interaction with map. /// - Parameter map: The instance of the Map where the event occurred. /// - Parameter event: The interaction func map(_ map: TomTomMap, onCameraEvent event: CameraEvent) }
Minor changes
- Within
Struct LineOptions
we are adding the following new properties:patternTextureURI
patternTextureIcon
Search
What is changing?
- We are removing
FuelName
and replacing it withFuelType
in theDynamicData
module.
Navigation
Minor changes
- In
TomTomSDKAddonNavigationVisualization
:- We are adding the optional
patternTextureStyles
property to the ConstructorRouteTrafficIncidentStyle.init(lineWidths:outlineWidths:lineStartCapType:lineEndCapType:lineJointType:markerLabelFontURL:markerLabelTextSize:markerLabelOutlineWidth:markerLabelTextOffset:markerLabelTextAnchoring:markerVisibilityByCategory:magnitudeOfDelayStyles:patternTextureStyles:)
.
- We are adding the optional
Announcing breaking changes: February 13, 2023
Maps
What is changing?
- We are replacing
NDSStore.init: keystorePassword
withaccessPermit: .keystorePassword(String)
.
Navigation
What is changing?
- In
TomTomSDKNavigationEngines
we are removing the following:Constructor DestinationArrivalStatus.init(hasArrived:)
.Constructor WaypointArrivalStatus.init(hasArrived:routeStopID:)
.Var DestinationArrivalStatus.hasArrived
.Var WaypointArrivalStatus.hasArrived
.Var WaypointArrivalStatus.routeStopID
.Func LocationContextProviderEngine.detectLocationContext(navigationSnapshot:)
.
- In
TomTomSDKNavigationEngines
we are adding the protocol:Func LocationContextProviderEngine.provideLocationContext(navigationSnapshot:)
.
- In
TomTomSDKNavigationEngines.MapMatchingEngine
:- We are making return type non-optional in
func extrapolateLocation(navigationSnapshot: NavigationSnapshot)
throws >MapMatchingResult?
. - We are removing base type from enum
TomTomSDKNavigation.NavigationProcessingError
. - We are removing base type from enum
TomTomSDKNavigation.NavigationStartError
. - We are removing base type from enum
TomTomSDKNavigationEngines.TypeOfRoad
.
- We are making return type non-optional in
- In
TomTomSDKNavigationEngines.TypeOfRoad
:- We are replacing
func description() > String
with var description: String
- We are replacing
- In
TomTomSDKAddonNavigationVisualization
we are adding the following as protocol requirements:Func NavigationVisualizationServiceProtocol.hideTrafficIncidents()
.Func NavigationVisualizationServiceProtocol.showTrafficIncidents()
.
Announcing breaking changes: February 6, 2023
General
What is changing?
- We are removing the raw type from
ConnectorType
. - We are removing the raw type from
CurrentType
.
Maps
What is changing?
- We are removing
EventSubscriber
from the public API. - We are replacing
cameraEventSubscriber
withaddCameraEventObserver(CameraEventObservable)
andremoveCameraEventObserver(CameraEventObservable)
. - We are removing:
MapTileDataProviding
MapDisplayOnboardTileDataProvider
OnboardDataProvider
Minor changes
- We are renaming
OnboardStyleURLProvider
toOfflineStyleURLProvider
.
Search
What is changing?
- We are removing
FuelName
. We are extending and usingFuelType
for dynamic POI data (fuel price). - We are removing
geopoliticalView
fromSearchOptions
. - We are using
geopoliticalView
for construction ofOnlineSearch
,OfflineSearch
, andHybridSearch
. - We are removing the
TimeRange
struct from Search APIs. - We are renaming
maxDetourTime
tomaxDetourDuration
, and it is now optional. - We are changing
Connector.type
fromString
to aConnectorType
enum inDynamicData
. - We are renaming
EntityType
enum toAreaType
inReverseGeocoder
. - We are removing
Codable
,Decodable
, andEncodable
fromAvailability
,Connector
, andCurrent
. - We are removing
EVChargingStationsAvailabilityQuery
,EVChargingStationsAvailabilityQueryBuilder
, andEVChargingStationsAvailabilityResponse
from the Search API. The Charging Stations API is now part ofDynamicData
. - We are renaming
Current.powerKW
toCurrent.power
and changing its type toMeasurement
. - We are converting
EntryPoint.type
fromString
toenum
. - We are converting
SearchResultType
fromstruct
toenumGeometryModel
. - We are removing the following types from
TomTomSDKSearchOnline
:GeometryModel
GeometryModelConvertible
RoutePoints
SearchGeometry
SearchGeometryModel
SearchShapeType
SearchCircle
SearchShape
SearchGeometry
SearchGeometryModel
SearchPolygon
- We are removing
SDKSearchErrorDomain
fromTomTomSDKSearch
.
Minor changes
OnlineSearch
,HybridSearch
,OnlineReverseGeocoder
,HybridReverseGeocoder
have a new parameterapiUrl: URL
in their initializer list.- We are moving
ReverseGeocoderSummary
insideReverseGeocoderResponse
and renaming it. We are providing typealiases. - We are moving
AutocompleteSummary
,AutocompleteGeoBias
,AutocompleteResult
,AutocompleteMatchType
,AutocompleteSegment
,AutocompleteMatches
, andAutocompleteInputQuery
insideAutocompleteResponse
and renaming it. The previous type names will still be available. - We are moving
SearchRequestSummary
insideSearchResponse
and renaming it. We are providing typealiases.
Routing
Minor changes
We are removing the SupportingPoints
TypeAlias
from TomTomSDKRoutePlanner
.
Navigation
What is changing?
- We are replacing the language parameter type
String
withLocale
for the following:NavigationEngines
TextToSpeech
OnlineRouting
Snippets
- We are renaming the
language
parameter tolocale
. - We are removing the
RoundaboutDirection
enum. - We are making the property
quantizedTurnAngle
non-optional for guidance instructions. - We are adding support for manual announcements.
- We are removing the
keepLeft
andkeepRight
values fromTurnDirection
. - We are making
Maneuver type
internal.
Announcing breaking changes: January 30, 2023
Maps
What is changing?
- We are removing the
HTTPFramework
from the public API. - We are removing the
HTTPInterceptorDelegate
protocol from the public API. - The following are now a regular
class
:- Line
- Circle
- Marker
- Route
- Polygon
- Layer
- Style
- TomTomMap
- PolygonOverlay protocol
- The following no longer conform to
AnyObject
:- Line
- Circle
- Marker
- Route
- Polygon
- Layer
- Style
- TomTomMap
- PolygonOverlay
- We are removing the following classes:
ApplicationLifecycleMonitor
MapPolygonOverlay
SceneLifecycleMonitor
- We are removing the enum
CameraUpdate.Builder
. - We are removing the following protocols:
AppUIInstanceStateObservable
ApplicationLifecycleMonitoring
- We are removing
MapView.appLifecycleMonitor
. - We are renaming
MapOptions.mapKey
toMapOptions.apiKey
. - We are replacing
MapTileOptions.x, MapTileOptions.y
withpoint: CGPoint
. - We are renaming
MapView.mapReady
toMapView.onMapReadyCallback
. - We are renaming
Struct RenderedFeatureQuery
toStruct RenderedFeatureQueryOptions
. - We are renaming
Route.progressOnRouteMeters
to VarprogressOnRoute
. We are changing the return type fromSwift.Double
toFoundation.Measurement<Foundation.UnitLength>
. - We are removing the following from the public API:
SourceCollection.init(from:)
TrafficIconCategory.init(rawValue:)
TrafficIncident.init(from:)
TrafficMagnitude.init(rawValue:)
TomTomMap.setMarkerDistanceFadingRange(range:)
changes parameter type fromSwift.ClosedRange<Swift.Int>
toSwift.ClosedRange<Foundation.Measurement<Foundation.UnitLength>>
.TomTomMap.setMarkerDistanceShrinkingRange(range:)
changes parameter type fromSwift.ClosedRange<Swift.Int>
toSwift.ClosedRange<Foundation.Measurement<Foundation.UnitLength>>
.OnDiskCachePolicy.cache
updated the type of the associated value duration fromTimeInterval
toMeasurement<UnitDuration>
.
Minor changes
- We are adding the
getHillShadingTiles(mapOptions: MapOption)
function to theMapTileDataProviding
protocol.
Announcing breaking changes: January 23, 2023
Search
What is changing?
PoiDetailsResponse
returnsPoiDetails
instead ofSearchResult
.limit
inAutoCompleteOptions
now has a non-optional default value of 5.- The
searchAreas
property inSearchOptions
is now a set. - We are removing
shouldFetchDetourOffset
inSearchOptions
. Detour offset will always be returned when applicable. SearchOptions
now has two constructors for each of the two scenarios, fuzzy search and search-along-the-route.- We are removing the POIID constructor that accepts a
SearchResultID
. - We are removing
fuelTypes
from POI. - We are grouping detour information into a Detour class in
SearchResult
. - We are using
TomTomSDKCommon.Place
inSearchResult
instead of address and position. - The strings for
AutocompleteSegment
will be either a Brand object, a Category object, or plain text. - We are converting collections with unique elements in POI to sets instead of arrays.
- enums in
SortOrder
now have a "by" prefix, e.g.,byDetourTime
. - We are removing offset from
SearchRequestSummary
. - We are renaming the following:
openingHours
toopeningHoursMode
inSearchOptions
.countries
tocountryCodes
inSearchOptions
.resultTypeSet
toresultTypes
inSearchOptions
.categories
tocategoryIDs
inSearchOptions
.identifiers
togeometryIDs
inGeometryDataOptions
.zoom
togeometryZoom
inGeometryDataOptions
.id
tosearchResultId
inSearchResult
.geoPoliticalView
togeopoliticalView
inSearchOptions
.GeoPoliticalView
toGeopoliticalView
.SearchRequestSummary
toSearchSummary
.
- We are removing
numResults
from all classes ending withSummary
. - We are replacing
ClosedRange<Date>
withDateInterval
inTomTomSDKSearch.OpeningHours
. - We are changing the return type of the
PlaceMatch.speedLimit.Get()
accessor fromSwift.String?
toFoundation.Measurement<Foundation.UnitSpeed>?
. - We are changing the declared type in the
PlaceMatch.speedLimit
var fromSwift.String?
toFoundation.Measurement<Foundation.UnitSpeed>?
Minor changes
- We are changing the
SearchResult.detourOffset
type fromInt
toMeasurement<UnitLength>
.
Routing
What is changing?
In TomTomSDKRoutePlannerOffline
we are removing:
- Enum
OnboardInstructionError
. - Enum
OnboardRouteConverterError
. - Func
CarTrainSection.convertToGoSDKSection(routePoints:)
. - Func
CarpoolSection.convertToGoSDKSection(routePoints:)
. - Func
CountrySection.convertToGoSDKSection(routePoints:)
. - Func
FerrySection.convertToGoSDKSection(routePoints:)
. - Func
MotorwaySection.convertToGoSDKSection(routePoints:)
. - Func
PedestrianSection.convertToGoSDKSection(routePoints:)
. - Func
TollRoadSection.convertToGoSDKSection(routePoints:)
. - Func
TollVignetteSection.convertToGoSDKSection(routePoints:)
. - Func
TrafficSection.convertToGoSDKSection(routePoints:)
. - Func
TravelModeSection.convertToGoSDKSection(routePoints:)
. - Func
TunnelSection.convertToGoSDKSection(routePoints:)
. - Func
UnpavedSection.convertToGoSDKSection(routePoints:)
. - Func
UrbanSection.convertToGoSDKSection(routePoints:)
. - Struct
RoutingArcInfo
.
Navigation
What is changing?
- We are moving the public interfaces of navigation engines to a new module
TomTomSDKNavigationEngines
. - We are renaming the existing module
TomTomSDKNavigationEngine
toTomTomSDKNavigation
. - We are removing the
didGenerateNextPrediction(predictions:)
method ofNavigationMapMatchingObserver
protocol. - We are replacing the
didMapMatchLocation(location: TomTomSDKLocationProvider.GeoLocation)
method of theNavigationMapMatchingObserver
protocol with thedidMapMatchLocation(location: TomTomSDKNavigationEngine.MapMatchingResult)
method. - We are changing the associated value type from
TomTomSDKLocationProvider.GeoLocation
toTomTomSDKNavigationEngine.MapMatchingResult
for thedidMapMatchLocation
enum case of theNavigationEvent.MapMatchingEvent
enum. - We are replacing
NavigationConfigurationBuilder
on theNavigationConfiguration
struct.
Announcing breaking changes: January 16, 2023
Maps
What is changing?
- We are removing the public initializers of the following
TomTomSDKDataManagementOffline
types:CompletedMapOperation
CurrentMapOperation
RegionGraph
RegionGraphNode
RegionGraphNodeState
Routing
What is changing?
Within TomTomSDKRoutePlannerOnline
:
- We are removing the following classes:
BatchReachableRangeQuery
BatchRoutingQuery
ReachableRangeQuery
RoutingQuery
- We are removing
RoutingError.init(from:)
. - We are removing the following enums:
OnlineInstructionError
RoutingErrorCode
- We are removing the following protocols:
Query
QueryBuilder
- We are removing the following structs:
LatLngBounds
OptimizedWaypoint
Rectangles
Response
RoadShieldReference
- We are removing the
RoutingError.message
var. - We are changing the
RoutingError
class to a struct. - We are changing the return type for the
RoutingError.code.Get()
accessor fromTomTomSDKRoutePlannerOnline.RoutingErrorCode
toTomTomSDKRoutePlannerOnline.RoutingError.Code
. - We are changing the declared type of the
RoutingError.code
var fromTomTomSDKRoutePlannerOnline.RoutingErrorCode
toTomTomSDKRoutePlannerOnline.RoutingError.Code
. - We are removing conformance of`RoutingError` to decodable.
Navigation
What is changing?
- We are removing
Route Instruction Builders
from the public API. - We are removing the property
travelTime
fromRoute Instruction
.
Announcing breaking changes: January 9, 2023
Maps
What is changing?
In TomTomSDKMapDisplay:
- We are removing the
RouteOptions.init(segments:)
constructor. - We are removing the
RouteSegment
struct. - We are removing the
RouteOptions.segments
var. - We are adding a
RouteOptions.init(coordinates: [CLLocationCoordinate2D], sections: [RouteSection])
constructor.
Search
What is changing?
In the reverse geocoder:
- We are renaming the
supportedRoadUses
attribute inReverseGeocoderOptions
toroadUses
. - We are renaming
supportedEntityTypes
inReverseGeocoderOptions
toentityTypes
. - We are renaming
supportedMapCodeTypes
inReverseGeocoderOptions
tomapCodeTypes
. - We are renaming
shouldFetchGeometry
inReverseGeocoderOptions
tofetchGeometry
. - The
EntityType
enumeration won’t have a base type. - We are reusing
Geometry
from theTomTomSDKCommon
module instead of defining aGeoGeometry
type in the reverse geocoder module. - The
MatchType
enumeration won’t have a base type. - We will now represent the speed limit by
Measurement<UnitSpeed>
. - We are using set for
roaduse
inPlaceMatch
. - We are reusing
GeoBoundingBox
fromTomTomSDKCommon
in the reverse geocoder. - We are removing
numResults
fromReverseGeocoderSummary
. - We are removing map code from the reverse geocoder.
Minor changes
- We are changing
SearchOptions.sessionId
tosessionID
. - In the reverse geocoder:
- We are setting
ReverseGeocoderOptions.locale
to the default locale.
- We are setting
Routing
What is changing?
TomTomSDKRoutePlanner:
- We are removing the following constructors:
AlternativeType.init(rawValue:)
AvoidType.init(rawValue:)
ExtendedRouteRepresentation.init(rawValue:)
Hilliness.init(rawValue:)
RouteRepresentation.init(rawValue:)
SectionType.init(rawValue:)
WaypointOptimization.init(rawValue:)
Windingness.init(rawValue:)
- We are removing the
Array.queryItems(key:)
func. - We are removing the following TypeAlias’s:
AlternativeType.RawValue
AvoidType.RawValue
ExtendedRouteRepresentation.RawValue
Hilliness.RawValue
RouteRepresentation.RawValue
SectionType.RawValue
WaypointOptimization.RawValue
Windingness.RawValue
- We are removing the following vars:
AlternativeType.rawValue
AvoidType.rawValue
ExtendedRouteRepresentation.rawValue
Hilliness.rawValue
RouteRepresentation.rawValue
SectionType.rawValue
WaypointOptimization.rawValue
Windingness.rawValue
- We are changing
QueryOptions.trackingId
to VartrackingID
.
- We are removing conformance of the
AvoidType
enums to:Decodable
Encodable
RawRepresentable
- We are removing conformance to
RawRepresentable
from the following enums:AlternativeType
AvoidType
ExtendedRouteRepresentation
Hilliness
RouteRepresentation
RouteType
SectionType
WaypointOptimization
Windingness
The following changes to AvoidOptions
are being made:
Name |
Type |
What is changing |
From |
To |
|
accessor |
return type |
|
|
|
accessor |
parameter 0 type |
|
|
|
accessor |
return type |
|
|
|
accessor |
parameter 0 type |
|
|
|
constructor |
parameter 0 type |
|
|
|
constructor |
parameter 2 type |
|
|
|
var |
declared type |
|
|
|
var |
declared type |
|
|
TomTomSDKRoutePlannerOnline:
- Extension Array removing conformance to
QueryItemArrayConvertable
. - Func
Array.queryItem(key:)
is being removed from the public API.
TomTomSDKNavigation:
- Extension Array removing conformance to
QueryItemArrayConvertable
.
Announcing breaking changes: January 2, 2023
General
What is changing?
TomTomSDKFeatureToggle
:
- Func
FeatureToggleControllerProtocol.disable(feature:)
has a generic signature change from<Self where Self : TomTomSDKFeatureToggle.FeatureToggleControllerProtocol>
to<Self where Self : TomTomSDKFeatureToggle.FeatureToggleController>
. - Func
FeatureToggleControllerProtocol.enable(feature:)
has a generic signature change from<Self where Self : TomTomSDKFeatureToggle.FeatureToggleControllerProtocol>
to<Self where Self : TomTomSDKFeatureToggle.FeatureToggleController>
. - Func
FeatureToggleControllerProtocol.isEnabled(feature:)
has a generic signature change from<Self where Self : TomTomSDKFeatureToggle.FeatureToggleControllerProtocol>
to<Self where Self : TomTomSDKFeatureToggle.FeatureToggleController>
. - We are removing Constructor
RuntimeFeatureType.init(rawValue:)
. - We are removing EnumElement
RuntimeFeatureType.newGestureInteraction
. - We are removing TypeAlias
RuntimeFeatureType.RawValue
. - We are removing Var
RuntimeFeatureType.rawValue
. - We are renaming Protocol
FeatureToggleControllerProtocol
to ProtocolFeatureToggleController
. - Accessor
FeatureToggle.shared.Get()
has a return type change fromTomTomSDKFeatureToggle.FeatureToggleControllerProtocol
toTomTomSDKFeatureToggle.FeatureToggleController
. - Var FeatureToggle.shared has a declared type change from
TomTomSDKFeatureToggle.FeatureToggleControllerProtocol
toTomTomSDKFeatureToggle.FeatureToggleController
. - Class
FeatureToggle
has removed conformance toFeatureToggleControllerProtocol
. - Enum
RuntimeFeatureType
has removed conformance toRawRepresentable
.
Navigation
What is changing?
TomTomSDKRouteReplanner.RouteReplanner
protocol is changing:- method func
update(_ options: RouteUpdateOptions) async throws
> [Route] is changing to funcupdate(_ options: RouteUpdateOptions)`
>AsyncThrowingStream<Route, Error>
. - method func
backToRoute(_ options: BackToRouteOptions) async throws
> [Route] is changing to funcbackToRoute(_ options: BackToRouteOptions)
>AsyncThrowingStream<Route, Error>
.
- method func
- Implementations of protocol
TomTomSDKRouteReplannerHybrid.HybridRouteReplanner
andTomTomSDKRouteReplannerDefault.DefaultRouteReplanner
are changing respectively.
Announcing breaking changes: December 27, 2022
General
What is changing?
- We are renaming
UnitsSystem.distanceFormatted(valueInMeters:)
todistanceFormatted(value:)
- We are removing
GeoJSONPosition.init(from:)
- We are removing
GeoJSONPosition.encode(to:)
- We are making the following internal:
- Initializer
Geometry.init(type:coordinates:)
- Var
GeoJSON.exteriorRing
- Var
GeoJSON.internalRings
- Initializer
- Struct
GeoJSONPosition
has removed conformance to Decodable - Struct
GeoJSONPosition
has removed conformance to Encodable
Maps
What is changing?
- We are replacing initializer
RouteInstruction.init(distanceAlongRouteMeters:lengthInMeters:combineWithNext:pointIndex:)
withRouteInstruction.init(distanceAlongRoute:length:combineWithNext:pointIndex:)
- We are renaming property
RouteOptions.reachableDistanceInMeters
toreachableDistance
Search
What is changing?
- We are renaming
searchResult.id.parkingAvailabilityDataSourceId
toparkingDetailD
in TomTomSDKSearch.SearchResult - Moving EV Charging AvailabilityAPI from Hybrid and Search modules to Dynamic Data module:
- We are removing in TomTomSDKSearch:
Search.requestEvChargingStationsAvailability(query:completion:)
method - We are removing in TomTomSDKSearchOnline:
OnlineSearch.requestEvChargingStationsAvailability(query:completion:)
method - We are removing TomTomSDKSearchOffline: Func
OfflineSearch.requestEvChargingStationsAvailability(query:completion:)
- We are removing TomTomSDKSearchHybrid: Func
HybridSearch.requestEvChargingStationsAvailability(query:completion:)
- We are removing in TomTomSDKSearch:
Navigation
What is changing?
- We are moving EVChargingAvailability API from HybridSearch and Hybrid Search to Dynamic Data module
- We are removing
travelTime
from guidance instructions - We are renaming
DefaultSimpleEngineCommonCalculator.calculateProgressOnRoute(location:route:distanceThreshInMeters:lastDistanceAlongRoute:)
tocalculateProgressOnRoute(location:route:distanceThreshold:lastDistanceAlongRoute:)
- We are renaming
SimpleEngineCommonCalculator.calculateProgressOnRoute(location:route:distanceThreshInMeters:lastDistanceAlongRoute:)
tocalculateProgressOnRoute(location:route:distanceThreshold:lastDistanceAlongRoute:)
- The parameter type in
SimpleEngineCommonCalculator.calculateProgressOnRoute(location:route:distanceThreshInMeters:lastDistanceAlongRoute:)
is changing fromSwift.Double
toFoundation.Measurement<Foundation.UnitLength>
- The declared type for property
SimpleEngineCalcResult.closestDistance
is changing fromSwift.Double
toFoundation.Measurement<Foundation.UnitLength>
Announcing breaking changes: December 19, 2022
Search
What is changing?
- We are removing the
RelatedPois
enum, as we do not support related POIs in response or search options.
Announcing breaking changes: December 5, 2022
General
What is changing?
- We are removing the
distance
property from thePlace
structure.
Maps
Minor changes
- We are moving
PositionUpdateObserver
protocol to theTomTomSDKDataManagement
framework (fromTomTomSDKDataStoreUpdater
), to improve the dependency tree. - The following methods/properties will be removed from the
TomTomSDKDataManagement.MapDataStore
protocol:updatesEnabled
addMapUpdateObserver
removeMapUpdateObserver
addAutomaticMapUpdateFailureObserver
removeAutomaticMapUpdateFailureObserver
These methods will still be present onTomTomSDKDataManagementOffline.NDSStore
class, so you will need to use that class instead ofMapDataStore
protocol to call these methods.
- We are moving the following types (all related to the NDS Map Update functionality) to the
TomTomSDKDataManagementOffline
framework (fromTomTomSDKDataManagement
):AutomaticMapUpdateFailureObserver
CompletedMapOperation
CurrentMapOperation
MapOperation
MapOperationType
MapUpdateError
MapUpdateObserver
RegionGraph
RegionGraphNode
RegionGraphNodeID
RegionGraphNodeState
RegionGraphObserver
Search
What is changing?
- We are unifying search and search along the route APIs.
- We are removing the
offset
parameter from the SearchOptions structure. - We are removing the
fuzzyLevel
parameter from the SearchOptions structure.
Routing
What is changing?
- For TomTomSDKRoutePlanner:
- Property
AlternativeRoutesOptions.Builder.maxAlternatives
changing the type fromInt?
toInt
. - Property
AlternativeRoutesOptions.maxAlternatives
changing return type fromInt?
toInt
. - Initializer
AlternativeRoutesOptions.init(maxAlternatives:alternativeType:minDeviationDistance:minDeviationTime:)
changing parametermaxAlternatives
type fromInt?
toInt
. - Initializer
AlternativeRoutesOptions.init(maxAlternatives:alternativeType:minDeviationDistance:minDeviationTime:)
removing default argument formaxAlternatives
parameter.
- Property
Navigation
What is changing?
- We are reordering instruction params to group defaulted params at the end of the initializers.
- We are renaming
GuidanceOnlineAPIVersion
toOnlineAPIVersion
.
Announcing breaking changes: November 28, 2022
Maps
What is changing?
- TomTomSDKDataManagement
- MapStructureObserver protocol has been removed (use RegionGraphObserver instead).
- RegionGraphNode’s id property has been removed (use nodeID instead).
- TomTomSDKDataManagementOffline
- TypeAlias MapOperationScheduler has been removed.
- Class NDSStore has removed conformance to MapOperationScheduler. MapOperationScheduler has been removed.
- Class NDSStore has removed conformance to MapStructureProvider. MapStructureProvider has been removed.
- Class NDSStore has removed conformance to RegionGraphDataProviding. RegionGraphDataProviding has been moved to the GoSDK sample app.
Search
What is changing?
- Replacing the EV Charging Stations Availability API from Search and HybridSearch modules with the EV Charging Stations Availability API from DynamicData module.
- Removing TomTomSDKDataManagement.OnStoreAccessChangedObserver protocol support from the TomTomSDKSearchOffline.OfflineSearch and TomTomSDKRerevseGeocoderOffline.OfflineReverseGeocoder classes.
Announcing breaking changes: November 21, 2022
Maps
What is changing?
- Renaming
Map
toTomTomMap
Search
What is changing?
- Moving
EntryPoints
andChargingPark
fromSearchResponse
to POI class
Routing
What is changing?
- Renaming:
HTTPHandlerProtocol
>HTTPHandler
QueryProtocol
>Query
SimpleEngineCommonCalcProtocol
>SimpleEngineCommonCalc
Navigation
What is changing?
- Removing:
Enum NavigationOptionsActiveRouteError
Enum NavigationOptionsAddError
Enum NavigationOptionsRemoveError
Enum NavigationOptionsUpdateError
- Changing:
Func NavigationOptionsActiveRouteDelegate.activeRouteSetFailed
(with:) parameter type fromTomTomSDKNavigation.NavigationOptionsActiveRouteError
toTomTomSDKNavigation.Navigation.OptionsError
Func NavigationOptionsAddDelegate.routePlanAddFailed
(with:) parameter type fromTomTomSDKNavigation.NavigationOptionsAddError
toTomTomSDKNavigation.Navigation.OptionsError
Func NavigationOptionsRemoveDelegate.routeRemovalFailed
(with:) parameter type fromTomTomSDKNavigation.NavigationOptionsRemoveError
toTomTomSDKNavigation.Navigation.OptionsError
Func NavigationOptionsUpdateDelegate.updateFailed
(with:) parameter type fromTomTomSDKNavigation.NavigationOptionsUpdateError
toTomTomSDKNavigation.Navigation.OptionsError
- Renaming:
Func NavigationErrorObserver.didArrivalEngineFail
(with:) toNavigationErrorObserver.arrivalEngineFailed
(with:)Func NavigationErrorObserver.didGuidanceEngineFail
(with:) toNavigationErrorObserver.guidanceEngineFailed
(with:)Func NavigationErrorObserver.didHorizonEngineFail
(with:) toNavigationErrorObserver.horizonEngineFailed
(with:)Func NavigationErrorObserver.didLocationContextEngineFail
(with:) toNavigationErrorObserver.locationContextEngineFailed
(with:)Func NavigationErrorObserver.didMapMatchingEngineFail
(with:) toNavigationErrorObserver.mapMatchingEngineFailed
(with:)Func NavigationErrorObserver.didRouteProgressDetectionEngineFail
(with:) toNavigationErrorObserver.routeProgressDetectionEngineFailed
(with:)Func NavigationErrorObserver.didRouteReplanningEngineFail
(with:) toNavigationErrorObserver.routeReplanningEngineFailed
(with:)Func NavigationErrorObserver.didRouteTrackingEngineFail
(with:) toNavigationErrorObserver.routeTrackingEngineFailed
(with:)Func NavigationErrorObserver.didStartFail
(with:) toNavigationErrorObserver.navigationStartFailed
(with:)
Announcing changes to SDK artifacts: November 17, 2022
When is it expected?
Expected rollout date: November 21, 2022
What is changing?
With the upcoming release of Maps and Navigation SDKs, we are renaming some frameworks to comply with the SDK-wide naming scheme. Historical frameworks remain available in the CocoaPods and SPM repositories. However, all new SDK development will be published under the updated artifact names.
What do you need to do?
If you want to be able to use the newest SDKs, make sure to remove all old frameworks used in your Podfile
or your SPM package definition and add matching entries with the updated names. We will communicate the exact list of renamed frameworks in the Release Notes.
Announcing breaking changes: November 14, 2022
Maps
What is changing?
- Renaming:
OnboardMapMatchingEngine
toOfflineMapMatchingEngine
(implementation)OnboardLocationContextProviderEngine
toOfflineLocationContextProviderEngine
(implementation)
Search
What is changing?
- Changing the way an API key is set for the API entry points in
TomTomSDKOnlineSearch
,TomTomSDKOnlineReverseGeocoder
, andTomTomSDKOnlineDynamicData
modules. From now on the API key will be set at the API entry point initialization. We are removing the following public preview APIs that we used for setting a key:SearchOnlineService
class,ReverseGeocoderOnlineService
class, and a staticOnlineDynamicDataProvider.searchKey
property. - Changing public preview API endpoint in
TomTomSDKReverseGeocoder
,TomTomSDKReverseGeocoderOnline
,TomTomSDKReverseGeocoderOffline
, andTomTomSDKReverseGeocoderHybrid
modules:- Renaming the following API entry points:
Protocol ReverseGeocoderService
toReverseGeocoder
Class TomTomOnlineReverseGeocoderService
toOnlineReverseGeocoder
Class TomTomOnboardReverseGeocoderService
toOfflineReverseGeocoder
Class HybridReverseGeocoderService
toHybridReverseGeocoder
Structure ReverseGeocoderQuery
toReverseGeocoderOptions
- Changing the signature of method:
ReverseGeocoder.reverseGeocode
(query ReverseGeocoderQuery: completion: @escaping (Result<TomTomSDKReverseGeocoder.ReverseGeocoderResponse, Error>)
toReverseGeocoder.reverseGeocode
(queryReverseGeocoderOptions: completion: @escaping
(Result<TomTomSDKReverseGeocoder.ReverseGeocoderResponse, Error>
)
- Removing
AdditionalDataQueryBuilder
andAdditionalDataQuery
from public API
- Renaming the following API entry points:
- Changing public preview API endpoint in
TomTomSDKSearch
,TomTomSDKReverseSearchOnline
,TomTomSDKSearchOffline
, andTomTomSDKSearchrHybrid
modules:- Renaming API entry points:
Protocol SearchService
toSearch
Class TomTomOnlineSearchService
toOnlineSearch
Class TomTomOnboardSearchService
toOfflineSearch
Class HybridSearchService
toHybridSearch
- Query structures to options (e.g., renaming
SearchQuery
toSearchOptions
) - Changing the signature of API methods by renaming query parameter to options
- Renaming API entry points:
Navigation
What is changing?
TomTomSDKCommon
:- Removing
constructor MatchedLocation.init
(location:predictions:mapPosition:probability:
) - Removing
var MatchedLocation.predictions
- Renaming
Enum StreamExecutionPolicy
toHybridRoutePlanner.ExecutionPolicy
and moving toTomTomSDKHybridRouting
- Removing
TomTomSDKNavigation
:- Removing
constructor MapMatchingResult.init
(location:predictions:routeMatchingDetails:mapPosition:probability:
)
- Removing
TomTomSDKInternalDynamicRoutingApi
:- Removing
enum DynamicRoutingCommon
- Removing
- Renaming the following modules:
TomTomSDKOnboardLocationContextProviderEngine
>TomTomSDKLocationContextProviderEngineOffline
TomTomSDKOnboardMapMatchingEngine
>TomTomSDKMapMatchingEngineOffline
TomTomSDKOnlineSearch
>TomTomSDKSearchOnline
TomTomSDKOnboardSearch
>TomTomSDKSearchOffline
TomTomSDKHybridSearch
>TomTomSDKSearchHybrid
- Renaming the following functions:
GuidanceEngine.generateGuidance
(inputParameters:
) >generateGuidance
(navigationSnapshot:
)GuidanceEngine.generateLaneGuidance
(inputParameters:
) >generateLaneGuidance
(navigationSnapshot:
)LocationContextDetectionEngine.detectLocationContext
(matchedLocation:
) >detectLocationContext
(navigationSnapshot:
)NavKitLocationContextEngine.detectLocationContext
(matchedLocation:
) >detectLocationContext
(navigationSnapshot:
)TomTomDynamicGuidanceEngine.generateGuidance
(inputParameters:
) >generateGuidance
(navigationSnapshot:
)TomTomDynamicGuidanceEngine.generateLaneGuidance
(inputParameters:
) >generateLaneGuidance
(navigationSnapshot:
)TomTomGuidanceEngine.generateGuidance
(inputParameters:
) >generateGuidance
(navigationSnapshot:
)TomTomGuidanceEngine.generateLaneGuidance
(inputParameters:
) >generateLaneGuidance
(navigationSnapshot:
)OnboardLocationContextProviderEngine.detectLocationContext
(matchedLocation:
) >detectLocationContext
(navigationSnapshot:
)
Func GuidanceEngine.generateGuidance
(inputParameters:
) changingparameter 0 type
fromTomTomSDKNavigation.GuidanceParams
toTomTomSDKNavigation.NavigationSnapshot
Func GuidanceEngine.generateLaneGuidance
(inputParameters:
) changingparameter 0 type
fromTomTomSDKNavigation.GuidanceParams
toTomTomSDKNavigation.NavigationSnapshot
Func LocationContextDetectionEngine.detectLocationContext
(matchedLocation:
) changingparameter 0 type
fromTomTomSDKCommon.MatchedLocation
toTomTomSDKNavigation.NavigationSnapshot
Func NavKitLocationContextEngine.detectLocationContext
(matchedLocation:
) changingparameter 0 type
fromTomTomSDKCommon.MatchedLocation
toTomTomSDKNavigation.NavigationSnapshot
Func TomTomDynamicGuidanceEngine.generateGuidance
(inputParameters:
) changingparameter 0 type
fromTomTomSDKNavigation.GuidanceParams
toTomTomSDKNavigation.NavigationSnapshot
Func TomTomDynamicGuidanceEngine.generateLaneGuidance
(inputParameters:
) changingparameter 0 type
fromTomTomSDKNavigation.GuidanceParams
toTomTomSDKNavigation.NavigationSnapshot
Func TomTomGuidanceEngine.generateGuidance
(inputParameters:
) changingparameter 0 type
fromTomTomSDKNavigation.GuidanceParams
toTomTomSDKNavigation.NavigationSnapshot
Func TomTomGuidanceEngine.generateLaneGuidance
(inputParameters:
) changingparameter 0 type
fromTomTomSDKNavigation.GuidanceParams
toTomTomSDKNavigation.NavigationSnapshot
Func OnboardLocationContextProviderEngine.detectLocationContext
(matchedLocation:
) changingparameter 0 type
fromTomTomSDKCommon.MatchedLocation
toTomTomSDKNavigation.NavigationSnapshot
- Changing
NavigationConfigurationBuilder
signature fromNavigationConfigurationBuilder
(apiKey: String, locationProvider: LocationProvider, routeReplanner: TomTomSDKRouteReplanner.RouteReplanner
) toNavigationConfigurationBuilder
(navigationKey: String, locationProvider: LocationProvider, routeReplanner: TomTomSDKRouteReplanner.RouteReplanner
) - Removing
RouteMatchingDetails
type - Changing
MapMatchingResult
type: removingpublic let routeMatchingDetails: RouteMatchingDetails
, and addingpublic let followedRouteIds: [UUID]
. - Changing initializer of
MapMatchingResult
from:
1public init(2 matchedLocation: MatchedLocation,3 timestamp: Measurement<UnitDuration> = .tt.seconds(0),4 predictions: [GeoLocation] = [],5 routeMatchingDetails: RouteMatchingDetails = RouteMatchingDetails(followedRoutesIds: []),6 alternativeMatchedLocations: [MatchedLocation] = )
to
1public init(2 matchedLocation: MatchedLocation,3 timestamp: Measurement<UnitDuration> = .tt.seconds(0),4 predictions: [GeoLocation] = [],5 followedRouteIds: [UUID] = [],6 alternativeMatchedLocations: [MatchedLocation] = )
Minor changes
TomTomSDKNavigation
:- Adding var
MapMatchingResult.timestamp
- Adding var
MapMatchingResult.alternativeMatchedLocations
- Adding var
MatchedLocation.positionId
- Adding var
MatchedLocation.isOnRoad
- Adding var
MatchedLocation.direction
- Adding var
Announcing breaking changes: November 7, 2022
General
What is changing?
- Removing:
- Obsolete internal API
AudioConfigurationProvider
protocol from theTomTomSDKCommon
module. - Obsolete
IDGenerator
class from the public API of theTomTomSDKCommon
module. - Renaming:
TomTomSDKHTTPFramework
>TomTomSDKNetworking
TomTomSDKLocation
>TomTomSDKLocationProvider
TomTomSDKMapsDisplay
>TomTomSDKMapDisplay
TomTomSDKOnboardStyleProvider
>TomTomSDKStyleProviderOffline
TomTomSDKNavigationView
>TomTomSDKNavigationUI
TomTomSDKSystemTextToSpeechEngine
>TomTomSDKDefaultTextToSpeech
TomTomSDKOnboardMapDisplayDataProvider
>TomTomSDKMapDisplayDataProviderOffline
TomTomSDKDynamicRoutingApi
>TomTomSDKRouteReplanner
TomTomSDKOnlineDynamicRoutingApi
>TomTomSDKRouteReplannerDefault
TomTomSDKInternalDynamicRoutingApi
>TomTomSDKRouteReplannerInternal
TomTomSDKHybridDynamicRouting
>TomTomSDKRouteReplannerHybrid
TomTomSDKOnlineDynamicData
>TomTomSDKDynamicDataOnline
TomTomSDKOnboardDataManagement
>TomTomSDKDataManagementOffline
TomTomSDKRouting
>TomTomSDKRoutePlanner
TomTomSDKOnlineRouting
>TomTomSDKRoutePlannerOnline
TomTomSDKOnboardRouting
>TomTomSDKRoutePlannerOffline
TomTomSDKHybridRouting
>TomTomSDKRoutePlannerHybrid
TomTomSDKOnlineReverseGeocoder
>TomTomSDKReverseGeocoderOnline
TomTomSDKOnboardReverseGeocoder
>TomTomSDKReverseGeocoderOffline
TomTomSDKHybridReverseGeocoder
>TomTomSDKReverseGeocoderHybrid
TomTomSDKNavigationVisualizationAddon
>TomTomSDKAddonNavigationVisualization
TomTomSDKRangeVisualizationAddon
>TomTomSDKAddonRangeVisualization
TomTomSDKUIComponents
>TomTomSDKCommonUI
TomTomSDKTPEGTraffic
>TomTomSDKTrafficTPEG
TomTomSDKOnlineRouteProjectionEngine
>TomTomSDKRouteProjectionEngineTileStore
TomTomSDKOnboardStructuredSearch
>TomTomSDKStructuredSearchOffline
TomTomSDKOnboardVehicleHorizonEngine
>TomTomSDKHorizonEngineOffline
Minor changes
- Making utility network-related classes from the
TomTomSDKCommon
modulespi-internal
. - Making
ValueFormattingResult
andValueWithUnitFormatter
API fromTomTomSDKCommon
modulespi-internal
.
Routing
What is changing?
- Renaming:
RoutingService
>RoutePlanner
TomTomRoutingService
>OnlineRoutePlanner
OnboardRoutingService
>OfflineRoutePlanner
HybridRouting
>HybridRoutePlanner
RoutingOnlineService
>OnlineRoutingService
(API key management)- Removing:
OnlineRoutingService
and initializeOnlineRoutePlanner
with ROUTING_API_KEY directly
Navigation
What is changing?
- Removing language from Guidance public API.
Announcing breaking changes: October 31, 2022
General
What is changing?
- Mark as @_Spi internal classes/protocols in Common module.
LineOptions
introduced new properties: PatternAppearance and OutlineAppearance.- Renaming acronyms in function parameters, classes, protocols and variables. Examples:
- Id > ID,
- Uuid > UUID,
- annotationId > annotationID
LineOptions
introduced new properties:PatternAppearance
andOutlineAppearance
.
Maps
What is changing?
- Removing deprecated OnboardDataStoreUpdateContextEngine (use DataStoreUpdater).
- Renaming acronyms in function parameters, classes, protocols and variables. Examples:
- Id > ID,
- Uuid > UUID,
- annotationId > annotationID
- Marking in Common internal api as @_Spi.
Navigation
What is changing?
- Removing
PhoneticPair
,PhoneticStringPair
andPhoneticTranscription
from public API. - Removing
Announcement.maneuver
from public API. - Removing
VerbalMessageComposer
from public API. - Removing
VerbalMessageGeneration
from public API. - Removing
LaneGuidanceGenerator
from public API. - Renaming
isPossibleToCombineWithNext
tocombineWithNext
in public API. - Renaming
RoutePoint
toRouteStop
. - Renaming
DynamicRoutingApi
toRouteReplanner
. - Renaming
OnlineDynamicRoutingClient
toDefaultRouteReplanner
. - Renaming
HybridDynamicRouting
toHybridRouteReplanner
. - In
Navigation
classdelegate
property is removed.TomTomNavigationDelegate
protocol is also being removed. Instead, you should usedelegate
property ofNavigation
class andTomTomNavigationDelegate
protocol.
public func addNavigationObserver(_ observer: NavigationObserver)public func removeNavigationObserver(_ observer: NavigationObserver)
Methods of Navigation class
, and NavigationObserver
protocol respectively. Also, for subscribing on a specific events only, you can use specific methods like addStartObserver/removeStartObserver
and NavigationStartObserver
protocol, addProgressObserver/removeProgressObserver
and NavigationProgressObserver
protocol, etc. (see list of the methods of Navigation
class).
- In
Navigation
classdelegateError
property is removed.TomTomNavigationErrorDelegate
protocol is also being removed. Instead, you should usedelegateError
property ofNavigation
class andTomTomNavigationErrorDelegate
protocol.
public func addErrorObserver(_ observer: NavigationErrorObserver)public func removeErrorObserver(_ observer: NavigationErrorObserver)