Building native apps for BB10/PlayBook for iOS developersBB10/PlayBook for iOS developers
Ranbijay Kumar & Prakash Sainani
Developer Relations – Research In Motion
BlackBerry 10SDKs
C++/QtCascades
ActionScriptAdobe®AIR®
HTML5 BlackBerry®
WebWorks™C/C++
Native SDK
JavaAndroid™Runtime
Architecture
Native & HTML5 Apps
HTML/CSS
JavaScript
CascadesQML
Android Apps Adobe AIR Apps
Java
.apk
Action Script
.swf
Open GL
Open AL
WebKit JavaScript C++
QNX Kernel
Platform APIs
Android Runtime AIR Runtime
Network Storage
Qt C++ C/C++
Audio/Video Graphics Push i18n …
C/C++
Native Native RuntimeRuntime
AIR AIR RuntimeRuntime
AndroidAndroidPlayerPlayer
Web Web RuntimeRuntime
BlackBerry 10 FoundationsPlatform APIs & Core Packages
Application Application InfrastructureInfrastructure
ApplicationsApplications
Application Application PlatformPlatformPayment Advertising CalendarPush Data Notification Phone
BBM™ BBM™ Service
System ServiceSystem Service
OSOS
InfrastructureInfrastructure PlatformPlatformPayment
Invocation
Advertising
Share
CalendarPush Data
Contacts
Notification
Messages
Phone
Tasks
ServiceService
…
Lifecycle
Configuration
Utilities
Cascades
Backup / RestoreBackup / Restore
i18n
Search
Instrument�n
Config Balance
…
Navigator Installer LauncherAuthenticatio
nAuthenticatio
nMultimedia SQLite NFC
Memory Management
Memory Management
Process ManagementProcess
ManagementPower
ManagementPower
ManagementIPC File System
Device DriversDevice Drivers
…
Window ManagerWindow Manager
WebKit Protocols Network DRM Crypto …
Analytics
BB10iOS
The Platforms
UIKit Cascades / QML
iOS (Kernel) & Drivers
Core Services
Graphics and Audio
Application Frameworks[Maps, Message …]
DriversBB10 (QNX micro-kernel) &
Drivers
Core Services (/BPS)
Graphics and Audio
Application Frameworks[Qt, Maps, PIM, Share …]
Posix
Webkit
BB10iOS
Types of Apps
Native
(Objective C and Cocoa Touch UIKit, OpenGL)
Native
(C/C++, QML, Cascades, OpenGL)
Web Apps
Native with WebviewPhoneGap…
UIKit, OpenGL)
Web Apps
Native with WebviewWebWorks, PhoneGap…
OpenGL)
Native and Web Apps in BB10
� C/C++ is used widely due to it’s portability. It’s a true cross-platform language (combined with POSIX)� Enables Lots of BB10 Open Source Frameworks� iOS can also run C/C++ apps (Objective-C++). Developers are starting to look into this option for cross-platform savings.starting to look into this option for cross-platform savings.� Simple on iOS (just rename your .m file into .mm and add objective-
C++)
� Html5� Enables Lots of BB10 Open Source Frameworks� BB10 can also run PhoneGap, Sencha and other cross-platform supportive frameworks.
Momentics IDE
BlackBerry WebWorks
“A cross-platform HTML5 application framework for creating standalone BlackBerry applications “
BlackBerry Web Platform
§ Driven by strong Web standards support
§ Powered by WebKit§ HTML5 and CSS3
http://acid3.acidtests.orghttp://html5test.com
447
§ HTML5 and CSS3§ Flash 11 and WebGL
http://www.craftymind.com/guimark3/
HTML5 powered by WebWorks
HTML5, CSS3, JavaScript
WebKit engine
WebWorks platform
BlackBerry Developer APIs
https://developer.blackberry.com/html5/api
How to get there?
Web Assets WebWorks Tools BlackBerry Applications
BlackBerry 10 ExperienceCascades: Out-of-the-Box Elegance
BlackBerry® WebWorks™ &
bbUI.jsFuture-Proof Native Web Apps
A closer look at applications
Settings / App Menu
Tab Bar
Tab Overflows (BB10 Sidebar)
Context Menu
Custom buttons in the navigation bar
toolbar
TableView / ListView
Notifications
� A BAR file is the native PlayBook/BlackBerry 10 application package� What APP files are for iOS, BAR files are for BlackBerry
� BAR files contain executables, images, media, etc.
PlayBook/BB10 developmentBAR files
� blackberry-deploy: load a packaged app onto the device� The device has to be in development mode