Get started

Prerequisite

Before starting DriveKit Vehicle UI integration, make sure that you have initialized Vehicle and Common UI components, especially if you have disabled the SDK auto-initialization.

Integration

The Vehicle UI module is available on Cocoapods master repo.

target 'my-target' do
  pod 'DriveKitVehicleUI'
end

Then, run pod install.

On this Github repository, you can find a demo app and the source code of Vehicle UI that you can use as an example.

Project configuration

In the vehicle detail screen, it is possible to change the picture of the vehicle. Because of this possible access to the user's Photo library or the camera, you must add the keys NSPhotoLibraryUsageDescription and NSCameraUsageDescription in your Info.plist file.

Initialization

If you have disabled the SDK auto-initialization, the Vehicle UI module must also be manually initialized. In the application's AppDelegate file, import DriveKitVehicleUI:

import DriveKitVehicleUI

Then, to initialize Vehicle UI module in your app, you must call the initialization method in didFinishLaunchingWithOptions method of your AppDelegate:

import DriveKitCore
import DriveKitCommonUI
import DriveKitVehicleUI

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    DriveKit.shared.initialize()
    DriveKitUI.shared.initialize()
    DriveKitVehicleUI.shared.initialize()
    ...    
}

Display vehicle list

To display the vehicle list to the driver, just call the following method:

self.navigationController?.pushViewController(DriveKitVehicleUI.shared.getVehicleListViewController(), animated: true)

Display vehicle detail

To display the vehicle detail, just call the following method:

DriveKitVehicleUI.shared.getVehicleDetailViewController(vehicleId: viewModel.trip.vehicleId, completion: { [weak self] viewController in
    DispatchQueue.main.async {
        if let vehicleDetailViewController = viewController {
            self?.navigationController?.pushViewController(vehicleDetailViewController, animated: true)
        }
    }
})

Display vehicle picker

To display vehicle selection screens, just call the following method:

DKVehiclePickerNavigationController(parentView: <UIViewController>, detectionMode: <DKDetectionMode>, vehicle: nil, completion: {
    // End of vehicle selection
})

Last updated