8. BlackBerry Platform Services
overview
the BlackBerry Platform Services (BPS) library provides an
application with a single consistent interface to a number of
different services during the execution of the application.
-
universal event management
user interaction – working with the navigator
input/output (sensors, audio, LED, screen, multimedia)
device information, locale and payment services
network status and geo-location
8
9. BPS: Event Loop Code Sample
for (;;)
{
bps_event_t *event_bps = NULL;
bps_get_event(&event_bps, timeout); // -1, forever
if (event_bps != NULL)
{
event_domain = bps_event_get_domain(event_bps);
if (event_domain == xxx)
{
// request event information within the domain
}
}
}
9
10. BPS: Platform Services Template
handling {service} events
{service}_request_events({param});
// request events
then capture the appropriate {service} events
event_domain = bps_event_get_domain(event_bps);
if (event_domain == {service}_get_domain())
{
// handle the {service} event
10
11. BPS: Navigator
handling navigator events
navigator_request_events(0);
// request events
then capture the appropriate navigator events
if (event_domain == navigator_get_domain())
{
e_id = bps_event_get_code(event_bps);
11
12. BPS: Navigator Events
navigator events of use for game developers
NAVIGATOR_EXIT
NAVIGATOR_SWIPE_DOWN
NAVIGATOR_BACK
NAVIGATOR_WINDOW_STATE
NAVIGATOR_ORIENTATION_CHECK
NAVIGATOR_ORIENTATION
NAVIGATOR_LOW_MEMORY
...
12
14. BPS: Screen and Window Handling
composite window handling
the BlackBerry 10 platform provides a composited windowing
API (low level) – which allows the creation of a windows and
defining the appropriate properties (colors, depth, dimensions).
screen_create_context(&scr, SCREEN_APPLICATION_CONTEXT);
screen_create_window(&win, scr);
screen_set_window_property_iv(...);
14
16. BPS: Screen and Window Handling
FrameBuffer
for “oldskool” computer graphics enthusiasts – a pixel
FrameBuffer can be easily obtained from the window object
allowing for the development of retro games and emulators.
screen_create_window_buffers(win, 1);
screen_get_window_property_pv(win,
SCREEN_PROPERTY_RENDER_BUFFERS, (void **)&pFB);
16
17. BPS: Screen and Window Handling
Open GL ES 1.1 or 2.0
to take advantage of the hardware accelerated 3D graphics
(Open GL ES 1.1 or 2.0) – simply use the standard
eglXXXAPI calls to initialize the environment.
17
18. BPS: Screen and Window Handling
handling screen events
screen_request_events(screen_ctx);
then capture the appropriate screen related events
if (event_domain == screen_get_domain())
{
event_scr = screen_event_get_event(event_bps);
screen_get_event_property_iv(event_scr,
SCREEN_PROPERTY_TYPE, &e_id);
18
19. BPS: Screen and Window Events
screen events of use for game developers
SCREEN_EVENT_POINTER
SCREEN_EVENT_MTOUCH_TOUCH
SCREEN_EVENT_MTOUCH_MOVE
SCREEN_EVENT_MTOUCH_RELEASE
SCREEN_EVENT_KEYBOARD
SCREEN_EVENT_DEVICE
...
new in 10.1 SDK (gamepad)
19
20. BPS: Sensors
handling sensor events
if (sensor_is_supported(sensor_type))
sensor_request_events(sensor_type);
then capture the appropriate sensor related events
if (event_domain == sensor_get_domain())
{
e_id = bps_event_get_code(event_bps);
...
20
21. BPS: Sensor Events
sensors that may be available (check before use)
SENSOR_TYPE_ACCELEROMETER
SENSOR_TYPE_MAGNETOMETER
SENSOR_TYPE_GYROSCOPE
SENSOR_TYPE_AZIMUTH_PITCH_ROLL
SENSOR_TYPE_ALTIMETER
SENSOR_TYPE_TEMPERATURE
SENSOR_TYPE_PROXIMITY
SENSOR_TYPE_LIGHT
...
21
22. BPS: Network Status
handling network status events
netstatus_request_events(0);
then capture the appropriate network status related events
if (event_domain == netstatus_get_domain())
available = netstatus_event_get_availability(event_bps);
to check the network status at any time:
netstatus_get_availability(&available);
22
31. Developer: Tactile Entertainment
Fruit Blitz
•
C++ with Open GL ES 2.0, Open AL
•
Leader boards
•
Challenges
•
Achievements (entry point, add friend, rematch)
•
Progress Sync
31
34. Application Publishing
Publishing to BlackBerry World
• BlackBerry World is the on-device distribution catalogue
• a publishing account is required to use BlackBerry World
•
•
free to sign up
royalty share between RIM and developer (70% developer)
• provide payment details (paypal, et al)
• create product (metadata) and release BAR files
•
480x480 icon, featured image, screenshots and description
35. Application Monetization
Pre-mium, free-mium or combination?
many methods to monetize; all options are available to you
• paid applications
• free applications with in-app purchases
• free applications with advertising
36. Built for BlackBerry
Application Certification
•
recognized high quality
•
the official “stamp” of approval
•
give customers peace of mind
•
improve visibility in BlackBerry World
36
37. For More Information…
Native Development Resources
http://developer.blackberry.com/native/
BlackBerry Developer Blog
http://devblog.blackberry.com/
BlackBerry Developer YouTube Channel
http://www.youtube.com/user/BlackBerryDev
37