Native Swift SDK Integration
This guide outlines the steps for integrating the Focalx Swift SDK into your native iOS applications.
Prerequisites
- Focalx library:
It will be provided by Focalx.
Focalx.ai supports os versions from iOS 10 and above!
Downloading and Adding the SDK
- Download the SDK:
Follow the below link to download the SDK compatible with Swift 5.2 or above: [Download Link](#).
- Add the SDK to Your Project:
Unzip the file and drag the FocalxSDK.xcframework directory to the “Frameworks” section in your Xcode project tree.
Configuring the Xcode Project
- Select Your Project:
In your Xcode project, select your application project in the Project Navigator (blue project icon) to navigate to the target configuration window.
Select the application target under the “Targets” heading in the sidebar.
- Add the Framework:
In the General panel tab, click on the “+” button under the “Frameworks, Libraries, and Embedded Content” section.
Find FocalxSDK.xcframework nested inside the “Frameworks” section.
Select FocalxSDK.xcframework, click “Add”, and ensure you select the “Embed & Sign” option.
Implementing the SDK in Your App
- Include the SDK:
In your app, wherever you want to present the damage detection model, include the SDK.
For Objective-C: @import FocalxSDK;
For Swift: import FocalxSDK
- API Token Generation:
Before showing the FocalX.ai damage guide, create a token and supply it to the SDK.
Refer to the API documentation for creating a token: Authentication API.
Integration Example:
For Objective-C and Swift, follow the provided code examples to integrate the SDK functionality.
// Objective-C Example Code Here NSMutableDictionary *dictionary = [NSMutableDictionary dictionaryWithObjectsAndKeys: "token":"SDK token got from backend", "reg_number":"BB423", "vin":"3742394ADCS", "mileage":"122323", "user_hash":"sjkf12324", "customer_num":"erio32133", "frame_num":"343", "process_id":"133", "meta_data":"Dictionary Data", "custom_images":true, "front_image":true, "front_right_image":true] // only token parameter is Mandatory in above dictionary [FocalxSDK showDamageGuideWithParams:self, parameters:dictionary]; // App (Self object) can implement the call back Delegate / protocol with class name FocalxcallBackResult, which has following methods. - (void)dismissFocalx; // this method gets invoked, when ever user comes out of the SDK without completing the inspection. - (void)inspectionCompletedWithInspectionID:(NSString *)inspectionID regNumber:(NSString *)regNumber error:(NSString *)error; // this method gets invoked, when ever user comes out of the SDK after completing the inspection. - **Note** self here is the current controller from where you want to present DamageGuide
// Swift Example Code Here let dictionary = ["token":"SDK token got from backend","reg_number":BB423,"vin":3742394ADCS,"mileage":122323,"user_hash":"sjkf12324","customer_num":"erio32133","frame_num":343,meta_data:"Dictionary Data","custom_images":true,"front_image":true, "front_right_image":true] FocalxSDK.showDamageGuideWithParams(caller: self, parameters: dictionary) // App (Self object) can implement the call back Delegate/protocol with class name FocalxcallBackResult //Has following methods. func dismissFocalx() // this method gets invoked, when ever user comes out of the SDK without completing the inspection. func inspectionCompleted(inspectionID: String,reg_number:String,error:String) // this method gets invoked, when ever user comes out of the SDK after completing the inspection. // When you send the custom_images as false you dont need to specify other images that you want to take it will automatically take all 16 images // When custom_images is true, we need to pass the image positions that you want user to take // Following Custom image parameters you can send when you want to customized which pics user should take let front_image = true let front_right_image = true let right_front_image = true let right_rear_image = true let rear_right_image = true let rear_image = true let rear_left_image = true let left_rear_image = true let left_front_image = true let front_left_image = true let dashboard_image = true let driver_seat_image = true let front_passenger_image = true let right_rear_passenger_image = true let left_rear_passenger_image = true let trunck_image = true
- Custom Image Parameters:
When custom_images is set to false, all 16 images will be automatically taken.
If true, you need to specify which images the user should take.
- App Transport Security (ATS):
NSAllowsArbitraryLoads: This Boolean value is used to disable ATS for domains not listed in NSExceptionDomains.
Remember to follow best practices for secure network connections in your app.