Announcements

Last edit: 2023.01.23

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: January 23, 2023

What is changing?

  • PoiDetailsResponse returns PoiDetails instead of SearchResult.
  • limit in AutoCompleteOptions now has a non-optional default value of 5.
  • The searchAreas property in SearchOptions is now a set.
  • We are removing shouldFetchDetourOffset in SearchOptions. 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 in SearchResult 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 to openingHoursMode in SearchOptions.
    • countries to countryCodes in SearchOptions.
    • resultTypeSet to resultTypes in SearchOptions.
    • categories to categoryIDs in SearchOptions.
    • identifiers to geometryIDs in GeometryDataOptions.
    • zoom to geometryZoom in GeometryDataOptions.
    • id to searchResultId in SearchResult.
    • geoPoliticalView to geopoliticalView in SearchOptions.
    • GeoPoliticalView to GeopoliticalView.
    • SearchRequestSummary to SearchSummary.
  • We are removing numResults from all classes ending with Summary.
  • We are replacing ClosedRange<Date> with DateInterval in TomTomSDKSearch.OpeningHours.
  • We are changing the return type of the PlaceMatch.speedLimit.Get() accessor from Swift.String? to Foundation.Measurement<Foundation.UnitSpeed>?.
  • We are changing the declared type in the PlaceMatch.speedLimit var from Swift.String? to Foundation.Measurement<Foundation.UnitSpeed>?

Minor changes

  • We are changing the SearchResult.detourOffset type from Int to Measurement<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.

What is changing?

  • We are moving the public interfaces of navigation engines to a new module TomTomSDKNavigationEngines.
  • We are renaming the existing module TomTomSDKNavigationEngine to TomTomSDKNavigation.
  • We are removing the didGenerateNextPrediction(predictions:) method of NavigationMapMatchingObserver protocol.
  • We are replacing the didMapMatchLocation(location: TomTomSDKLocationProvider.GeoLocation) method of the NavigationMapMatchingObserver protocol with the didMapMatchLocation(location: TomTomSDKNavigationEngine.MapMatchingResult) method.
  • We are changing the associated value type from TomTomSDKLocationProvider.GeoLocation to TomTomSDKNavigationEngine.MapMatchingResult for the didMapMatchLocation enum case of the NavigationEvent.MapMatchingEvent enum.
  • We are replacing NavigationConfigurationBuilder on the NavigationConfiguration 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 from TomTomSDKRoutePlannerOnline.RoutingErrorCode to TomTomSDKRoutePlannerOnline.RoutingError.Code.
  • We are changing the declared type of the RoutingError.code var from TomTomSDKRoutePlannerOnline.RoutingErrorCode to TomTomSDKRoutePlannerOnline.RoutingError.Code.
  • We are removing conformance of`RoutingError` to decodable.

What is changing?

  • We are removing Route Instruction Builders from the public API.
  • We are removing the property travelTime from Route 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 in ReverseGeocoderOptions to roadUses.
  • We are renaming supportedEntityTypes in ReverseGeocoderOptions to entityTypes.
  • We are renaming supportedMapCodeTypes in ReverseGeocoderOptions to mapCodeTypes.
  • We are renaming shouldFetchGeometry in ReverseGeocoderOptions to fetchGeometry.
  • The EntityType enumeration won’t have a base type.
  • We are reusing Geometry from the TomTomSDKCommon module instead of defining a GeoGeometry 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 in PlaceMatch.
  • We are reusing GeoBoundingBox from TomTomSDKCommon in the reverse geocoder.
  • We are removing numResults from ReverseGeocoderSummary.
  • We are removing map code from the reverse geocoder.

Minor changes

  • We are changing SearchOptions.sessionId to sessionID.
  • In the reverse geocoder:
    • We are setting ReverseGeocoderOptions.locale to the default locale.

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 Var trackingID.
  • 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

AvoidOptions.avoidAreas.Get()

accessor

return type

Swift.Set<TomTomSDKCommon.BoundingBox>?

Swift.Set<TomTomSDKCommon.BoundingBox>

AvoidOptions.avoidAreas.Set()

accessor

parameter 0 type

Swift.Set<TomTomSDKCommon.BoundingBox>?

Swift.Set<TomTomSDKCommon.BoundingBox>

AvoidOptions.avoids.Get()

accessor

return type

Swift.Set<TomTomSDKRoutePlanner.AvoidType>?

Swift.Set<TomTomSDKRoutePlanner.AvoidType>

AvoidOptions.avoids.Set()

accessor

parameter 0 type

Swift.Set<TomTomSDKRoutePlanner.AvoidType>?

Swift.Set<TomTomSDKRoutePlanner.AvoidType>

AvoidOptions.init(avoids:vignette:avoidAreas:)

constructor

parameter 0 type

Swift.Set<TomTomSDKRoutePlanner.AvoidType>?

Swift.Set<TomTomSDKRoutePlanner.AvoidType>

AvoidOptions.init(avoids:vignette:avoidAreas:)

constructor

parameter 2 type

Swift.Set<TomTomSDKCommon.BoundingBox>?

Swift.Set<TomTomSDKCommon.BoundingBox>

AvoidOptions.avoidAreas

var

declared type

Swift.Set<TomTomSDKCommon.BoundingBox>?

Swift.Set<TomTomSDKCommon.BoundingBox>

AvoidOptions.avoids

var

declared type

Swift.Set<TomTomSDKRoutePlanner.AvoidType>?

Swift.Set<TomTomSDKRoutePlanner.AvoidType>

TomTomSDKRoutePlannerOnline: * Extension Array removing conformance to QueryItemArrayConvertable. * Func Array.queryItem(key:) is being removed from the public API.

TomTomSDKNavigationEngine: * 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 Protocol FeatureToggleController.
  • Accessor FeatureToggle.shared.Get() has a return type change from TomTomSDKFeatureToggle.FeatureToggleControllerProtocol to TomTomSDKFeatureToggle.FeatureToggleController.
  • Var FeatureToggle.shared has a declared type change from TomTomSDKFeatureToggle.FeatureToggleControllerProtocol to TomTomSDKFeatureToggle.FeatureToggleController.
  • Class FeatureToggle has removed conformance to FeatureToggleControllerProtocol.
  • Enum RuntimeFeatureType has removed conformance to RawRepresentable.

What is changing?

  • TomTomSDKRouteReplanner.RouteReplanner protocol is changing:
    • method func update(_ options: RouteUpdateOptions) async throws > [Route] is changing to func update(_ options: RouteUpdateOptions)` > AsyncThrowingStream<Route, Error>.
    • method func backToRoute(_ options: BackToRouteOptions) async throws > [Route] is changing to func backToRoute(_ options: BackToRouteOptions) > AsyncThrowingStream<Route, Error>.
  • Implementations of protocol TomTomSDKRouteReplannerHybrid.HybridRouteReplanner and TomTomSDKRouteReplannerDefault.DefaultRouteReplanner are changing respectively.

Announcing breaking changes: December 27, 2022

General

What is changing?

  • We are renaming UnitsSystem.distanceFormatted(valueInMeters:) to distanceFormatted(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
  • 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:) with RouteInstruction.init(distanceAlongRoute:length:combineWithNext:pointIndex:)
  • We are renaming property RouteOptions.reachableDistanceInMeters to reachableDistance

Search

What is changing?

  • We are renaming searchResult.id.parkingAvailabilityDataSourceId to parkingDetailD 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:)

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:) to calculateProgressOnRoute(location:route:distanceThreshold:lastDistanceAlongRoute:)
  • We are renaming SimpleEngineCommonCalculator.calculateProgressOnRoute(location:route:distanceThreshInMeters:lastDistanceAlongRoute:) to calculateProgressOnRoute(location:route:distanceThreshold:lastDistanceAlongRoute:)
  • The parameter type in SimpleEngineCommonCalculator.calculateProgressOnRoute(location:route:distanceThreshInMeters:lastDistanceAlongRoute:) is changing from Swift.Double to Foundation.Measurement<Foundation.UnitLength>
  • The declared type for property SimpleEngineCalcResult.closestDistance is changing from Swift.Double to Foundation.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 the Place structure.

Maps

Minor changes

  • We are moving PositionUpdateObserver protocol to the TomTomSDKDataManagement framework (from TomTomSDKDataStoreUpdater), 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 on TomTomSDKDataManagementOffline.NDSStore class, so you will need to use that class instead of MapDataStore protocol to call these methods.
  • We are moving the following types (all related to the NDS Map Update functionality) to the TomTomSDKDataManagementOffline framework (from TomTomSDKDataManagement):
    • 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 from Int? to Int.
    • Property AlternativeRoutesOptions.maxAlternatives changing return type from Int? to Int.
    • Initializer AlternativeRoutesOptions.init(maxAlternatives:alternativeType:minDeviationDistance:minDeviationTime:) changing parameter maxAlternatives type from Int? to Int.
    • Initializer AlternativeRoutesOptions.init(maxAlternatives:alternativeType:minDeviationDistance:minDeviationTime:) removing default argument for maxAlternatives parameter.

What is changing?

  • We are reordering instruction params to group defaulted params at the end of the initializers.
  • We are renaming GuidanceOnlineAPIVersion to OnlineAPIVersion.

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 to TomTomMap

Search

What is changing?

  • Moving EntryPoints and ChargingPark from SearchResponse to POI class

Routing

What is changing?

  • Renaming:
    • HTTPHandlerProtocol > HTTPHandler
    • QueryProtocol > Query
    • SimpleEngineCommonCalcProtocol > SimpleEngineCommonCalc

What is changing?

  • Removing:
    • Enum NavigationOptionsActiveRouteError
    • Enum NavigationOptionsAddError
    • Enum NavigationOptionsRemoveError
    • Enum NavigationOptionsUpdateError
  • Changing:
    • Func NavigationOptionsActiveRouteDelegate.activeRouteSetFailed(with:) parameter type from TomTomSDKNavigationEngine.NavigationOptionsActiveRouteError to TomTomSDKNavigationEngine.Navigation.OptionsError
    • Func NavigationOptionsAddDelegate.routePlanAddFailed(with:) parameter type from TomTomSDKNavigationEngine.NavigationOptionsAddError to TomTomSDKNavigationEngine.Navigation.OptionsError
    • Func NavigationOptionsRemoveDelegate.routeRemovalFailed(with:) parameter type from TomTomSDKNavigationEngine.NavigationOptionsRemoveError to TomTomSDKNavigationEngine.Navigation.OptionsError
    • Func NavigationOptionsUpdateDelegate.updateFailed(with:) parameter type from TomTomSDKNavigationEngine.NavigationOptionsUpdateError to TomTomSDKNavigationEngine.Navigation.OptionsError
  • Renaming:
    • Func NavigationErrorObserver.didArrivalEngineFail(with:) to NavigationErrorObserver.arrivalEngineFailed(with:)
    • Func NavigationErrorObserver.didGuidanceEngineFail(with:) to NavigationErrorObserver.guidanceEngineFailed(with:)
    • Func NavigationErrorObserver.didHorizonEngineFail(with:) to NavigationErrorObserver.horizonEngineFailed(with:)
    • Func NavigationErrorObserver.didLocationContextEngineFail(with:) to NavigationErrorObserver.locationContextEngineFailed(with:)
    • Func NavigationErrorObserver.didMapMatchingEngineFail(with:) to NavigationErrorObserver.mapMatchingEngineFailed(with:)
    • Func NavigationErrorObserver.didRouteProgressDetectionEngineFail(with:) to NavigationErrorObserver.routeProgressDetectionEngineFailed(with:)
    • Func NavigationErrorObserver.didRouteReplanningEngineFail(with:) to NavigationErrorObserver.routeReplanningEngineFailed(with:)
    • Func NavigationErrorObserver.didRouteTrackingEngineFail(with:) to NavigationErrorObserver.routeTrackingEngineFailed(with:)
    • Func NavigationErrorObserver.didStartFail(with:) to NavigationErrorObserver.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 to OfflineMapMatchingEngine (implementation)
  • OnboardLocationContextProviderEngine to OfflineLocationContextProviderEngine (implementation)

Search

What is changing?

  • Changing the way an API key is set for the API entry points in TomTomSDKOnlineSearch, TomTomSDKOnlineReverseGeocoder, and TomTomSDKOnlineDynamicData 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 static OnlineDynamicDataProvider.searchKey property.
  • Changing public preview API endpoint in TomTomSDKReverseGeocoder, TomTomSDKReverseGeocoderOnline, TomTomSDKReverseGeocoderOffline, and TomTomSDKReverseGeocoderHybrid modules:
    • Renaming the following API entry points:
      • Protocol ReverseGeocoderService to ReverseGeocoder
      • Class TomTomOnlineReverseGeocoderService to OnlineReverseGeocoder
      • Class TomTomOnboardReverseGeocoderService to OfflineReverseGeocoder
      • Class HybridReverseGeocoderService to HybridReverseGeocoder
      • Structure ReverseGeocoderQuery to ReverseGeocoderOptions
      • Changing the signature of method: ReverseGeocoder.reverseGeocode(query ReverseGeocoderQuery: completion: @escaping (Result<TomTomSDKReverseGeocoder.ReverseGeocoderResponse, Error>) to ReverseGeocoder.reverseGeocode(query ReverseGeocoderOptions: completion: @escaping (Result<TomTomSDKReverseGeocoder.ReverseGeocoderResponse, Error>)
    • Removing AdditionalDataQueryBuilder and AdditionalDataQuery from public API
  • Changing public preview API endpoint in TomTomSDKSearch, TomTomSDKReverseSearchOnline, TomTomSDKSearchOffline, and TomTomSDKSearchrHybrid modules:
    • Renaming API entry points:
      • Protocol SearchService to Search
      • Class TomTomOnlineSearchService to OnlineSearch
      • Class TomTomOnboardSearchService to OfflineSearch
      • Class HybridSearchService to HybridSearch
      • Query structures to options (e.g., renaming SearchQuery to SearchOptions)
      • Changing the signature of API methods by renaming query parameter to options

What is changing?

  • TomTomSDKCommon:
    • Removing constructor MatchedLocation.init(location:predictions:mapPosition:probability:)
    • Removing var MatchedLocation.predictions
    • Renaming Enum StreamExecutionPolicy to HybridRoutePlanner.ExecutionPolicy and moving to TomTomSDKHybridRouting
  • TomTomSDKNavigationEngine:
    • Removing constructor MapMatchingResult.init (location:predictions:routeMatchingDetails:mapPosition:probability:)
  • TomTomSDKInternalDynamicRoutingApi:
    • Removing enum DynamicRoutingCommon
  • 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:) changing parameter 0 type from TomTomSDKNavigationEngine.GuidanceParams to TomTomSDKNavigationEngine.NavigationSnapshot
  • Func GuidanceEngine.generateLaneGuidance(inputParameters:) changing parameter 0 type from TomTomSDKNavigationEngine.GuidanceParams to TomTomSDKNavigationEngine.NavigationSnapshot
  • Func LocationContextDetectionEngine.detectLocationContext(matchedLocation:) changing parameter 0 type from TomTomSDKCommon.MatchedLocation to TomTomSDKNavigationEngine.NavigationSnapshot
  • Func NavKitLocationContextEngine.detectLocationContext(matchedLocation:) changing parameter 0 type from TomTomSDKCommon.MatchedLocation to TomTomSDKNavigationEngine.NavigationSnapshot
  • Func TomTomDynamicGuidanceEngine.generateGuidance(inputParameters:) changing parameter 0 type from TomTomSDKNavigationEngine.GuidanceParams to TomTomSDKNavigationEngine.NavigationSnapshot
  • Func TomTomDynamicGuidanceEngine.generateLaneGuidance(inputParameters:) changing parameter 0 type from TomTomSDKNavigationEngine.GuidanceParams to TomTomSDKNavigationEngine.NavigationSnapshot
  • Func TomTomGuidanceEngine.generateGuidance(inputParameters:) changing parameter 0 type from TomTomSDKNavigationEngine.GuidanceParams to TomTomSDKNavigationEngine.NavigationSnapshot
  • Func TomTomGuidanceEngine.generateLaneGuidance(inputParameters:) changing parameter 0 type from TomTomSDKNavigationEngine.GuidanceParams to TomTomSDKNavigationEngine.NavigationSnapshot
  • Func OnboardLocationContextProviderEngine.detectLocationContext(matchedLocation:) changing parameter 0 type from TomTomSDKCommon.MatchedLocation to TomTomSDKNavigationEngine.NavigationSnapshot
  • Changing NavigationConfigurationBuilder signature from NavigationConfigurationBuilder(apiKey: String, locationProvider: LocationProvider, routeReplanner: TomTomSDKRouteReplanner.RouteReplanner) to NavigationConfigurationBuilder(navigationKey: String, locationProvider: LocationProvider, routeReplanner: TomTomSDKRouteReplanner.RouteReplanner)
  • Removing RouteMatchingDetails type
  • Changing MapMatchingResult type: removing public let routeMatchingDetails: RouteMatchingDetails, and adding public 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

  • TomTomSDKNavigationEngine:
    • Adding var MapMatchingResult.timestamp
    • Adding var MapMatchingResult.alternativeMatchedLocations
    • Adding var MatchedLocation.positionId
    • Adding var MatchedLocation.isOnRoad
    • Adding var MatchedLocation.direction

Announcing breaking changes: November 7, 2022

General

What is changing?

  • Removing:
  • Obsolete internal API AudioConfigurationProvider protocol from the TomTomSDKCommon module.
  • Obsolete IDGenerator class from the public API of the TomTomSDKCommon 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 module spi-internal.
  • Making ValueFormattingResult and ValueWithUnitFormatter API from TomTomSDKCommon module spi-internal.

Routing

What is changing?

  • Renaming:
  • RoutingService > RoutePlanner
  • TomTomRoutingService > OnlineRoutePlanner
  • OnboardRoutingService > OfflineRoutePlanner
  • HybridRouting > HybridRoutePlanner
  • RoutingOnlineService > OnlineRoutingService (API key management)
  • Removing:
  • OnlineRoutingService and initialize OnlineRoutePlanner with ROUTING_API_KEY directly

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 and OutlineAppearance.

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.

What is changing?

  • Removing PhoneticPair, PhoneticStringPair and PhoneticTranscription 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 to combineWithNext in public API.
  • Renaming RoutePoint to RouteStop.
  • Renaming DynamicRoutingApi to RouteReplanner.
  • Renaming OnlineDynamicRoutingClient to DefaultRouteReplanner.
  • Renaming HybridDynamicRouting to HybridRouteReplanner.
  • In Navigation class delegate property is removed. TomTomNavigationDelegate protocol is also being removed. Instead, you should use delegate property of Navigation class and TomTomNavigationDelegate 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 class delegateError property is removed. TomTomNavigationErrorDelegate protocol is also being removed. Instead, you should use delegateError property of Navigation class and TomTomNavigationErrorDelegate protocol.
public func addErrorObserver(_ observer: NavigationErrorObserver)
public func removeErrorObserver(_ observer: NavigationErrorObserver)