Developing Enterprise Apps for the Work Space of BlackBerry 10 Part 2: Application Invocation, Push, & Networking Constraints

Enterprise

Welcome to Part 2 of our Developing Enterprise Apps for the Work Space of BlackBerry 10 series. The goal of this series is to help lay the foundation needed for you to successfully develop enterprise solutions for BlackBerry 10. By now, I hope you’ve had a chance to view Part 1 to pick up some insights on File System Access & Application Testing in the Work Space. That post, like this one, covered considerations that should be kept in mind when building Enterprise apps, targeted for deployment to the work space of BlackBerry Balance enabled devices. In Part 2, we’ll cover Push for enterprise apps, Application Invocation, and Networking constraints.

Application Invocation

One of my favorite BlackBerry 10 features from the development perspective is the Invocation Framework. It helps developers avoid recreating the wheel by granting them the ability to leverage existing functionality of core apps (eg. native calendar, address book, and more.) as well as custom built applications. For example, if you’ve built an app that needs to be able to read .pdf files, you could of course take on the task of writing the logic yourself so that your app can process, render, and display the PDF files to the user. However, by using the invocation framework there’s no need to start from scratch. You can invoke an already existent PDF reader and have that invoked app read & display the file for users.

part2-workspace-w600

This concept applies to both the work and personal space. However, when you’re developing apps for the company administered work space, you have to ensure that you work with BlackBerry Enterprise Service 10 administrators to ensure that any app you’re invoking will be deployed to the work space. You should even consider the version of the app you’re invoking; ensuring it’s the same version that will be deployed by the BlackBerry Enterprise Service 10 admin will save you future headaches.

Push

Push is one of the most powerful features of the BlackBerry toolset. It allows you to proactively, securely, and efficiently distribute data to your application. It has minimal battery impact since applications do not have to be running in order to listen for and receive data. On the device, the Push Service (part of the previously discussed Invocation Framework) receives the push and wakes up the app, delivering the data payload at that point. But, it’s important to take into account that Push for enterprise apps differs from Push for personal applications. Push for apps in the personal space is done using the BlackBerry Internet Service, our public Push solution. As a developer you’re required to register for usage of this channel. Users of apps leveraging the BlackBerry Internet Service can opt in/opt out of receiving data via this channel in the Application Settings.

For enterprise apps, Push uses your company’s infrastructure for data distribution, rather than the public BlackBerry Internet Service. No registration is required for using Push in the enterprise scenario since when you deployed the BlackBerry Enterprise Service 10 environment in your organization you got the automatic benefit of Push capabilities. Follow these steps to activate Push capabilities in your enterprise app for the work space:

  1. On the client side, enable your app to listen for Push data
  2. On the server side, build a Push Initiator to Push data

Read more on Push here.

Networking Constraints

In the work space, with BlackBerry Enterprise Server 10.2 and earlier, data will be routed through one the following transports:

Work VPN
a. VPN profile must be pushed to device by BlackBerry Device Service
Work Wi-Fi
a. Wi-Fi profile must be pushed to device by BlackBerry Device Service
BlackBerry MDS Services

Since data transmitted to and from the app will always be routed through your company’s infrastructure, plan to be respectful of your company’s resources by reducing unnecessary app chatter & limiting payload size. Consider compressing payloads before they’re transmitted.

The app might also have the requirement of connecting to some of your company’s intranet hosted resources. During the development/testing phase of solution building, developers usually side load apps to rapidly test certain functionality and connectivity. Prior to version 10.2 of the BlackBerry 10 OS, side loading of apps onto BlackBerry 10 devices deploys them by default to the personal space. (Part 1 of this blog posts covers side loading) Since the personal space is administered by the user and NOT the company, it won’t have explicit granted access to your company resources via IT policy. The best way to ensure that your app is performing the networking tasks and following its design is to deploy it to the work space and test it there. That gives you the best indication as to how that app will perform the networking tasks when deployed to your company devices.

You’re now armed with the knowledge that you need in order to get you started developing solid enterprise solutions for BlackBerry 10! Access to intranet resources, taking advantage of the invocation framework to save time and development costs, and Push technology to keep end users up to date with the latest information are only a few benefits of enterprise apps for BlackBerry 10. Keep in mind the topics discussed in this post combined with Part 1 and you’ll be able to develop well-designed, solid, immersive enterprise apps. Feel free to use the comments below to tell us how you were able use the power of BlackBerry 10 to solve problems for your enterprise, or to ask any questions you may have on the process that’s been outlined.

About Maurice White

Maurice White is a Sr. Enterprise Developer at BlackBerry, providing guidance to their largest customers with the design & development of solutions for the BlackBerry platform. Maurice leverages his over 13 years of software development experience in helping Enterprise customers deliver solutions and mobilize their workforces. Follow him on twitter @MoReeseMo

Join the conversation

Show comments Hide comments
+ -
blog comments powered by Disqus