Developing with the BlackBerry IoT Platform SDKs

So you want to develop an application to connect to the BlackBerry IoT Platform. Why? At the simplest level, the BlackBerry IoT Platform SDKs allow your application to connect to and store device-specific information in the cloud. You can use the BlackBerry IoT Platform SDKs to manage, analyze, and share the stored data.

Example

The BlackBerry IoT Platform provides a number of different SDKs for integrating cloud connectivity functionality into your applications. To use any of the BlackBerry IoT Platform APIs, your client applications must use OAuth 2.0 for authentication and authorization. For more information about authenticating with the BlackBerry IoT Platform, see Understanding Authentication.

The BlackBerry IoT Platform SDKs that are available are as follows:

  1. HTTPS REST API
    • A RESTful API that's useful for connecting web applications and REST-based middleware to the BlackBerry IoT Platform.
  2. Android Client Library
  3. A Java client library that allows you to connect to the BlackBerry IoT Platform from a Java app running on Android.
  4. AngularJS Client Library and Node.js Module for user-based authentication
    • JavaScript libraries that allow you to connect to the BlackBerry IoT Platform from an HTML app.
  5. QNX Agent
    • A daemon that allows you to quickly connect to the BlackBerry IoT Platform and uses Persistent Publish/Subscribe (PPS) objects. This daemon is targeted for devices that run QNX Neutrino RTOS.
  6. BlackBerry IoT Platform Client Library
    • A C-based API that's useful for writing applications targeted for embedded devices.

It's important to mention that the HTTPS REST API is authoritative. That is, the C library, JavaScript libraries, Java library, Android Library, and QNX Agent use the REST SDK as part of their internals.

Understanding the BlackBerry IoT Platform SDKs

You can create applications that connect with BlackBerry IoT Platform. The applications can be installed on any number of devices, such as:

The SDK that you choose depends on the client platform that you want to use. If you develop for QNX Neutrino-based clients, you can also integrate BlackBerry IoT Platform functionality using the QNX Agent. For information about developing applications with QNX Neutrino, see the QNX documentation. Both QNX Neutrino-based clients and Linux-based devices can use the BlackBerry IoT Platform Client Library to connect to the BlackBerry IoT Platform integrating cloud functionality. It's worthy to note that any operating system that supports ANSI-C, libcurl, and libssl libraries can use the BlackBerry IoT Platform Client Library. Depending on the type of application you are building, you can use these BlackBerry IoT Platform SDKs:

Example

To understand how to use any of the SDKs, it's best to be familiar with the Model-View-Controller (MVC) design pattern. Based on the MVC design pattern, here's how you would set up an application:

When possible, you should integrate the model layer at the application framework level to make it easy to create connected applications. Common platforms, such as Android, BlackBerry 10, and iOS are supported in this manner. For example, if you use the BlackBerry IoT Platform Client Library, your MVC design may look like the following diagram:

Example

Getting ready to develop

To get access to any of our SDKs, contact a representative from our sales team. Depending on the type of client application you write, you may need to request one or more SDKs.

After you have determined what your application is targeted for, you should choose one of the following the BlackBerry IoT Platform SDKs to work with:

Regardless of the SDK that you choose, you require the following items to use any of the BlackBerry IoT Platform SDKs:

Here's what the API SECRET and API KEY look like from the administration console:

Example

If you're authenticating from the device directly (device-based authentication), you also require a private key and certificate. To authenticate directly from a device, you must store the private key, certificate, API SECRET, and API KEY on it. For more information about device-based authentication, see Overview of device-based authentication.

For more information about the authentication, see Understanding authentication.

Testing applications

To test your client applications, some configuration in the administration console is required. The preparation to test your application depends on how you have implemented your application. For example, if you are testing an application that requires a user to log in, you won't need to add a device entity for testing.

Here's a list of some of the things that you need to do to test your application:

Note: By no means is the above list exhaustive. There are probably (many more) use cases and scenarios to test based on the complexity of your application.

You should also have the available hardware devices to test with when applicable. For example, if you are testing integration with an appliance or device, you should do the final testing on the hardware. If you are testing with a QNX Neutrino-based system, have a device that runs the OS for testing purposes.