Device characteristics

There are several devices that run BlackBerry 10 OS. These devices have different specifications and app that run on these devices behave differently. However, all of these devices provide the BlackBerry 10 experience to users. Because of the differences between the devices, you should design your app so that it works correctly and looks great regardless of the device that it runs on.

BlackBerry 10 devices can be separated into two general categories:

  • All-touch devices: These devices use a touch screen as the primary input method, along with physical buttons or keys, such as volume keys. A virtual keyboard appears on the screen when keyboard input is required.
  • Devices with a physical keyboard: These devices use a physical keyboard and a touch screen as the primary input methods. Some keyboards are touch sensitive, and some devices with a physical keyboard also include a trackpad as another input method. These devices also have physical buttons or keys, such as the Send, Menu, Back, End, and volume keys, which can also be used for input.

This document outlines some of the key differences between BlackBerry 10 devices and provides tips and resources to help you develop your apps effectively. In addition, the UI Guidelines for BlackBerry 10 are a great resource that can help you design your app's UI.

Screen resolution

The following image illustrates the screen specifications for current BlackBerry 10 devices:


Diagram showing the different resolutions of BlackBerry 10 devices.

The resolution of the BlackBerry Z3 smartphone is 540×960. When you run apps on this device, assets that you designed for the 720×1280 resolution of the BlackBerry Z30 are automatically scaled down to the lower resolution.

Because users might run your app on devices with any of these screen resolutions, consider the following guidelines as you develop your apps:

Create a resolution-independent UI

The UI controls that you choose to use, and the way that you arrange these controls, depend on the resolution of the screen. Aspect ratios can vary between devices, so you may have to design your UI differently to suit each supported device. If you are a developing an app using QML or C++, you should try to develop a UI that doesn't depend on a particular resolution. You can do this by using features such as relative layouts, margins, space quotas, and design units.

To learn more, see Resolution independence.

If you are developing an app in C, there are no resolution-independent UI controls available.

Use assets designed specifically for each resolution

If your app includes graphic assets, such as background images or other assets, you should consider how these graphics might look when they're viewed in different resolutions. Cascades scales certain assets automatically to fit the size of the screen. If your assets don't scale well, you might find that your app isn't visually appealing on devices with different resolutions.

Fortunately, Cascades includes a static asset selector that can help your app use the right set of assets based on the target device that your app is running on. You can create different image assets—and even entirely new layouts—for each device that you want to support. To learn more, see Static asset selection.

If you are developing an app in C, you can create assets for each of the resolutions you want to support and include logic in your app to use the correct assets based on the device the app is being run on.

Keyboard

Keyboard input is a fundamental way that users interact with their mobile devices. BlackBerry 10 users can choose between devices with a physical keyboard and all-touch devices with a touch screen keyboard.

This choice means that you should design your apps so that they support both physical keyboard and touch screen keyboard input. Any code that you write specifically for the touch screen keyboard doesn't work on devices with a physical keyboard, which don't use the touch screen keyboard. Consider the following guidelines as you develop:

Support keyboard shortcuts

BlackBerry users might be familiar with the keyboard shortcuts that are available on BlackBerry devices. Experienced users can send emails, search for content, and perform other common tasks by using shortcut keys and key combinations. To accommodate these users and how they interact with their device, provide support for keyboard shortcuts in your apps, where appropriate.

Be careful, though; keyboard shortcuts work only on devices with a physical keyboard. On all-touch devices, keyboard shortcuts aren't generally available. You can provide additional options in your UI to make up for the lack of shortcuts. Try to support as many ways to interact with your app as possible, so that users have the flexibility to use your app no matter what device they have.

If you're writing an app in QML or C++, you can use the SystemShortcuts class to support keyboard shortcuts in your app. To learn more about keyboard shortcuts and how to support them in your apps, see Keyboard input.

