Developing BlackBerry 10 apps using Vladimir Minenko, Qt team lead, Research in Motion Webcast on Dec 14, 2012
Developing BlackBerry 10 apps
using
Vladimir Minenko, Qt team lead, Research in Motion
Webcast on Dec 14, 2012
Qt Developer Days 2012 4
4.8.3
“BYO”
Nov 2011 May 2012
team@RIM
A story of…
Today
friends@RIM
Q1 2013
Qt Developer Days 2012 5
4.8.3
“BYO”
Nov 2011 May 2012
Jan 30, 2013
team@RIM
A story of…
Today
friends@RIM Community
Q1 2013
BlackBerry 10 development
Qt Developer Days 2012 7
WebWorks SDK
HTML5
AIR SDK
AS3 Flex
Native SDK
C/C++ Cascades
Android SDK
Java
BlackBerry 10 NDK
Qt Developer Days 2012 8
More under http://developer.blackberry.com/native/beta/documentation/
Cascades Developers QtGui Developers Game Developers
UI
QtGui
Qt Quick
Qt Quick
Qt Developer Days 2012 10
Qt on BlackBerry 10
QNX + BlackBerry Platform API
Cascades UI apps (C++ and QML)
Qt UI apps (C++ and Qt Quick)
QtCore QtNetwork
QtDeclarative
QtScript QtSvg
QtSql QtXmlPatterns QtXml
QPA plugin QNX adaptations BlackBerry adaptations
Qt-based Platform API
Items and elements
QtWebKit
Cascades UI framework
QtCreator plugin
QtGui
specific style (temporarily)
We do like QtQuick2! But… Qt 5 won’t be ready in time for BlackBerry 10
QML only
No set of native controls
UI thread can block rendering
We already have TAT’s Cascades engine
December 14, 2012
Cascades is native BlackBerry 10 UI framework
Allows writing apps in C++ or/and QML in a Qt way!
It is based on Qt but…
Has an own client-server scenegraph-based
rendering backend (does not use Qt for this)
You have to decide upfront which UI framework to use
But!! You can use non-UI BlackBerry 10 platform API in Qt UI apps
More about Cascades and platform API:
https://developer.blackberry.com/cascades/documentation
Qt Developer Days 2012 14
Cascades UI vs Qt UI?
Qt Quick
Qt Developer Days 2012 15
Qt on BlackBerry 10, again
QNX + BlackBerry Platform API
Cascades UI apps (C++ and QML)
Qt UI apps (C++ and Qt Quick)
QtCore QtNetwork
QtDeclarative
QtScript QtSvg
QtSql QtXmlPatterns QtXml
QPA plugin QNX adaptations BlackBerry adaptations
Qt-based Platform API
Items and elements
QtWebKit
Cascades UI framework
QtCreator plugin
QtGui
specific style (temporarily)
Qt Quick
Qt Developer Days 2012 16
Pure Qt apps
QNX + BlackBerry Platform API
Qt UI apps (C++ and Qt Quick)
QtCore QtNetwork
QtDeclarative
QtScript QtSvg
QtSql QtXmlPatterns QtXml
QPA plugin QNX adaptations BlackBerry adaptations
Qt-based Platform API
Items and elements
Cascades UI framework
QtCreator plugin
QtGui
specific style
Qt Quick
Qt Developer Days 2012 17
Cascades apps
QNX + BlackBerry Platform API
Cascades UI apps (C++ and QML)
QtCore QtNetwork
QtDeclarative
QtScript QtSvg
QtSql QtXmlPatterns QtXml
QPA plugin QNX adaptations BlackBerry adaptations
Qt-based Platform API
Items and elements
Cascades UI framework
QtCreator plugin
QtGui
specific style
polish!
Qt Developer Days 2012 18
Pure Qt UI on BlackBerry 10
• Qt C++ widgets
• BlackBerry 10 style • Qt Quick custom UI
• BYO
Full touch devices: now 1280x768, later 1280x720
Keyboard devices: 720x720
Tons of sensors
Bluetooth
NFC
Camera
GPS
and more…
Qt Developer Days 2012 19
Use platform APIs!
Qt Developer Days 2012 20
Your first steps Check http://qt-project.org/wiki/BlackBerry
Register @RIM and get signing keys
Download, install and setup the BlackBerry 10 NDK:
http://developer.blackberry.com/native/documentation/bb10/getting_sta
rted.html
Download and setup QtCreator 2.6.x
Get an “Hello World” app done
BlackBerry 10 NDK
Cross-compile toolchain
Qt 4.8.x
Momentics IDE
BlackBerry 10 Simulator
QtCreator 2.6.x or newer
Dev Alpha device
Qt Developer Days 2012 21
Your tools
Qt Developer Days 2012 22
Packaging
Files
BAR
Descriptor
(XML)
BAR
Signed
BAR BAR
Debug
Token
RIM
certificates
Developer
Certificates
Mandatory!
Written in the “BAR descriptor file”, XML based
Versions (build, platform, etc)
Names and IDs (author, app, package, etc)
Assets (files your app uses, incl. libs)
The icon and the splash-screen
Entry point
Permissions needed
Qt Developer Days 2012 23
Metadata about your app
Qt Developer Days 2012 24
Sandbox
data
logs
tmp
app
shared
Sandbox
Application Installation
User Shared
Focus on Qt4 mid-term
We work on Qt fully upstream!
Need(ed) to revert/add a few commits in rare cases
Use internal branches for integration and image builds
Run local Jenkins-based CI
Qt Developer Days 2012 26
Fully open source, upstream
Launch BlackBerry 10!
Launch BlackBerry 10!!
Launch BlackBerry 10!!
Qt home page on http://developer.blackberry.com/qt
Revive Qt Mobility for Qt4 in the Qt community
Get BlackBerry 10 integrated with the Qt Project CI
Work on the integration of Qt5 as an add-on lib
Explore how integrate BlackBerry WebKit in Qt
And more…
Qt Developer Days 2012 27
What is next?
Submit your BlackBerry 10 porting plan and you may be eligible for a
developer alpha device
RIM will make a one-time donation of $10K USD to the Qt Project
Hosting Foundation if 50 eligible Qt apps are ported to BlackBerry 10 by
the Qt community
https://developer.blackberry.com/offers/qt
Qt Developer Days 2012 28
Qt Developer Offers
BlackBerry Developer: https://developer.blackberry.com/
BlackBerry on Github: https://github.com/blackberry
Slides and videos from BlackBerry Jams: http://hosting.desire2learncapture.com/RIM/
Group @ Qt Project: http://qt-project.org/groups/qt-blackberry-and-qnx
Wiki @ Qt Project: http://qt-project.org/wiki/BlackBerry
Offers: https://developer.blackberry.com/offers/qt
Meet at the BlackBerry Jam Europe 5-6 February, Amsterdam
Thank you! Questions? Vladimir Minenko
Qt Developer Days 2012 29