DriveKit 3.0 migration guide

Migration guide for DriveKit 3.0 on iOS platform

What's changed in v3.0?

Introduction

Version 3.0 of the DriveKit SDK contains breaking changes: all methods that were marked as deprecated during the past year have been permanently removed.

This guide lists every removed element alongside its recommended replacement, organized by module.

Following these steps will keep your integration stable and future-proof.

circle-info

This version also features a newly available callback to retrieve the beacon detected and confirmed during trip recording which will not be presented in this migration guide.

How to use this guide

Each section maps to an SDK module. For every removed element, you'll find:

  • The exact method, class, or property that was removed

  • The recommended drop-in replacement to use instead

Module-level reset() methods

The reset() method has been removed from every individual module. Use DriveKit.reset() as your single reset point across all modules.

Removed in v3.0
What to do instead

DriveKitDriverData.reset()

Call DriveKit.shared.reset()

DriveKitChallenge.reset()

Call DriveKit.shared.reset()

DriveKitCoaching.reset()

Call DriveKit.shared.reset()

DriveKitDriverAchievement.reset()

Call DriveKit.shared.reset()

DriveKitGroup.reset()

Call DriveKit.shared.reset()

DriveKitTripAnalysis.reset()

Call DriveKit.shared.reset()

DriveKitVehicle.reset()

Call DriveKit.shared.reset()

DriveKitTripAnalysis

Several one-off methods have been merged into a single, structured call: getCurrentTripInfo(). This reduces the number of calls you need to make and gives you all the context about the current trip in one place.

Removed in v3.0
What to do instead

getCurrentStartMode() -> StartMode?

getCurrentTripInfo() β†’ access .startMode

getCurrentTripStartDate() -> Date?

getCurrentTripInfo() β†’ access .startDate

getLastTripPoint() -> TripPoint?

getLastTripPointOfCurrentTrip()

getTripResponseStatus(_:)

tripFinished(responseStatus:) β€” see TripResponseStatus

TripListener protocol β€” Updated Methods & Types

The TripListener protocol has been redesigned for clarity. The new methods provide richer state objects, so you get more context with less code.

Method Replacements

Removed in v3.0
What to do instead

tripStarted(startMode: StartMode)

tripRecordingConfirmed(state: DKTripRecordingConfirmedState)

tripCancelled(cancelTrip: CancelTrip)

tripRecordingCanceled(state: DKTripRecordingCanceledState)

func tripFinished(post: PostGeneric, response: PostGenericResponse)

tripFinished(responseStatus: TripResponseStatus)

Removed Classes & Enums

These types were tightly coupled to the old listener design. They are no longer needed.

Removed type in v3.0
What to do instead

CancelTrip (enum)

State is now carried by DKTripRecordingCanceledState

PostGeneric (class)

No longer needed - the new API handles this internally

PostGenericResponse (class)

Replaced by the cleaner TripResponseStatus

DriveKitVehicle

A property has been converted to a method to support electric vehicle context.

Removed in v3.0
What to do instead
Class

DKVehicleCategory.liteConfigDqIndex: String?

getLiteConfigDqIndex(isElectricCar:)

DKVehicleCategory

Data Access Layer (DB)

DriveKitDBAchievementAccess

Removed in v3.0
What to do instead
Module

.legacy

No longer used - remove any reference to it

DKRankingPeriod

DriveKitDBTripAccess

The trip data classes have been renamed to follow the DK naming convention used across the SDK. This brings consistency and avoids naming collisions in your project.

Removed in v3.0
What to do instead

Trip (+ nested classes)

Use DKTrip - see reference documentation

UI Modules

DriveKitCommonUI

Removed in v3.0
What to do instead

CircularProgressView.getScoreColor(value:steps:)

ConfigurationCircularProgressView.getScoreColor(value:steps:)

ScoreType (enum)

DKScoreType - same enum, new consistent name

DKScoreType.image() -> UIImage?

DKScoreType.gaugeImage() - clearer intent

DriveKitPermissionsUtilsUI

Logging control is now centralized in the DriveKit Core module β€” no longer split across the UI module.

Removed in v3.0
What to do instead

showDiagnosisLogs

DriveKit.shared.isLoggingEnabled()

configureDiagnosisLogs(show:)

DriveKit.shared.enableLogging() / disableLogging()

configureBluetooth(needed:)

Removed - no replacement needed, safe to delete

DriveKitVehicleUI

Removed in v3.0
What to do instead

configureVehiclePickerExtraStep(extraStep:)

Removed - no replacement, safe to delete the call

DKVehiclePickerExtraStep (protocol)

Removed - safe to delete any conformance

DriveKitDriverDataTimelineUI

Removed in v3.0
What to do instead

DriveKitDriverDataTimelineUI.scores: [DKScoreType]

Use DriveKitUI.shared.scores

Last updated

Was this helpful?