Blackberry Development

LIVE Enterprise Developer Webcast: Creating secure, cross-platform, enterprise applications using the new BlackBerry Dynamics Plugins for Cordova

Join us, as a member of the BlackBerry Solution Architect team guides you through an interactive journey on how to quickly secure your application using the new BlackBerry Dynamics Plugins for Cordova. We’ll be covering everything from Getting Started with the tools, setting up your environment, debugging, and most importantly working with the Plugins. Whether you’re new to BlackBerry Dynamics development, or a veteran, this live coding demo will offer you an inside perspective on how to quickly and efficiently build apps using our Cordova Plugins.

We will explore:

  • Installation & Configuration of the tools
  • Integrating the BlackBerry Dynamics Plugins
  • Testing & Deploying
  • Key Development Resources

WHEN: March 28, 2017 at 11:00 AM ET

Register and Join the Webcast HERE.


Need Development Help? The BlackBerry Developer Community Forum has your Answer…

Join the conversation, engage with peers, share product ideas, and get your app development questions answered. This free BlackBerry Developer Program resource allows you to be part of a Developer Community that is at the center of all the information you’ll need to stay connected with the World’s leading Secure Development Platform for Enterprise. Read more about the Developer Community on our blog, and we encourage you to follow the Developer Community forum and join the conversations happening right now.

Source: Developer Blackberry

Business Apps – Overview of Managed Android Devices

By: BlackBerry Elite, Ekke Gentz  / orgionally posted here on Mar.15, 2017.

If you’re developing mobile business apps sooner or later customers will request to debug, build and run on managed devices. This blog post is focused on Google for Work | Android (aka Android for Work).

Google for Work | Android

There are different ways to run work applications: devices may only contain work apps or private and work apps are installed together. From my experiences in most cases there are private and work apps together on devices. Read more about EMM (Enterprise Mobile Management) and different scenarios here.

There are some EMM solution providers:

  • BlackBerry
  • Mobileiron
  • VMware AirWatch

BlackBerry UEM 12.6

My examples are based on BlackBerry UEM 12.6 (formely known as BES 12)

You can try out UEM for 30 days (Cloud version) or 60 days (on-premises) for free.

Using a managed device is like working behind the firewall via VPN, but all is transparently managed by the EMM solution provider.

EMM Admin manages users, user groups, devices, policies and apps. Here you can download the policies for BlackBerry UEM. Get an overview of BlackBerry UEM here.

Development Stages (Dev, Test, Production)

Developing a new app there are typically 3 stages:

  1. develop UI with MockUp data (no access to servers needed)
  2. test against test environment
  3. release for production environment

Stage 1 I’m using GooglePlay Closed Beta Test to deploy the apps to beta testers from customer. Adding testers only gMail address is needed.

For stages 2 and 3 your device must be activated as Android for Work device or you should request a device to test on from your customer. This is the only way to get access to data servers behind the firewall – in most cases there will be no URL you can use from outside. One device can only be activated as work device for one server (BlackBerry UEM).

It’s highly recommended to test your APP as Work APP – the admin can forbid features (Bluetooth, NFC, Camera, …)

To manage apps your customer has to use a Google developer account to be able to publish apps through Google Play for Work.

Multi Android Package Names in Manifest

Attention: you must change the Android package name to enable your customer publishing the app to Google Play for work because the package name from stage 1 is already connected to your own Google developer account from Beta testing.

Also your Enterprise Customers can have different environemts for dev, test, production with different Google Developer Accounts to get a specific Play Store for Work for each environment. This means you must build releases for up to three or more different package names. Changing the package name manually in Android Manifest is not so comfortable. You can have a dynamic way following this blog article.

Best would be Qt Creator supports this directly using variables in .pro. see QTCREATORBUG-17863

Develop – Test – Release Workflow for Work APPs

