The Return of the Classic


Hi folks.  It has only been a short while since the release of the BlackBerry 10.3.0 SDK and this time I’m back again to announce the arrival of the BlackBerry 10.3.1 Beta SDK.  This release in particular is designed to support development on our upcoming BlackBerry Classic device so it should be of particular interest to you as a developer.   The BlackBerry Classic is designed as a successor to the BlackBerry Bold which has long been one of my favourite smartphones.  It has all the attributes our BlackBerry fans associate with the brand – a fantastic keyboard and trackpad, excellent design and build quality, and software that lets you get things done quickly and efficiently.  I have yet to meet a BlackBerry Bold user who doesn’t like that device – in fact I know several folks who are still holding on to their BlackBerry Bold.  This is why I’m personally excited about the BlackBerry Classic.  It has all the great things that folks love about their BlackBerry Bold from both a hardware and UX perspective.  At the same time, it comes with the modern BlackBerry 10 operating system along with the ecosystem.   I think our customers are going to love it and it’s a great opportunity for app developers to get on board and leverage excitement.

The BlackBerry 10.3.1 API release was designed specifically to allow you to bring your app to the BlackBerry Classic device.  We usually try our best to minimize the amount of work developers have to do to bring their app to new hardware.  As long as you have been following our Cascades best practices, you should hopefully not encounter significant hurdles.  There are a few things however that you need to be aware of:  The first thing to consider is the 720 x 720 square resolution.   We already have devices that support the 1:1 aspect ratio such as the BlackBerry Q5, Q10 and the newly released BlackBerry Passport, so the same principles for developing on these devices apply to BlackBerry Classic as well.  What’s new on the classic device though is the existence of a trackpad and hard keys.

We have exposed Qt APIs that allow you to query the existence of the trackpad and hard keys.  In a typical case you would likely not need to do this – however these APIs are available in case you need them.   The introduction of a trackpad also automatically introduces additional facilities to the end user particularly with respect to navigation and focus.  You can now use the trackpad (in addition to the touchscreen) to navigate around the display just like you would on a BlackBerry 7 device.  Likewise, you can also focus on a control by hovering on a control with the trackpad.  This is not something that is possible with just a touchscreen.  When you do this, the control will get highlighted.  Cascades already provides default focus highlighting for standard controls.  If you are using standard controls, you should not have to worry about specifying any highlighting as the Cascades framework will automatically do this for you.  You do have the option however of modifying the highlighting if you so wish.

If you have custom controls on the other hand, then you would have to add support for custom highlighting within your control.  The way you do this is as follows :

  1. Set your controls navigation property’s focusPolicy to Focusable
  2. Set your controls navigation property’s defaultHighlightEnabled to false.
  3. Apply the appropriate highlights when the wantsHighlight property is set

The snippet of code below is designed to show you how to do this.

MyCustomControl {
    id: mycontrol
    navigation.focusPolicy: NavigationFocusPolicy.Focusable
    navigation.defaultHighlightEnabled : false
    background: navigation.wantsHighlight ? ui.palette.primaryDark
           : ui.palette.background

I realize this code snippet will not make you an expert on this topic so in addition to this high level overview, our fantastic developer experience teams will be also be adding samples to both our official samples page and community samples repo to supplement this information in more detail.

Developers developing core native apps can access hard key and trackpad events via BPS.  These events can also be accessed via our navigator service and libscreen API.  This will be of particular interest to our existing game developers who want to incorporate trackpad and hard key events in their games.

In addition to trackpad support we have also added a few new APIs in this release.  Most of our API focus in this release has been on the enterprise and security space.  The regulated space is very important to us and we want to make sure we are doing everything to help our enterprise customers and developers deploy mobility solutions in this area.  We are providing a new system integrity service that allows an app to retrieve information about the OS and applications installed on the device.  These include things like SHA digests, package size and version information.  We also have a credential manager that an app can authenticate with to access enterprise data and services.    Enhancements have also been made to our PIM stack particularly with respect to out of office settings, email previews and contact management.  For more details on these please refer to our release notes and API docs.

I am personally excited about the BlackBerry Classic and I hope you are too!  I hope this blog has provided you with the key pieces of information needed to help you deploy your app on classic successfully and with minimal hassle.  And to make your transition to classic seamless and effortless, there is nothing better than starting as early as possible.  So please start downloading our tools and SDK and dig in.  Let us know how it goes.

Please note it may take over 24 hours for the Autoloaders to appear and function

About russellandrade