Building Native Apps on BlackBerry...
Transcript of Building Native Apps on BlackBerry...
![Page 1: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/1.jpg)
Building Native Apps on BlackBerry 10
Shadab Rashid Application Development Consultant Developer Relations
Jan 14th, 2013
![Page 2: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/2.jpg)
Agenda
BlackBerry 10 Overview
Native/Cascades Development
Resources / Getting started
Lots of Sample apps
Q&A
![Page 3: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/3.jpg)
Integrated Social Beautiful
![Page 4: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/4.jpg)
Beautiful Flow
![Page 5: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/5.jpg)
Social Connected Apps
Share Framework
![Page 6: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/6.jpg)
Integrated Unified Inbox
![Page 7: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/7.jpg)
7 January 14, 2013
Peek from wherever you are
Content always on the foreground
Active thumbnails showing app
context
7
![Page 8: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/8.jpg)
8 January 14, 2013
Lets you type fast with just one finger
Predicts the next letter, with the entire
word
Just swipe up on the letter to finish the
word
8
![Page 9: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/9.jpg)
9 January 14, 2013
No more odd expressions or
awkward retakes
No more eyes closed!
9
![Page 10: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/10.jpg)
Roads to BlackBerry 10 Development
HTML5 BlackBerry®
WebWorks™
C/C++
Native SDK C++/Qt
Cascades
![Page 11: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/11.jpg)
Open standards
11
Very easy to port C/C++
Platform libraries built on open standards
POSIX and STL friendly (stdc++, socket, pthread, etc.)
![Page 12: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/12.jpg)
Open Standards (2)
12
POSIX and STL
C++,Sockets (libstdc++, libsockets)
OpenGL ES 1.1 / 2.0 (libEGL, libGLESv1_CM, libGLESv2)
OpenAL 1.1 (libOpenAL, libalut)
Imaging (libpng, libjpeg)
Compression (libz, libbz2)
Fonts (libfreetype)
Math (libm)
XML (libxml2, libxslt)
Database (libsqlite)
![Page 13: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/13.jpg)
Development Tools
• Supports Windows, Mac OS X, Linux
• GCC 4.6.3 based compiler tool chain
• GDB 7.3 debugging
• Device Deployment Tools
• VMware Simulator Images
• Eclipse CDT 8 based IDE (QNX Momentics)
13
![Page 14: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/14.jpg)
BlackBerry 10 Overview
14
![Page 15: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/15.jpg)
Zooming in on the NDK…
15
QNX
• Posix compatible
• C-APIs
• BPS event model
• Low Level Platform APIs
• Core open source libraries and standards
![Page 16: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/16.jpg)
Zooming in on the NDK…
16
Open Source libraries
• Many already ported to QNX
• http://blackberry.github.com/ndk
• …and more getting contributed
![Page 17: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/17.jpg)
Zooming in on the NDK…
17
Game platforms already ported to QNX
• ScoreLoop
• Unity
• Marmalade
• GameLoft
![Page 18: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/18.jpg)
Zooming in on the NDK…
18
This part of the NDK is already available on PlayBook!
• http://developer.blackberry.com/native
![Page 19: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/19.jpg)
Native/Cascades Development
C++/Qt
Cascades
C/C++
Native SDK
![Page 20: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/20.jpg)
Cascades in the native SDK
![Page 21: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/21.jpg)
The NDK – Two layers
High Level – Cascades
High level APIs / C++
Qt, QML, JavaScript
Built-in Elegance, beautiful UI
Provides the BlackBerry 10 UX
Visual tooling
Low Level – C API
Posix/Low level C; great for porting
Raw OS access, windowing, etc.
OpenGL ES, OpenAL, ...Excellent for games
Great for Open Source Integration 21
![Page 22: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/22.jpg)
Why Use Cascades?
Elegant UI Framework • Great looking core UI components
• Easy to build custom UI components
• Dedicated UI tooling including design
preview (w/ Photoshop Plugin)
Increase Productivity • Higher level APIs
• QT flavoured C++ and declarative UI
approach
![Page 23: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/23.jpg)
Cascades & Qt
• Mature C++ application framework
• Great APIs
• Signals and Slots
• Many helper classes
• QML
![Page 24: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/24.jpg)
Cascades and QT What’s the deal?
Cascades uses QT to provide plumbing and high level services
Object and event models
Markup parser (QtDeclarative)
Signals/Slots (i.e. callbacks)
Core services (e.g: XML-parsing, SQL libs.. Many more)
Cascades does not use QtGui or QtQuick
BlackBerry 10 has it’s own UI framework and roadmap
QtQuick QML != Cascades QML
24
![Page 25: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/25.jpg)
Define the UI in QML
import bb.cascades 1.0
Page {
content:
Label {
text: "Hello World!"
}
}
It's like HTML and JSON
had a baby.
![Page 26: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/26.jpg)
Add some formatting
import bb.cascades 1.0
Page {
content:
Label {
text: "Hello World!"
horizontalAlignment: HorizontalAlignment.center
}
}
This looks a bit like CSS. Only not.
![Page 27: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/27.jpg)
Add some JavaScript! import bb.cascades 1.0
Page {
Container {
Label {
id: hello
text: "Hello World!"
horizontalAlignment: HorizontalAlignment.center
}
Button {
text: "German-ize"
onClicked: {
hello.text = "Hallo Welt!";
}
}
}
}
Finally!
![Page 28: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/28.jpg)
Declarative QML
QML = Qt Modeling Language
QML can:
1. Used by UI designers
2. Rapid prototype UI
3. Do white label/ branding/promotions of applications (with different QML files)
28
import bb.cascades 1.0
Page {
content:
Label {
text: “Hello word!”
}
}
(Simple QML designed to create a Hello World page)
![Page 29: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/29.jpg)
QML – more than just layout
29
Button {
text: "Expand"
maxWidth: 200
onClicked: {
if (text == "Expand") {
text = "Contract"
maxWidth = 400
} else {
text = "Expand"
maxWidth = 200
} // else
}
} // Button
Embeddable JavaScript!
No need to reinvent the wheel
Do more than just markup in QML
Use separate JS files, create functions, handle signals
![Page 30: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/30.jpg)
Declarative QML (1)
30
Objects
Properties
Arrays (also properties)
JavaScript functions (also properties)
![Page 31: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/31.jpg)
QML Visual Tooling
QML editor with syntax highlighting/
code completion
Component library
(Drag and drop to QML)
QML design view
QML tree view,
QML properties view
![Page 32: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/32.jpg)
C++ and QML – A two way street.
32
C++ code can load QML files and access QML objects.
QML files can reference C++ values and objects
Everyone is happy
![Page 33: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/33.jpg)
Invoking C++ from QML
33
![Page 34: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/34.jpg)
Which layer for what?
34
For UI – QML
C++ for application logic (QtCore based)
C and BPS to access system features
Our github repo for popular frameworks and libs
github.com/blackberry
![Page 35: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/35.jpg)
C++/Qt with C API – an example
35
Qt Signals
![Page 36: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/36.jpg)
Standard UI Components
36
![Page 37: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/37.jpg)
UI Framework
37
![Page 38: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/38.jpg)
UI Framework (2)
38
![Page 39: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/39.jpg)
UI Framework (3)
39
Demo time:
Cascades Cookbook,
Cross fade, Poem
Maker
![Page 40: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/40.jpg)
Invocation framework, BBM
40
![Page 41: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/41.jpg)
Invocation, Flow, Share
Invoke other apps from your own!
Flow seamlessly between applications
Provide that awesome experience
Embed other apps (“viewers”) in your own!
Example: Just want to play a media file?
Just Invoke the media previewer!
41
![Page 42: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/42.jpg)
Unbound Invocation
42
I need to open this .doc file.
Anyone?
I can open .doc files
I can open .jpeg files
I am good for noting
Invocation Framework
![Page 43: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/43.jpg)
Bound Invocation
43
I want Dr. Doc to open this .doc
file.
I can open .doc files
Invocation Framework Dr. Doc
![Page 44: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/44.jpg)
BBM Framework
Increased discoverability:
Reach over 45 million users worldwide!
Increased engagement and app stickiness:
Get the addicting social element!
Share / download between users, engage friends
Increased monetization:
viral BBM discoverability + increased engagement = Richer developers
44
![Page 45: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/45.jpg)
Storage, App Sandbox, Languages
45
![Page 46: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/46.jpg)
Database Support
Cascades supports both:
QtSql
libsql
Easiest to use QtSql in a Cascades app, provided by QtCore
46
![Page 47: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/47.jpg)
QtSql Code Sample
47
QString dbPath = "data/db.db";
QSqlDatabase database
QSqlDatabase::addDatabase("QSQLITE");
database.setDatabaseName(dbPath);
database.open();
QSqlQuery query(database);
query.prepare("SELECT * FROM table");
query.exec();
![Page 48: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/48.jpg)
Screen, Multimedia
48
some
multimedia
samples!
![Page 49: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/49.jpg)
Image, Camera, Notifications
49
![Page 50: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/50.jpg)
Location, Sensors, Networking
50
![Page 51: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/51.jpg)
Sensor Subsystems Available
GPS
Accelerometer
Gyroscope
Magnetometer
NFC
Bluetooth
USB
51
Custom Map
View
![Page 52: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/52.jpg)
Where do you Start?
https://developer.blackberry.com/
![Page 53: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/53.jpg)
Getting Started 4 Easy Steps!
Download the Native SDK
53
Create a new Hello World app and
deploy it to your device
Run the getting started wizard
Window -> Preferences -> BlackBerry
Sets up your environment, keys, debug token
Register for Signing Keys
developer.blackberry.com/native
![Page 54: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/54.jpg)
Getting Started Resources
BlackBerry Native Development
http://developer.blackberry.com/native
BlackBerry Developer Blog
http://devblog.blackberry.com
BlackBerry Jam Sessions (LOTS of slides & videos)
http://www.blackberryjamconference.com/americas/content/sessions
Forums:
http://supportforums.blackberry.com/t5/Developer-Support-Forums/ct-p/blackberrydev
@BlackBerryDev
54
![Page 55: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/55.jpg)
youtube.com/blackberrydev
![Page 56: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/56.jpg)
Lots of sample apps!
![Page 57: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/57.jpg)
UX Trumps all!
UX Guidelines For BlackBerry 10
Key Principles
A Cinematic Experience
Multitasking as 2nd nature
Content is king
Fluid Workflow
Moments of Charm
One last app:
Quotes
![Page 58: Building Native Apps on BlackBerry 10rtholmes/teaching/2013winter/cs446/slides/SE2_04_BB10-Native.pdfBuilding Native Apps on BlackBerry 10 Shadab Rashid Application Development Consultant](https://reader033.fdocuments.net/reader033/viewer/2022041621/5e3eeee6d21c6d1e82674d93/html5/thumbnails/58.jpg)
Thanks
Shadab Rashid Application Development Consultant Developer Relations
@surashid
58