Here’s an example workflow:

  • add your APP to Google Play Closed Beta Test (Android package name: my.example.beta)
  • deploy updates to beta testers until stage 1 finished
  • build release (Android package name: my.example.test) and send APK to your customer
  • your customer publishes APP to GooglePlay for Work
  • your customer creates user and profile for you and adds the APP to your user or user group
  • your customer sends an email to activate a device
  • you activate your device and install the APP from Google Play for Work on your device
  • now you can develop, build and run your APP from Qt Creator
  • build update releases and send to your customer
  • your customer publishes update to Google Play for Work so others can test your update

Hint: you can only build and run your app as work app if customer has published your app once to Google Play for Work and you installed it once !

Following pages will explain the steps in more detail:

Source: Developer Blackberry

Attention BlackBerry Dynamics Android Developers – SDK URL Update

Attention Android developers who are using BlackBerry Dynamics and installed the BlackBerry Dynamics SDK using Android SDK Manager. On March 22, 2017, we will be performing another step in the rebranding process (from Good Dynamics to BlackBerry Dynamics), which will include a change to the website domain.  This change will impact the Android SDK Manager as the user defined URL you added will no longer be available.  The impact to you will be that your Android SDK Manager will not detect updates to the BlackBerry Dynamics SDK.  The new URL is:

Along with the URL update, we are changing the way we handle export control restrictions. Instead of having to log in to the update site, we are now using IP geo-location blocking.  This means you won’t have enter your login credentials every time you check for updates.

The good news is you can easily update the user defined URL you have configured, without re-installing the BlackBerry Dynamics SDK.  Here’s how:

  1. Launch Android Studio
  2. Click on the Tools menu, select Android and then click on SDK Manager.

3.  Click on the SDK Update Sites tab.

4.  Select the BlackBerry Dynamics update site and click on the Edit button.

5.  Replace the existing URL with the new one, which is:

6.  Click the first OK button.

7.  Click the second OK button.

Your BlackBerry Dynamics SDK update site URL is now updated to the new location, allowing you to continue to receive notifications when we post new versions of the SDK.


Need Development Help? The BlackBerry Developer Community Forum has your Answer… Join the conversation, engage with peers, and get your app development questions answered.  Developer Community forum

Source: Developer Blackberry

BlackBerry World Spring App Picks

Birdie Up:

The wait is finally over! The first flowers and grasses awaken from hibernation and a cute little birdie too. After the long winter, it is hard to make the first flight attempt. Birdie Up is a simple yet addictive game. With a tap on the screen, the tiny bird makes a flap with its wings. The faster you tap, the faster the bird flies above and you get a bonus score. Try to get as high you can to beat your own high score and don´t be too upset if you lose. After all, it is spring time.

РicMix for BlackBerry 10:

A picture is worth a thousand words, but multiple pictures in fancy frames, text caption and photo effects, are worth a MILLION stories. This spring, capture the beauty of all the blossom with PicMix. Combine your favorite photos into custom frames, finish it with a touch of fancy effects and share it with your friends on social media. You can even set it as your BBM™ or Twitter profile pictures. With many more features to play with, capture the scenery this spring and bring it to life with PicMix.


Springy is a fun little pet that likes to nibble on your finger. Playing this addictive game will wear your fingerprints off your fingers. Just move your finger around the screen for 20 seconds so he can’t touch it. If you lift your finger off the screen or move it into the status bar area, then the game is over. The closer Springy gets to your finger, the more points you get. Occasionally, a wall will randomly appear. Bounce Springy off the walls to get extra points. This spring, enjoy this enjoyable time passer on those rainy days.

Rainy Day Theme: (BBOS only)

With the change in seasons it is only right to spice up the look of your BlackBerry device. So, this spring enjoy the monsoon with the Rainy Day Theme. This amazingly beautiful theme consists of rain falling on the ground and the beautiful wet glass wallpaper refreshes your mood and mind from all the outside noise. With features like high quality pictures, new clean and beautiful OS7 icons, and custom in call and outbound screens, your BBOS device will look as mesmerizing as ever!

