It seems like the browser you are using has JavaScript disabled. As a result, the site will not function properly. We really want you to enable it so you may experience our site as we intended it. If you have no idea what we are talking about or if you need help, visit http://www.enable-javascript.com×
This website uses cookies. By continuing to browse this site you are agreeing to our use of cookies. Find out more on our cookie page.×

Oops, it seems like you're using an old browser that we do not fully support. If you're able to, please upgrade your browser here.×
This website uses cookies. By continuing to browse this site you are agreeing to our use of cookies. Find out more on our cookie page.×

Device characteristics

There are several devices that run the BlackBerry 10 OS. These devices have different specifications and apps 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
Call, 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:

BlackBerry Z30 and BlackBerry Z3

BlackBerry Z10

BlackBerry Q10 and BlackBerry Q5

BlackBerry Classic

BlackBerry Passport

720x1280

4.97 in.

16:9 ratio

295 dpi

768x1280

4.2 in.

15:9 ratio

356 dpi

720x720

3.1 in.

1:1 ratio

330 dpi

720x720

3.5 in.

1:1 ratio

294 dpi

1440x1440

4.5 in.

1:1 ratio

453 dpi

Devices in the above image are not to scale.

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 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.

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 that the app is being run on.

Keyboard

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

Because of these different input options, you should design your apps so that they support
both physical keyboard and touch screen keyboard input. If you write code
specifically for the touch screen keyboard, that code won't work on devices with a physical
keyboard. Consider the following guidelines
as you develop your app:

Support keyboard shortcuts

BlackBerry
device 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 devices, you should provide support for
keyboard shortcuts in your apps, where appropriate.

Keep in mind that 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, regardless of what device they have.

If you write 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 write an app in C and you want to support a keyboard shortcut, you must
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.

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:

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.

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
take up 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 some device models.

NFC and HDMI: If your app requires NFC
capabilities or
HDMI output, you should
consider whether to release the app on devices that don't include the
necessary hardware. If the features aren't essential to your app, you should warn
users and disable the functionality in a graceful way.

The tables below provide a complete list of the hardware
specifications for BlackBerry 10 devices.

Graphics platform specifications

BlackBerry 10 devices
use various graphics platforms. Each graphics platform has different specifications, such as maximum texture size.
This table outlines the graphics platforms that are used on BlackBerry 10
devices.

1. Download the tools

Before you start developing, you'll need to visit the Downloads tab. Here you'll find downloads for the BlackBerry 10 Native SDK, BlackBerry 10 Device Simulator, and some other useful tools.

2. Try the sample apps

Now featuring a filter control, the Sample apps tab allows you to search for samples by name or by feature.

Select either the Core or Cascades radio buttons to display the samples relevant to you.

3. Educate yourself

The Documentation tab contains tons of examples, tutorials, and best practices to guide you along the path towards building an awesome app.

You can access all the documentation that you need in the left-hand navigation.

4. Start developing

The Reference tab is where you'll find essential details about how to use our APIs.

You can use the left-hand navigation to choose how you would like to browse the reference: by module, by topic, or alphabetically. If you have an idea of what you are looking for, start typing it in the Filter box.