# Sample Application

{% file src="<https://3902005046-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxiEW2bRNeDz3JZIL41gD%2Fuploads%2F8IVzfuorkDKjjzHZgzIp%2Fid_recognition_ios.mp4?alt=media&token=017ad203-d9f9-4e8c-b7e6-375818bb9739>" %}

## Build Project

### - Download and Open Project

* Download [**IDCardRecognition-iOS.zip \[147M\]**](https://www.dropbox.com/scl/fi/c8fru8brv2i1wjb1mqm6a/IDCardRecognition-iOS.zip?rlkey=26peiejtgnxj4wd3dy3x7oi06\&st=tec027ba\&dl=0)
* Open the `IDCardRecognition-iOS` project in Xcode.

### - Setting Up SDK License Key

* Add License key:

{% code title="ViewController.swift" lineNumbers="true" %}

```swift
var ret = IDSDK.setActivation("QbxKmXkM8E2X+CzScRgJZlVxWxIlQL5Scimac/QMNoCeCEzEyCbrIdd0rKU09QO5Zz9/NiSGk0xd" +
     "T5TmKuLIAiwiac1GmOcF6yRH8+FeCfLAlX2yoyUI3EuXxgiJ9T+ZQD+y6cW9wOlO5vRxPtPD4H3t" +
     "xTXkgrUzvKvMNI3e+08jfb7WfJ0VTaL3qzcZtQa9btQT1bNl2baUrWlA5W08P8GETFJq4mjHHusQ" +
     "GUGx4a4OF78Rs2S3lbMs9XoeKy+aJEET/rPiubCf7Br1hytmYg9CDi+3mtdewL+6OCzWVntdKL4h" +
     "IRqd+LAWqGgBYbiVzM9lstNiqCuvDE0bJ4Fn0w==")
```

{% endcode %}

* Build Project.

### - Integration Guide

* Activate and Initialize ID SDK

```swift
override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view.
    
    var ret = IDSDK.setActivation("QbxKmXkM8E2X+CzScRgJZlVxWxIlQL5Scimac/QMNoCeCEzEyCbrIdd0rKU09QO5Zz9/NiSGk0xd" +
                       "T5TmKuLIAiwiac1GmOcF6yRH8+FeCfLAlX2yoyUI3EuXxgiJ9T+ZQD+y6cW9wOlO5vRxPtPD4H3t" +
                       "xTXkgrUzvKvMNI3e+08jfb7WfJ0VTaL3qzcZtQa9btQT1bNl2baUrWlA5W08P8GETFJq4mjHHusQ" +
                       "GUGx4a4OF78Rs2S3lbMs9XoeKy+aJEET/rPiubCf7Br1hytmYg9CDi+3mtdewL+6OCzWVntdKL4h" +
                       "IRqd+LAWqGgBYbiVzM9lstNiqCuvDE0bJ4Fn0w==")
    print("set activation: ", ret)
    if(ret == SDK_SUCCESS.rawValue) {
        ret = IDSDK.initSDK()
        print("init sdk: ", ret)
    }

}
```

* Extract Data from Camera Frame

```swift
func captureOutput(_ output: AVCaptureOutput, didOutput sampleBuffer: CMSampleBuffer, from connection: AVCaptureConnection) {
    if(self.cameraRunning == false) {
        return
    }
    
    if(Date().timeIntervalSince1970 - startTime <= 1) {
        return
    }

    guard let pixelBuffer: CVPixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer) else { return }
           
    CVPixelBufferLockBaseAddress(pixelBuffer, CVPixelBufferLockFlags.readOnly)
    let image = CIImage(cvPixelBuffer: pixelBuffer).oriented(CGImagePropertyOrientation.right)
    
    let context = CIContext(options: nil)
    guard let cg = context.createCGImage(image, from: image.extent) else {
        CVPixelBufferUnlockBaseAddress(pixelBuffer, CVPixelBufferLockFlags.readOnly)
        return
    }

    let capturedImage = UIImage(cgImage: cg, scale: 1.0, orientation: .upMirrored).fixOrientation()
    CVPixelBufferUnlockBaseAddress(pixelBuffer, CVPixelBufferLockFlags.readOnly)
    
    let result = IDSDK.idcardRecognition(capturedImage) as NSDictionary
```

***

## Application UI

<div><figure><img src="https://3902005046-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxiEW2bRNeDz3JZIL41gD%2Fuploads%2Fie5t9Q882BdGlwI1q9Sh%2Fid_recognition_ios_1-portrait.png?alt=media&#x26;token=af280bf3-7a39-4b95-9f4f-7ed0324c246d" alt=""><figcaption></figcaption></figure> <figure><img src="https://3902005046-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxiEW2bRNeDz3JZIL41gD%2Fuploads%2FHiN2rAWgGm3on8xiM18h%2Fid_recognition_ios_2-portrait.png?alt=media&#x26;token=f66550bc-d803-4e06-a76c-54d66479a163" alt=""><figcaption></figcaption></figure> <figure><img src="https://3902005046-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxiEW2bRNeDz3JZIL41gD%2Fuploads%2F8tYqnGqwj7x1lmmNZFPZ%2Fid_recognition_ios_3-portrait.png?alt=media&#x26;token=dd30e5a8-897b-4790-a51e-266553778843" alt=""><figcaption></figcaption></figure> <figure><img src="https://3902005046-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxiEW2bRNeDz3JZIL41gD%2Fuploads%2FbnHIOHQrjxaMlTdXAWGx%2Fid_recognition_ios_4-portrait.png?alt=media&#x26;token=3903ea7e-9811-419a-8ad2-4287738a1860" alt=""><figcaption></figcaption></figure> <figure><img src="https://3902005046-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxiEW2bRNeDz3JZIL41gD%2Fuploads%2FOTyl1lr4iuhdi6nAqOII%2Fid_recognition_ios_5-portrait.png?alt=media&#x26;token=38b82b09-ce23-4e6d-bd8c-9c6c027f7cc7" alt=""><figcaption></figcaption></figure> <figure><img src="https://3902005046-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxiEW2bRNeDz3JZIL41gD%2Fuploads%2FPVKKJ8TdyuTZoXDXnYC6%2Fid_recognition_ios_6-portrait.png?alt=media&#x26;token=89afb3ed-523b-4be7-bec4-1df317761abf" alt=""><figcaption></figcaption></figure></div>
