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: 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 GoSDKCommon 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)