The BlackBerry® 10 Native SDK first arrived on the scene for our BlackBerry® PlayBook™ tablet. While it was a powerful tool for game development, it was still infancy in many ways, as it didn’t have many of the strong APIs and functionality for building an integrated native experience with a rich UI. For the BlackBerry 10 platform, we evolved the NDK and added in the Cascades™ UI framework along with many new APIs. We have released several beta version of the Native SDK since BlackBerry 10 Jam in May. The infant evolved into early adolescence.
While these earlier betas offered significant improvements over previous editions, they were still a work in progress. We are finally at a stage where we can truly say that with Beta 3 of our Native SDK, our young child has finally come of age. Our APIs have evolved to a point where they are stable and functional enough to advertise backwards compatibility. We also support a full feature set of APIs in the Native SDK – from connectivity APIs such as email and calendar to APIs that support deeper integration such as invocation to social APIs such as BlackBerry® Messenger™ (BBM).
Beta 3 of the Native SDK contains numerous new and important APIs that many of you have been anxiously waiting for. Some of the highlights include:
If you attended some of our other conferences, the BlackBerry Jam 10 World Tour or BlackBerry Jam Sessions, you have probably heard us talk about the flow and deep integration that the BlackBerry 10 platform provides. The invocation framework provides a facility via cards through which you can incorporate some of this flow and integration in your app. With cards, you will be able to expose discrete functionality within your app to other apps as well as incorporate functionality provided by your other apps within your own. As an example, if you are developing a picture viewer app, you might expose a simple picture previewer card to the invocation framework. Any app that registers with the invocation framework can invoke your card to preview a picture. Likewise, your app can leverage existing cards on the platform to access various pieces of functionality, whether it is a simple preview of a video or other discrete functions like picking a contact or composing an email.
Visually, a card typically appears as a previewer that takes up most of the screen. However, it appears as part of the application on which it is stacked. Essentially, you can use a gesture to slide the card in, partially or fully into your app as seen in the picture below:
A Card is considered part of the application that invokes it and does not appear as a separate entity in the running applications grid. In addition, when the card’s function is complete, the user is automatically returned to its parent. In this way, a card “feels” like part of the application.
BBM Social Platform
BBM has always been core to the Blackberry platform and it still remains a critical piece of our BlackBerry 10 portfolio. The BBM Social Platform APIs allow you to leverage the social features and functionality of BlackBerry Messenger from within your app. For example, you can initiate a BBM chat and share files such as pictures, voice notes, and music between users who are running your app. You can also stream data between users of your app for real-time applications such as communication, gaming and location tracking. As part of the BBM social platform, you will be able to harness BBM features such as BBM user profile, contact list, messaging and application profile box.
Email, Calendar and Contacts
There is a significant amount of interest from our third party developers for Calendar, Email and Contact APIs, and we are excited to announce their availability in this beta. The Message Center is a signature feature of the BlackBerry experience, and we are adding support on the API side for it as well. The Message Center APIs provide the ability to launch the unified inbox, send emails and receive task notifications. You can use our calendar functionality to create new calendar events, edit existing events, delete existing events and view existing calendar events. We also have the ability to notify third parties when events are being created, modified and deleted. Finally, our contact API allows you to create, edit, delete and view contacts as well as add additional meta information to a contact.
In this competitive world of app development, you likely care about creative ways in which you can make money off your apps and we want to help bring you the tools to do just this. After all, the success of our platform depends on your success. To facilitate that, we are adding an Advertising Service along with APIs that allow you to display banner and splash ads in your application or game. You can also create hot links to keyword advertising. Under the scenes, our Advertising service launches a Browser webview to display the advertisements. Along with our Payment and Scoreloop APIs that we introduced in earlier Betas, we believe that we have some powerful tools that can help you monetize your application.
At RIM®, we are proud of our Push technology, and we are now making our powerful Push framework available through the NDK. Through the APIs we provide, your app will be able to register with the Push service and receive push data. When the Push service receives incoming Push messages, it will invoke the application registered for the message using the addressing information provided during the registration. Any app that needs to be responsive to incoming data streams should strongly consider taking a look at our Push framework and associated events.
…and many others
On the ‘Core Native’ front, we’ve introduced a Bluetooth® API which supports Bluetooth on/off, power status, and retrieving paired and found devices. It also provides several Bluetooth profiles such as Serial Port Profile (SPP), Bluetooth Low Energy (LE) and Generic Attribute Profile (GATT). Other core native APIs include APIs for Holster detection, retrieving application info and for querying Wi-Fi® and battery status.
Our spell check engine now exposes APIs at both the C and C++ layer to allow apps to perform spell check functionality in their own customized UI.
At the Cascades™ layer, we have introduced a WallPaper API that allows users to set an image as the wallpaper. We have also introduced APIs for sensors, including support for rotation, orientation, magnetometer, gyroscope and accelerometer. The geocoding API allows the user to perform geocoding and reverse geocoding while the radio info API includes the ability to query available radios, their status, ESN/IMSI, Sim card info, Mobile Country Code and Mobile Network code.
We hope you find enough content in this release to satisfy your needs. As we continue to evolve our platform, we intend to be as open and transparent with you about what’s coming down the pipe. I want to point you to our really cool-looking Native & Cascades flight boards where you can get an up-to-date status on our roadmap items. We have also added a section to our site that highlights the key features of our Core Native and Cascades frameworks. It should be useful for those of you who are trying to decide whether Core Native or Cascades is the right framework to use for developing your app.
As always, we want to continue to hear from you about your needs and receive feedback on our Native SDK.