If you're writing an app in C and you want to support a keyboard shortcut, you have to write code to do so. This code must intercept key presses, detect when the keyboard shortcut is pressed, and perform the shortcut action. Key presses generate SCREEN_EVENT_KEYBOARD events. You can use functions from the Screen Graphics Subsystem Library to determine which keys were pressed. To learn more about working with screen events, see "Functions in screen.h".

Save room for the touch screen keyboard

The touch screen keyboard appears on the bottom half of the screen. When the keyboard is displayed, other components of an app's UI are compressed to make room for the keyboard. If you have a lot of controls in your UI, some of them might be obscured when the keyboard is displayed. As you design your UI, make sure to leave space for the touch screen keyboard to be displayed without obscuring important parts of your UI.

In Cascades apps on all-touch devices, when users need to type text in fields or other controls, the touch screen keyboard is displayed automatically.

If you're writing an app in C and need to accept keyboard input, you must call virtualkeyboard_show() to show the keyboard, and virtualkeyboard_hide() to hide the keyboard.

For example, consider the Quotes sample app that you can download from the Sample Apps page. This app displays quotes by various people, and it also allows you to add new quotes or edit existing ones. When you choose to edit an existing quote, you can change the text in several fields (first name, last name, or quote body). If you run this app on an all-touch device and you tap one of the fields, the touch screen keyboard is displayed:


Screens showing the Quotes app with and without the touch screen keyboard displayed.

The important aspects of the UI (the text fields, quote body, and buttons) still appear on the screen when the touch screen keyboard is displayed. The empty space above and below these elements is omitted. The app leaves plenty of room for the keyboard to be displayed.

In some cases, the screens in your apps might have too much content to display when the touch screen keyboard is shown. If you're using Cascades and it isn't feasible to reduce the complexity or number of UI controls on these screens, consider placing your controls inside a ScrollView. A ScrollView lets users scroll to see the remainder of the content on the screen. If you're using the core APIs to create your UI, consider how best to display your UI when the touch screen keyboard is displayed.

Trackpad and touch-sensitive keyboard

The BlackBerry Classic and the BlackBerry Passport introduce two new types of input methods that you can support in your apps: trackpad input and touch-sensitive keyboard input.

Users can use the physical trackpad to navigate and highlight text. The trackpad also gives users better control over the cursor or pointer and provides an unobstructed view of the touch screen. Highlights appear on controls as users navigate with the trackpad so it is easy to tell which item has focus.

The touch-sensitive keyboard allows users to control the device by using gestures on the surface of the keys. Users can perform actions such as control a cursor, select or delete text, and display the symbol picker on the screen.

For information about handling these input methods in your apps, see Trackpad input and Touch-sensitive keyboard input.

Hardware specifications

In addition to the differences in screen resolution and keyboard input methods, BlackBerry 10 devices also have some differences in their internal hardware. For most apps, the differences in hardware shouldn't affect the features or performance of your apps, but you should still be familiar with the following considerations:

  • Storage space: Be aware of the amount of storage that is available on the devices. Warn users if your app generates large amounts of data that could fill up all of the available space.
  • Processing power: If your app requires a lot of processing power, you might want to warn users that the app might not run as well on less powerful devices.
  • NFC and HDMI: If your app requires NFC capabilities or HDMI output, you need to consider whether you should still release the app on devices without the necessary hardware. If the features aren't essential to your app, you should warn your users and disable the functionality in a graceful way.

The tables below provides a complete listing of the hardware specifications for BlackBerry 10 devices.

Full touch screen devices

Feature BlackBerry Z30 smartphone BlackBerry Z10 smartphone BlackBerry Z3 smartphone

Display

720 x 1280 pixels, 4.97", OLED

768 x 1280 pixels, 4.2", LCD

540 x 960 pixels, 4.97", LCD

Processor

Dual-core, 1.7 GHz

Dual-core, 1.5 GHz

Dual-core, 1.2 GHz

Memory

2 GB RAM, 16 GB flash storage, removable microSD (up to 32 GB)

2 GB RAM, 16 GB flash storage, removable microSD (up to 32 GB)