Other apps worth checking out:


Source: Developer Blackberry

Securely Connecting to Enterprise Application Servers for BlackBerry Dynamics Apps

Today, I’d like to introduce the BlackBerry Dynamics Secure Communication APIs. BlackBerry Dynamics provides APIs to protect data in transit when making a socket or HTTPS request. When these APIs are used to send data from a client application, BlackBerry Dynamics encrypts and sends the data securely to enterprise application servers behind the enterprise firewall.

The following diagram illustrates how BlackBerry Dynamics applications can connect to application servers that are behind the enterprise firewall or on the Internet using the same APIs.

To reach servers behind the corporate firewall, connections go through a BlackBerry Dynamics Proxy server(GP) with options below:

BlackBerry NOC(Network Operation Center)

BlackBerry NOC provides the secure communication infrastructure. All BlackBerry Dynamics applications maintain a persistent connection to NOC by using SSL over TCP.

Direct Connect

IT Admins can also enable a BlackBerry Dynamics app to connect directly to a GP server without connecting through the NOC. Some organizations have additional data privacy requirements, restricting user data leaving from their networks therefore do not want their users and enterprise data to be routed via the BlackBerry Dynamics NOC.

These routing options can be configured in the UEM(Unified End-Point Manager) or stand-alone GC(Good Control) by IT admins and are transparent to the application code as the BlackBerry Runtime will handle the appropriate route automatically.

Let’s dive into the environment set up and platform specific APIs to access BlackBerry Dynamics secure communication. To establish the secure communication between your BlackBerry Dynamics app and enterprise application servers, the server information (host name and port) are configured in the enterprise management console such as UEM or GC.

Once UEM or GC server is configured for your application server(s), your app can use the BlackBerry Dynamics secure communication APIs to access the server(s). The platform specific APIs are listed below:

In the SDK for Android, you can use:

  • GDSocket class for socket connections and
  • GDHttpClient class for HTTP requests.

In the SDK for iOS, you can use:

  • GDSocket class for socket connections and
  • GDURLLoadingSystem with the native HTTP Request framework such as NSURLSession or NSURLConnection class. At the time of writing this post, NSURLSessionDownloadTask is not yet supported.
  • GDHttpRequest class for an alternative stand-alone interface

In the Cordova Plugin for Android or iOS, you can use:

  • GDSocket class for socket connections and
  • GDXMLHttpRequest class for HTTP requests

Secure communications APIs are available for Xamarin, Windows, macOS as well. For more details, check out the BlackBerry Dynamics Resources page.

That’s it for now! Stay tuned for our next blog…

Click here to join our Developer Community forum and the conversation!


Source: Developer Blackberry

Recorded Enterprise Developer Webcast: BBM Enterprise SDK allows you to securely add voice, video, and messaging based workflows to your apps and services

Today, it is imperative that you provide rich, high touch experiences as part of your apps and services. Even in the most secure environments, users want immediate access to information from their peers and service providers. Providing this rich end user experience with real time communications will drive adoption and loyalty for your offerings. How can you provide multi-level communications securely within your apps? Enter communication platforms as a service (CPaaS). CPaaS allows developers to add voice, video, and messaging to their applications thru APIs. In this webinar learn best practices for how you can bring rich new interactions to your apps and services. Understand how CPaaS offerings can immediately bring new levels of interaction to your apps, and create new types of service models for your business.

Webcast topics:

  • How to integrate secure, enterprise-grade communications functionality into applications with ease
  • The advantages of using a proven IP-based communication stack for voice, video, and messaging
  • Best practices for leveraging a secure communications framework, which can free up valuable development time and resources
  • Understand the risks and rewards of providing real time, multi-level communications in your apps and services

BBM Enterprise SDK allows you to securely add voice, video, and messaging based workflows to your apps and services

Watch it HERE


Click here to follow our Developer Community and join the Conversation!

Source: Developer Blackberry

New Cordova Getting Started Guides for BlackBerry Dynamics

