This session is intended to introduce you to the different BlackBerry 10 SDKs showing different ways of developing a mobile app. For example through a pure C/C++ approach very convenient for Games and Libs developers. Or through a more comfortable way using a high level application development Framework supporting Qt and the Blackberry own Cascades UI framework. We will also show you how powerful the BlackBerry 10 mobile web development platform is.
8. Questionable reliability
Traditional monolithic architecture
• Model for most OSes available today
– Windows, Linux, Android
• OS contains tremendous amount of
functionality with unrestricted CPU privileges
• A fault in one OS component can damage any
other, leading to system-wide corruption
– System reliability is as good as your worst
driver developer
– Reboot is only recovery possible
App App
AppApp
File
system
DriverNetwork
stack
Monolithic
OS
App App
Multimedia
stack
9. Mission-critical reliability
QNX microkernel architecture
• Microkernel minimizes execution with
unrestricted “kernel” CPU privileges
• All processes run in isolated process space
– Includes drivers, file systems, stacks
– All QNX processes are “applications”
• Faults are contained so that they only affect the
faulty component
– Failed components can be dynamically
recovered while the system continues to
operate
App App
AppApp
File
system
DriverNetwork
stack
Micro-
kernel
App App
Multimedia
stack
12. Apps can use the Invocation
Framework to improve user’s flow
• Launching Core and 3rd party Apps
• Registering URIs and MIME types
• Cards and content viewers
13
Application Guidelines
Invocation Framework
13. Invocation Framework
Cards
Embeds a Screen from Target
Instead of launching the full app
No Active Frame presence
Supports peeking
A leap ahead of the competition
BlackBerry 10 Flow at its best!
A Card maintains its own process
and security context
14
31. You can choose!
No difference between UI created in QML or C++
They can be combined
Typically, UI in QML and business logic in C++
QML supports JavaScript for signal handling
C++ QML
33. Page* root = new Page;
Label* label = Label::create()
.text("Hello World");
root->setContent(label);
Application::instance()->setScene(root);
Cascades SDK
Hello World
34. Animations
Any Cascades UI element can be animated
Animations are “running” on the engine thread
Remember the client server setup?
Explicit & Implicit animations:
translation, rotation, scale, opacity, …
43. ringmark
46
The first vendor mobile
browser to pass ringmark
ring 1!
A web-based test suite for
capabilities that modern
mobile web apps require.
Test your own smart
phone at: http://rng.io
Ring 1 e.g. : Capabilities of building
2D games, music and video apps,
camera apps, etc…
44. How did we do it?
47
• JavaScript/HTML/CSSBrowser Application
• Framework for running Web codeWeb Platform
• Web rendering Engine, C++WebKit
• QNX, system servicesBlackBerry 10 OS
45. How to get there?
Web Assets WebWorks Tools BlackBerry Applications
46. Remote Web Inspector
Best in class debugging solution.
Debug WebWorks applications on a simulator or device.
Optimize web applications.
49
47. Ripple Mobile Emulator
Tool for mobile web testing
Chrome extension
Emulate BlackBerry device
capabilities
Package and Sign
Supported Platform APIs:
WebWorks for BlackBerry 10
Apache Cordova / PhoneGap
WebWorks
WebWorks for Tablet OS
50