> For the complete documentation index, see [llms.txt](https://docs.drivequant.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.drivequant.com/vehicle/user-interface/ios/get-started.md).

# Get started

## **Prerequisite**

Before starting DriveKit Vehicle UI integration, make sure that you have initialized [Vehicle](https://docs.drivequant.com/vehicle/ios/get-started) and [Common UI ](https://docs.drivequant.com/common-ui/ios/get-started)components, especially if you have [disabled the SDK auto-initialization](/get-started-drivekit/ios/advanced-configurations.md#manually-initialize-the-sdk).&#x20;

## **Integration**

To add the Vehicle UI module to your app using **Swift Package Manager,** add `DriveKitVehicleUI` from repository: `https://github.com/DriveQuantPublic/drivekit-ui-ios.git` as dependency.

{% hint style="info" %}
On this [Github repository](https://github.com/DriveQuantPublic/drivekit-ui-ios), you can find a demo app and the source code of Vehicle UI that you can use as an example.
{% endhint %}

## Project configuration

{% hint style="warning" %}
In the [vehicle detail screen](https://docs.drivequant.com/vehicle/user-interface/ios/get-started#display-vehicle-detail-in-navigation-controller), 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`](https://developer.apple.com/documentation/bundleresources/information_property_list/nsphotolibraryusagedescription) and [`NSCameraUsageDescription`](https://developer.apple.com/documentation/bundleresources/information_property_list/nscamerausagedescription) in your `Info.plist` file.
{% endhint %}

## Initialization

If you have [disabled the SDK auto-initialization](/get-started-drivekit/ios/advanced-configurations.md#manually-initialize-the-sdk), the Vehicle UI module must also be manually initialized. In the application's AppDelegate file, import `DriveKitVehicleUI`:

```swift
import DriveKitVehicleUI
```

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

```swift
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:&#x20;

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

![](/files/Nd6ChbAU5iv6Rrg3V1SA)

### **Display vehicle detail**

To display the vehicle detail, just call the following method:&#x20;

```swift
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)
        }
    }
})
```

![](/files/c4reImV4OsG05hoCuDwZ)

### **Display vehicle picker**

To display [vehicle selection screens](https://docs.drivequant.com/vehicle/user-interface/ios/main-configurations#vehicle-selection-mode), just call the following method:

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


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.drivequant.com/vehicle/user-interface/ios/get-started.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