Building apps with the BlackBerry Dynamics Plugins for Cordova just got easier with the addition of our updated Getting Started Guide for Cordova!

Recently our developer website received a major update in the form up Cordova content. Developers can now follow a brand new getting started guide which will walk them through all the steps necessary to secure their Cordova based applications with the BlackBerry Dynamics SDK.

The guide covers every aspect of developing:

  • Choosing which platform is right to build on
  • Installation and Configuration of the tools
  • Development / Integration of the Plugins
  • How to Test and Deploy your application
  • Success and Next Steps

Of course, the best way to test out the Getting Started Guide is to start building apps today! Head over to the developer website and try the Getting Started Guide for yourself.

Getting Started Guide for Cordova

Source: Developer Blackberry

Developer Community Forums… Lead Your Development Conversation



Join the conversation, engage with peers, and get your Enterprise app questions answered. Be part of a Developer Community that is at the center of all information you need to stay connected with direct information for the world’s leading secure Development platform for Enterprise apps.

Get engaged with expert Devs from around the world including BlackBerry developers and technical experts, and updates on the latest news, code samples and resources as well as industry peer collaboration. Whether you are new to the platform or a seasoned developer, this community is a great way to keep plugged in to what’s happening on a regular basis. Also, you can add critical feedback ideas that can be incorporated in future product updates. Your input matters and is a valuable contribution to shaping solutions to similar challenges other developers are facing during their development project.


Remember… its not all work! Have a bit of fun, and gain points as you engage in the community, answer questions and connect with others with the same interests. These points add up giving you increased status, and possible nominations for our app awards handed out at our BlackBerry Developer Summits.

It’s easy… Click here to join the Developer Community and the Conversation!

Jump in and take a Developer Community Poll – How do you like to consume our Development content?


Source: Developer Blackberry

BlackBerry Dynamics Sample App: OpenURL (iOS)



Screenshots of the splash screens

Of the many things that can be done with Blackberry Dynamics SDK, I wanted to demonstrate how to use the OpenURL API method in an iOS project.

The intended providers of this service would be browser-like applications that support HTTP/S protocol and can display the downloaded content. The caller application should yield the foreground to the service provider, so that service provider can display the content downloaded to the user.

There are numerous BlackBerry Dynamics sample apps made available to enterprise developers which demonstrate how the SDK easily integrates secure functionality within your app. Today we’ll focus on the OpenURL sample application and its usefulness.

After installing the Blackberry Dynamics SDK version the moment) to your XCode IDE, you can reference the collection of sample applications within the /Users/{UserName} /Library/ApplicationSupport/BlackBerry/Good.platform/iOS/Examples/objective-c directory.

Before running the sample apps you’ll need to configure them according to your use. In order to do so:

  1. Open and in XCode.


2.  Change their Bundle Identifiers for both the apps.



3.  Change their GDApplicationID and CFBundleURLTypes from Info.plist for both the apps.


4.  Next thing to change is the Application Identifiers in both applications in the Constants.h file i.e kGreetingsClientAppId in GreetingsServer app and kGreetingsServerAppId in GreetingsClient app.

5.  Register the apps with the Good Control Server and you have two interacting applications to play with. Refer to the Getting Started Guide.

That is how we implement OpenURL in Objective-C. If you found this helpful please refer to our Github account and BlackBerry Dynamics developer website.

Happy Coding!

Source: Developer Blackberry

Charts for BlackBerry 10 Apps

Adding charts to apps has always been a problem for developers. There isn’t an easy solution that allows for simple integration of charts in a BlackBerry 10 app. To solve this problem I have developed, and added to the Cascades examples on GitHub, a project that shows how to insert a chart with a few simple steps, allowing the possibility of reusing existing code. The type of charts available are:

  • Bar
  • Line
  • Radar
  • Polar Area
  • Pie & Doughnut
  • Bubble

