The Driver Achievement UI SDK is available on Cocoapods master repo.
To access the framework in the repository, add the following lines to your Podfile:
target 'my-target' dopod 'DriveKitDriverAchievementUI'end
Then, run pod install
.
On a Github repository, you also have a demo app and source code of Driver Achievement UI that you can use as an example.
An initialization phase is required to use the feature included in the Driver Achievement UI SDK. In the application's AppDelegate file, import DriveKitDriverAchievementUI
.
import DriveKitDriverAchievementUI
Then, to initialize the Driver Achievement UI SDK in your app, you must call the initialization method in didFinishLaunchingWithOptions
method of your AppDelegate.
import DriveKitCoreimport DriveKitCommonUIimport DriveKitDriverAchievementUIfunc application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {DriveKit.shared.initialize()DriveKitUI.shared.initialize()DriveKitDriverAchievementUI.shared.initialize()...}
To override colors and texts in the Driver Achievement UI SDK, see Common UI configuration.
You can choose which streak theme you want to display in which order by calling the following method:
DriveKitDriverAchievementUI.shared.configureStreakThemes(streakThemes: [StreakDataType])
Accepted values:
.phoneDistraction
.safety
.acceleration
.brake
.adherence
.speedLimits
Default value:
[.phoneDistraction, .safety, .acceleration, .brake, .adherence]
For speedLimits streaks, make sure that the service is activated on your DriveQuant account.
You can choose which badge category you want to display in which order by calling the following method:
DriverAchievementUI.shared.configureBadgeCategories(badgeCategories: [DKBadgeCatergory])
Accepted values:
.generic
.ecodriving
.safety
.phoneDistraction
Default value:
[.generic
, .ecodriving
, .safety
, .phoneDistraction
]
Badges belonging to the generic category (.generic) are always displayed. It is not possible to hide these badges.
By calling the following method, you can choose which ranking types you want to display:
DriveKitDriverAchievementUI.shared.configureRankingTypes([DKRankingType])
Accepted values:
.ecodriving
.safety
.phoneDistraction
.speeding
Default value:
[.safety
, .ecoDriving
, .distraction
]
This method allows you to change the displayed periods of ranking:
DriveKitDriverAchievementUI.shared.configureRankingSelector(DKRankingSelectorType)
Accepted values:
.none
.period
Default value:.period(rankingPeriods: [.weekly, .monthly, .allTime])
If the DKRankingSelectorType
".none"
is selected, the period “weekly” will be taken into consideration for rankings.
This method allows you to choose the ranking depth you want to display:
DriveKitDriverAchievementUI.shared.configureRankingDepth(Int)
Default value: 5
Accepted values: from 5 to 20