# Get started

## **Prerequisite**

Before starting DriveKit Challenge UI integration, make sure that you have initialized [Challenge](https://docs.drivequant.com/challenge/ios/get-started) and [Common UI](https://docs.drivequant.com/common-ui/ios/get-started) modules.

## **Integration**

To add the Challenge UI module to your app using **Swift Package Manager**, add `DriveKitChallengeUI` 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 also a demo application that contains the DriveKit challenge component. This code is open source and you can use it as an example.
{% endhint %}

## **Initialization**

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

```swift
import DriveKitChallengeUI
```

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

```swift
import DriveKitCore
import DriveKitCommonUI
import DriveKitChallengeUI

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

## **Display Challenge List**

To display the challenges list, just call the following method:

```swift
self.navigationController?.pushViewController(DriveKitChallengeUI.shared.getChallengeListViewController(), animated: true)
```