The system is based on the integration of a web page inside a QML page in which the chart will be shown using a WebView component. You create the datasets, the labels and the options of the charts inside a Javascript function in the QML page which is sent to the HTML page. In that HTML page, another Javascript function catches, evaluates, and uses them using the ChartJS library. Then it creates and shows the final chart inside the app. The HTML page can return a response message to the WebView that you could use for a several purposes: one of them is to encode the chart to Base64, to save the image of the chart.


The Javascript library used is ChartJS. The library is simple to integrate and to use. See the link for the complete documentation and all relative examples: (

Using ChartJS is simple and the official documentation of the library is very rich. The only modification that you must do to your HTML page is adding code to get the messages that the WebView sends (see this link: to understand how the WebView communicates with a HTML page).

To catch the message containing all the data for the creation of the chart, we should insert the following Javascript function inside the HTML page. The body of this function will contain the code for the display of the chart.

navigator.cascades.onmessage = function onmessage(message) {
   /** create the chart here **/

In practice, we see that the HTML page will always remain the same, except some modifications for specific uses (for example, the settings of the tooltips, the visualization of the axis, and for the labels). The Javascript code included in the QML for the generation of the parameters that build the chart will change relative to our chart settings.

To generate these parameters you must insert a WebView component in the QML page with the path to the HTML file assigned to the URL property (it’s necessary to add local: at the path. Ex: “local:///assets/html/crazyCharts.html”). You must create a Javascript function (inside the project that is named as example: createChart) which has the task of generating the parameters for the chart. They’re the datasets that you want to display, the labels to visualize on the horizontal axis, and the options that you want to assign to the chart. This function will convert the created object into a JSON string, which is sent to the HTML page.

In the WebView event onLoadingChanged the function just created will be called to generate the chart when the HTML page loads.

To summarize:

  1. The createChart function generates everything necessary for the creation of the chart (datasets, labels, and options), converts the Javascript objects in a JSON string, and sends it to HTML page with the WebView postMessage event.
  2. The HTML page catches the event from the attached function with navigator.cascades.onmessage and creates the chart with the data decoded from the received JSON string.
  3. Optionally, the HTML page can return a Base64 format string that encodes the image of the chart.

We mentioned how the HTML page response sent back to the WebView may have several uses. Indeed, in some situations, it’s necessary to get the image of the chart just created to save or use it inside the app. For this we can use toBase64Image() a method, available from the ChartJS library, that encodes the image in a Base64 string.

After the creation of the chart, the Javascript function of the HTML page converts the chart into a Base64 string and sends it as the response to the WebView using the function navigator.cascades.postMessage(base64string); The WebView receives the response in the event onMessageReceived and passes the obtained string to a C++ method for the conversion and saving of the image in PNG format. This function takes the Base64 string and the path where the image will be saved as input parameters, and it returns true or false in case of successful or not.

In this way, it’s possible to use the image inside the app or to share it.

I’ve created an example project in the Cascades-Community-Samples on GitHub ( with the name ChartsForBB10. The app is composed of 7 Tabs, 6 of them for the creation of each supported chart type, and the seventh Tab for viewing custom charts and the optional saving function for each chart.


Source: Developer Blackberry

These events allow to you to share time with other replica watches sale watch lovers as well as learn about what the brands are up to. In the process, you'll get treated to rolex replica sale fabulous dinners, meet celebrities, receive gifts, and feel like a valued customer who the brands really want to rolex replica sale have a relationship with. Depending on where you live and the brands you like to purchase from, these events can be quite frequent, and also really fun. Their value should not be underestimated, and again, if you don't purchase rolex replica sale watches in an "official manner" you'll never be included. Personally, I have to say that while I don't like spending more money than I need to, the value of these above unexpected benefits, in many instances, can make up for the discounts replica watches available at gray market retailers when you want to buy a new watch. In a sense, each time you rolex replica sale purchase a high-end timepiece, you are designating yourself as part of a elite group of replica watches sale people who have the appreciation and resources for luxury items.