1.5 GB RAM, 8 GB flash storage, removable microSD (up to 32 GB)

Network

  • Tri band LTE 4, 5, 7
  • Quad band UMTS/HSPA+ 1, 2 ,4, 5/6
  • Quad band GSM/GPRS/EDGE
  • Quad band LTE 2, 5, 4, 17
  • Quad band HSPA+ 1, 2, 4, 5/6
  • Quad band EDGE
  • Tri band UMTS/HSPA+ 1, 2, 8
  • Quad band GSM, GRPS/EDGE

Wi-Fi

4G mobile hotspot, 802.11 a/b/g/n

4G mobile hotspot, 802.11 a/b/g/n

802.11 b/g/n

Bluetooth

Bluetooth 4.0

Bluetooth 4.0

Bluetooth 4.0

Camera

8 MP rear-facing camera, 2 MP front-facing camera

8 MP rear-facing camera, 2 MP front-facing camera

5 MP rear-facing camera, 1.1 MP front-facing camera

GPS

Assisted, autonomous, and simultaneous GPS

Assisted, autonomous, and simultaneous GPS

Assisted, autonomous, and simultaneous GPS

NFC

Yes

Yes

No

micro HDMI

Yes

Yes

No

Sensors

Accelerometer, ambient light sensor, gyroscope, magnetometer, proximity sensor

Accelerometer, ambient light sensor, gyroscope, magnetometer, proximity sensor

Accelerometer, ambient light sensor. proximity sensor

Devices with a physical keyboard

Feature BlackBerry Passport smartphone BlackBerry Q10 smartphone BlackBerry Q5 smartphone

Display

1440 x 1440, 4.5", LCD

720 x 720 pixels, 3.1", OLED

720 x 720 pixels, 3.1", LCD

Processor

Quad-core, 2.2 GHz

Dual-core, 1.5 GHz

Dual-core, 1.2 GHz

Memory

3 GB RAM, 32 GB flash storage, removable microSD (up to 128 GB)

2 GB RAM, 16 GB flash storage, removable microSD (up to 32 GB)

2 GB RAM, 8 GB flash storage, removable microSD (up to 32 GB)

Network

  • Quad band LTE 2, 5, 4, 17
  • Quad band HSPA+ 1, 2, 4, 5/6, 8
  • Quad band EDGE
  • Quad band LTE 2, 5, 4, 17
  • Quad band HSPA+ 1, 2, 4, 5/6
  • Quad band EDGE
  • Quad band LTE (100/50 Mbps) 3, 7, 8, 20
  • Quad band HSPA/UMTS 1, 2, 5/6, 8
  • Quad band GSM/GPRS/EDGE

Wi-Fi

4G mobile hotspot, 802.11 a/b/c/g/n, Wi-Fi Direct, Miracast

4G mobile hotspot, 802.11 a/b/g/n

4G mobile hotspot, 802.11 b/g/n

Bluetooth

Bluetooth 4.0

Bluetooth 4.0

Bluetooth 4.0

Camera

13 MP rear-facing camera, 2 MP front-facing camera

8 MP rear-facing camera, 2 MP front-facing camera

5 MP rear-facing camera, 2 MP front-facing camera

GPS

Assisted, autonomous, and simultaneous GPS

Assisted, autonomous, and simultaneous GPS

Assisted and autonomous GPS

NFC

Yes

Yes

Market dependent

micro HDMI

No

Yes

No

Sensors

Accelerometer, magnetometer, proximity sensor (Time of Flight), gyroscope, and ambient light sensor

Accelerometer, magnetometer, proximity sensor, gyroscope, and ambient light sensor

Accelerometer, magnetometer, proximity sensor, gyroscope, and ambient light sensor

For information about graphics hardware and OpenGL ES support on BlackBerry 10 devices, see Find out hardware information.

Last modified: 2014-11-17



Got questions about leaving a comment? Get answers from our Disqus FAQ.

comments powered by Disqus