DJI-UILibrary-iOS 4.4

DJI-UILibrary-iOS 4.4

LangLanguage Obj-CObjective C
License Custom
ReleasedLast Release Dec 2017

Maintained by DJI SDK.

  • By

DJI Mobile UI Library for iOS

What is This?

The UILibrary is a suite of product agnostic UI objects that fast tracks the development of iOS applications using the DJI Mobile SDK.

Get Started Immediately

Run Sample Code

Developers can download the latest Sample Code from here.

Developers will need to setup the App Key by editing the sample code's info.plist, after generating their unique App Key.

For the Objective-C sample app, the key value DJISDKAppKey should to be added to Info.plist with your unique app key as a string.

For the Swift sample app, the DJISDKAppKey is present in the Info.plist - developers just need to add their unique key. In both cases developers will still need to update the Bundle Identifier .

One of DJI's aircraft cameras will be required to run the sample application.

Development Workflow

From registering as a developer, to deploying an application, the following will take you through the full Mobile SDK Application development process:

Learn More about DJI Products, UILibrary and the Mobile SDK

Please visit DJI Mobile SDK Documentation for more details.

Core Concepts

UILibrary was designed around core concepts that help categorize the kind of UI elements available and their expectable behavior both at runtime and while being customized.


Widget represent the major part of the UI. They are small view which display a specific piece of information.

They may also offer a precise control point to a specific action - for instance, take off.

Widgets offer many different customization angle. You may simply edit the image assets provided inside the UILibrary framework, change the visual rendering of the information consumed or provide your own information logic and reuse the existing rendering.

Widget Collections

Widget Collections are grouping objects which allow the developer to easily display a set of widgets in an orderly fashion without the hassle of building the organization mechanism.

They also provide structure for the widgets to look alike each other while inside the same collection and apply an interaction level to all as to offer potential customization points in behavior.

You can also create your own collections and add pre-existing widgets to them.


Panels are more complex control elements. They are usually a lot more enclosed because they handle very complex logics. They can be placed in your app's UI using native methods.


Contents represent the element that usually populates the background of the UI. FPV is the most commonly used today. They come ready to use and may have direct interactions with other widgets/panels.

Default Layout

The default layout is a fully functioning mini-DJI Go. It uses all the elements of the UILibrary to give you the foundation of your app.

The default layout is easily changeable and configurable.


Finally, the Model is a high level data accessor living inside the UILibrary and directly built on top of the mobile SDK.

It registers intentions from UILibrary objects and provides the data to them while handling most of the SDK's life cycle events.

It is heavily used by widgets today and we recommend you using it in your custom work in the future.


You can get support from DJI with the following methods: