Human Factors of XR: Using Human Factors to Design XR Systems
Develop For BlackBerry10
1.
2. Kareem ElSayed
Application Development Consultant - EMEA
kelsayed@blackberry.com
@kemobyte
Developing for BlackBerry 10
Native, Android, HTML5, Enterprise & More!
3. What Is BlackBerry 10?
Completely new
Not a revision or upgrade of BlackBerry 7
Secure
Designed as a mobile computing
platform
Not just another mobile phone OS
Designed for people on the move; people
that want to get something done
Not just consume content on the couch
http://developer.blackberry.com
10. Ecosystem Success
BlackBerry is gaining momentum, with positive, and
sometimes surging trends
67,000 Registered vendors (doubled since BB10 launch)
262,250 Approved Apps
(Over 130,000 BlackBerry 10 apps – August 2013)
Developer satisfaction (buzz, sentiment,
advocacy)
Developers now submitting up to
3 different apps to BlackBerry World.
Catalogue is expanding Games now >1/3 of
BBW inventory
Carrier billing with 60+ carriers in 35 countries
Over 6.800 BBM connected apps
Ecosystem Success
BlackBerry
World
Games
(1/3 of
BBW)
13. ( UK)
Published Media Sports Multimedia
Global – Top Partners
Photo Editor Ultimate
Life Church
14. Global – Top Partners
Business and Productivity Social Networking
15. Middle East – Top Partners
Kitabi Quran Mojawad UniDic Muhammad
(PHUH)
Anghami
Trix
Sayidarty Al Eqtisadiah
Lamsa –
Children’s Ebooks
Emirates NBD Grand Cinema MAF Carrefour
Al jazeera Sports
mTadawol
WeChat
Tarneeb Balot
16. Developer Community
Net Promoter Score +46 (from -43 in May 2012)1
Developer and Corporate IT sentiment towards
BB10
“on-par” with all leading platforms2
Two thirds of organizations around the world
planning to deploy BB10 applications3
NPS (+46)
Developer Community
19. More money for devs!
4% more than iOS developers (per App / month)
>35% more than Android developers (per App /
month)
Developing an app for iOS costs
21% more than Android
81% more than BlackBerry
19
20. FlyCraft and Pop Corny
20
ThousantSurvivalUnits:)
iOS BlackBerry Android
Pop Corny revenues since launch
ThousantSurvivalUnits
:)
revenues since launch
Pop Corny FlyCraft
21. Strong & Growing App Ecosystem
C/C++
Native SDK
Wide choice of
programming
languages
Java Android
Runtime
C++/Qt
Cascades
Broad
range of
app dev
libraries
and personal appsManaging corporate...
HTML5
BlackBerry
WebWorks™
24. Platform
Built on QNX Neutrino Real-time OS
Microkernel based OS
POSIX Compliant OS
(Portable Operating System Interface)
Native C/C++ Applications
Direct OpenGL / HW Access
Qt/Cascades for native development
24
26. BlackBerry 10
supports
open standards
and
open source
tools
and provides
enabling
technologies
for your
choice of
development
environment
A Platform of Choice…
C/C++/Qt
Native SDK &
Cascades
HTML5 WebWorks™
Apache Cordova
Java
Android™ Runtime
Jelly Bean 4.2.2
26
27. Mobile Development from 20,000 feet
27
Native C/C++/Qt
Application Developers
Web Application
Developers
Community and
Content Developers
UI Framework
Platform, device and
cloud APIs
BlackBerry 10 OS
Multi-
threading
Memory
mgmt
Security
BlackBerry
Cascades
HTML5, CSS,
JavaScript
Graphics ….
Android Runtime
Gaming Platforms
28. What to choose?
Background and Skills
Reuse of existing code, assets
Requirements
Cross-portfolio, cross-platform, features
Platform Capabilities
APIs, tooling, frameworks, constraints
Tools
IDE, utilities, simulation, familiarity
Support
Community, docs, samples
28
30. Standard
• STL and POSIX compliant libraries
• Screen and Windowing APIs
• Gestures library
• Input events library
• Imaging and Compression
• OpenGL ES 1.1/2.0
• OpenAL 1.1
• Freetype Font Rendering
• Math
• XML and SQLite Database library
30
31. Cross-platform Libraries
• Boost: portable C++ libraries
• Cocos2D-X: cross-platform 2D game framework
• Box2D: 2D physics engine
• Bullet : 3D physics engine
• GamePlay: cross-platform 3D gaming framework
• Lua: embeddable scripting language
• SFML/SDL: cross-platform multimedia library.
• Skia: Fast 2D rendering engine
31
32. Gaming Platform
Scoreloop SDK
Integrate Social Gaming Features
Solid Analytics
Cross-platform presence
Billing / Monetization feature
Payment APIs for in-Game transactions
32
33. BlackBerry on GitHub
• Open Source Development Community
• Port libraries and frameworks
• Create libraries and frameworks
• Collaborate and contribute
• Work directly with other BlackBerry Platform Developers
blackberry.github.com
33
34. Game Engines
Unity Technologies
Marmalade SDK
ShiVa3D Game Engine with Development tools
More Coming!
34
35. Development tools
• GCC and GDB based tool chain
• Momentics IDE - Eclipse based C/C++ Development
Tools
• In-built Application Debugging, Profiling and Memory
Analysis
• Microsoft Visual Studio plugin
36
36. Visual Studio Plugin
You can use the BlackBerry Native Plug-in for Microsoft
Visual Studio to develop C and C++ applications for your
BlackBerry 10 device or BlackBerry PlayBook tablet.
37
37. Links
BlackBerry Native SDK developer.blackberry.com/native
-> “Download the Native SDK”
-> “Get started with Native SDK”
Blackberry Open Source
blackberry.github.com
38
39. What is Cascades?
Easy to use framework for delivering the astonishing
user experience and UI
Rich set of core UI components
Built in signature effects
Pre-packaged interaction design
Easy data binding to various data sources (SQL/XML/JSON)
Ease of integration with platform services
C++ and/or QML/JavaScript® power for the same object
model
40
42. Cascades and Qt
• Mature C++ application framework
• Good APIs
• Signals and Slots
• Many help classes
• QML
• QtGui Cascades
43
Cascades
43. Creating UIs
• Creating UIs in C++ is a lot of fun, but there are easier
and faster ways to describe UI.
• QML
• declarative language to describe trees of Qt objects with
properties (typically user interface)
• Looks like JSON
• Embed JavaScript as signal handlers
• A different view of the same object model that C++ offers
• Easily mixed with C++
• Preview your QML UI in Cascades Builder
44
52. How to create an adaptable UI?
Built in controls adapt to device type
Layouts, space quota, 9-sliced images, …
Unique (sub)set of assets per configuration
53. Asset selectors
Based on resolution and/or visual style
assets/
main_screen.qml
dialog.qml
picture.png
icon.png
720x720/
main_screen.qml
picture.png
54. Asset selectors
Based on resolution and/or visual style
assets/
main_screen.qml
dialog.qml
picture.png
icon.png
720x720/
main_screen.qml
picture.png
55. Asset selectors
Based on resolution and/or visual style
assets/
main_screen.qml
dialog.qml
picture.png
icon.png
720x720/
main_screen.qml
picture.png
60. 61
HTML5
Performance Leadership…
BlackBerry: 1.55s
“The next closest
competitor in terms of
mobile browser speed
takes nearly 5 seconds
to load the same page”
--Venture Beat *
February 2014
* http://venturebeat.com/2014/02/05/unbelievable-blackberrys-mobile-browser-is-actually-the-fastest-of-any-phonetablet-platform/
61. HTML5 and WebWorks
Port your existing Webs to BlackBerry WebWorks
• HTML5, CSS3, JavaScript
• Leading in mobile browser benchmarks
• Allows for cross-platform web development
• Broadest portability, Native Look&Feel (BBUI.js), any IDE
62
62. WebWorks for BB10
• The SDK has been re-written for BlackBerry 10
– No longer based on Java or Adobe AIR
– It is now based on JavaScript with a C/C++ back end
– The packaging process uses node.js
63
63. Why HTML5 and WebWorks?
Decision guidance
Utilize your existing Web experience
Re-use lots of cross platform code
Extend with BlackBerry® WebWorks™ platform
to securely access native level functionality
Provides the best of both worlds
Rich hardware accelerated UI
BB10 apps built with BlackBerry® WebWorks™ behave
like native apps
64
64. BlackBerry Web Platform
Driven by strong Web standards support
Powered by WebKit
HTML5 and CSS3
Flash 11 and WebGL
WebWorks and Cordova
65
65. What can you do with WebWorks?
• Geolocation
• Offline mode
• Storage
• Audio / Video
• 2D Graphics
• Advanced forms
• Invoke
• Web Workers
• Notifications 67
66. How do I get there?
Web Assets WebWorks Tools BlackBerry Applications
67. Custom WebWorks API
• Build your own APIs
– Access native layer functionality
– More powerful than just HTML5
– E.g. NFC, Clipboard, Barcode, Analytics
– BlackBerry 10 = C/C++
69
68. HTML5 Emulator - Ripple
• A multi-platform mobile emulator for testing
– Chrome Extension
– Render Web content similar to a web browser
– Emulate device-specific APIs and capabilities
– Web inspector debugging & profiling
– Package and sign BlackBerry applications
• Supported APIs:
– WebWorks, WebWorks for Tablet OS
– WebWorks for BlackBerry 10 (1.x)
– PhoneGap
70
70. Web Platform Extras
AliceJS library
CSS3 hardware acceleration
WebGL
3D Graphics, OpenGL ES 2.0
Community frameworks
72
71. bbui.js
• Designed for use with BlackBerry WebWorks
• A web framework that provides a BlackBerry Look
and Feel
• Framework goals
• Follows BlackBerry 10 UI guidelines
• Efficient screen management
• Focused on performance and memory optimization
• Open source and collaborative
• Community driven, not officially from BlackBerry
73
73. WebWorks SDK 2.0 BETA
75
BlackBerry WebWorks 2.0 is
now powered by Apache Cordova,
an open source development
framework to create apps using
web technologies.
Porting apps built with WebWorks SDK 2.0 requires less effort than
native apps, since you can reuse many of your web assets.
This release is also supported by
new GUI and command line tools,
which will simplify development cycles
and reduce development costs.
74. WebWorks SDK 2.0
Why it matters
Cross-Platform Capabilities
Expand your business through ease of portability to and from
the BlackBerry 10 platform by reusing many of your existing
web assets.
Simplified Development Tooling
Browser-based GUI and Command Line tooling enables quick-
to-market app development and deployment. No Ripple.
Enterprise Alignment
Cordova is a standards-based technology used not only by
WebWorks 2.0, but many leading enterprise app development
solutions such as IBM Worklight and SAP Mobile Platform.
77. BlackBerry Runtime for Android™
Enable Android software stack running on the
BlackBerry 10, including
Dalvik Virtual machine
Graphics and media
Structured data storage, e.g. SQLite®
Device access, e.g. GPS, accelerometer, compass…
Run at full speed directly on the OS kernel
Optimized performance; NOT virtualized
Tightly integrated with the underlying OS
79
78. BlackBerry Runtime for Android apps is based on
Open Source Android v4.2.2 (aka Jelly Bean).
Our 10.2.1 release offers significantly increased
compatibility.
Bring your Android app to the
BlackBerry 10 platform so you can
expand your user base and open
up new revenue opportunities.
Android Runtime
What’s it all about and why does it matter?
79. Target Developers
• Android App Developer
• Only here because it is another avenue to sell their application
• Heard that BlackBerry had an Android Runtime and thought they
would check it out
• BlackBerry Java Developer
• Decided to invest in Android Java to hit both BlackBerry and
Android devices
• Their Java App does not use many/any BlackBerry APIs
• Frustrated that we do not support Java runtime on BlackBerry
anymore
81
80. Compatibility and Limitations
About 70-85% of all Android apps are compatible today
Not all Android APIs are supported
• Hardware and OS limitations
New features recently supported:
• Bluetooth (introduced in 10.2.1)
• Google Maps (replaced with Open Street Maps in 10.2.1)
• NFC (in 10.2.2)
• Native Android Code (supported in 10.2.1)
Android Apps are limited to the personal perimeter
Full compatibility list: developer.blackberry.com/android/apisupport/
82
81. Porting Existing Apps
4 Tool options to use
• Online Conversion Tool – quickest way to get app converted
• Eclipse Plug-in – For most Android developers
• Command-line Tools – For advanced developers
• Graphical AID – very easy to use
83
.apk in .bar
out
“BlackBerry has reduced barriers to entry for developers by providing a
straightforward porting facility for Android apps to BlackBerry 10.”
- Vision Mobile, July 2013
82. You can grow your user base and increase revenue by
getting your Android app onto BlackBerry World.
Broader Reach
BlackBerry World is available in 171 markets
around the world
More than 5 billion apps downloaded to date
83. Broader Reach
Revenue Opportunities
% of devs who say revenue
generation is a challenge
42%
22%
Developers focusing primarily on
the Android ecosystem are twice
as likely to have challenges with
revenue generation than
developers focusing on the
BlackBerry 10 ecosytem.*
*Vision Mobile, June 2013
84. User discovers APK file,
reviews Disclaimer, and
chooses to install
User acknowledges
Settings and Permissions
Install initiates User can open app or
access via homescreen icon
Broader Reach:
APK Direct Install – A Closer Look
1 2 3 4
85. Links
Where to start
http://developer.blackberry.com/android
87
87. What is the Built for BlackBerry Program?
Built for BlackBerry is an app designation
“It signifies to users that an application fully embraces and
delivers the signature BlackBerry 10 experience”
88. Benefits – BlackBerry World
List View (Search or Top List)
Built for BlackBerry Identifier placed
beside star rating
Touch target directs to Built for
BlackBerry experience screen
Feature ScreenApp Details Screen
Built for BlackBerry Badge below
screenshots
(touch target)
89. Experience the Value of Carousel Placement
230.6% Increase
paid downloads
39% Increase
free downloads
187.9% Increase
daily revenue
Source: BlackBerry World Analytics
91. Built for BlackBerry Evaluation Criteria
User Experience Performance
Service Integration Security
Localization
http://developer.blackberry.com/builtforblackberry
93. Go to developer.blackberry.com
Install chosen SDK(s) and Simulator
Get signing keys & create BlackBerry World account
Work through the tutorials, UI guidelines, other docs and
samples
Develop and submit your apps
How do I get started?