Six reasons you should consider building apps for BlackBerry 10. I presented this at the AT&T Developer Summit. I did the whole presentation and demos directly from my BlackBerry Z10 device.
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Att dev summit_2013_building_bb10_apps_larry
1. The views expressed in this presentation do not necessarily reflect the views of AT&T.
1
Building Applications for
Launch of the New BlackBerry
10 Platform
Larry McDonough
Principal Evangelist,
BlackBerry
@LMCDUNNA
2. The views expressed in this presentation do not necessarily reflect the views of AT&T.
I Know What You’re Thinking…
http://techniety.blogspot.com/2012/10/misconceptions-about-blackberry.html
3. The views expressed in this presentation do not necessarily reflect the views of AT&T.
Who Is
This Guy?
Larry
McDonough
Principal
Evangelist for
BlackBerry
@LMCDUNNA
4. The views expressed in this presentation do not necessarily reflect the views of AT&T.
Session Overview
• What is BlackBerry 10?
• 6 Reasons you should care
• Seeing is Believing! Demo of User Experience
• Enterprise device or Consumer?
• Demo of BlackBerry Balance
• Developer Options: How do I get my apps on BlackBerry 10?
http://developer.blackberry.com
4
5. The views expressed in this presentation do not necessarily reflect the views of AT&T.
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
6. The views expressed in this presentation do not necessarily reflect the views of AT&T.
Where Did BlackBerry 10 Come From?
6
BlackBerry®
PlayBook™
HTML5
WebWorks
BlackBerry 10TM
http://developer.blackberry.com
7. The views expressed in this presentation do not necessarily reflect the views of AT&T.
High Level Architecture
BlackBerry Services
(BES / Mobile Fusion, BIS, Push, Maps, Payments, BBM, Scoreloop, etc.)
HTML 5 &
WebWorks
Native C/C++ &
Cascades UI
BlackBerry 10 OS
http://developer.blackberry.com
8. The views expressed in this presentation do not necessarily reflect the views of AT&T.
6 Reasons to Care
• Over 100,000 apps available
a 220% increase from last year
• Over 3 billion downloads
• Over 175 million downloads per month
• Over 6 million downloads every day
• Nearly 30 downloads per year per user
•Industry-leading reach
App World is available in over 160 countries
•Carrier Billing with over
60 major carriers across 35+
countries and expanding
1.Huge Global Market
9. The views expressed in this presentation do not necessarily reflect the views of AT&T.
6 Reasons to Care
• Over 100,000 apps available
a 220% increase from last year
• Over 3 billion downloads
• Over 175 million downloads per month
• Over 6 million downloads every day
• Nearly 30 downloads per year per user
•Industry-leading reach
App World is available in over 160 countries
•Carrier Billing with over
60 major carriers across 35+
countries and expanding
March
2009
Jun
2011
Jan
2012
July
2012
App Downloads
Accelerating
1B
2B
3B
1.Huge Global Market
10. The views expressed in this presentation do not necessarily reflect the views of AT&T.
6 Reasons to Care
10
1.Huge Global Market
2.Most Profitable
Platform for App
Developers
Source: Vision Mobile Report, June 2012
$2,735
$3,853
$3,693
$1,234
Average revenue per app-month across the lower
95% of developers by per-app revenue (n=806)
Android
Blackberry
OS
iOS
Windows
Phone
11. The views expressed in this presentation do not necessarily reflect the views of AT&T.
6 Reasons to Care
11
1.Huge Global Market
2.Most Profitable
Platform for App
Developers
3.Most Social Mobile
Platform
http://developer.blackberry.com
12. The views expressed in this presentation do not necessarily reflect the views of AT&T.
6 Reasons to Care
C/C++
Native SDK
C++/Qt
Cascades
1.Huge Global Market
2.Most Profitable
Platform for App
Developers
3.Most Social Mobile
Platform
4.Easy to Develop Apps
HTML5
BlackBerry®
WebWorks™
BlackBerry
Runtime for
Android Apps
“One F***ing Day”
Michael Shchade
CEO Fishlabs
http://developer.blackberry.com
13. The views expressed in this presentation do not necessarily reflect the views of AT&T.
6 Reasons to Care
1.Huge Global Market
2.Most Profitable
Platform for App
Developers
3.Most Social Mobile
Platform
4.Easy to Develop Apps
5.Going Beyond Mobile
http://developer.blackberry.com
14. The views expressed in this presentation do not necessarily reflect the views of AT&T.
6 Reasons to Care
1.Huge Global Market
2.Most Profitable
Platform for App
Developers
3.Most Social Mobile
Platform
4.Easy to Develop Apps
5.Going Beyond Mobile
6.Because We Care
http://developer.blackberry.com
15. The views expressed in this presentation do not necessarily reflect the views of AT&T.
Demo
• Will show the UX & Flow.
Specifically, one-hand use, the
amazing keyboard, the Time
Warp Camera, 3D graphics,
and insane multitasking
designed to get stuff done.
http://developer.blackberry.com
16. The views expressed in this presentation do not necessarily reflect the views of AT&T.
Enterprise or Consumer
Device?
• Consumer business surpassed Enterprise
business 2 years ago!
• Enterprise business still very important to RIM
• BYOD Trend: RIM takes lead with BlackBerry
Balance & BlackBerry Mobile Fusion
• Most people that have smartphones also
have jobs!
• There is no “Enterprise vs. Consumer” anymore!
BlackBerry 10 provides the security enterprises need AND the
consumer experience people want without compromising on
either one!
17. The views expressed in this presentation do not necessarily reflect the views of AT&T.
Demo: Personal & Work Partition
• Will demonstrate switching between
Personal and Work partitions
(BlackBerry Balance)
• Will demonstrate Enterprise App
World and Enterprise apps
(managed by BlackBerry Mobile
Fusion)
http://developer.blackberry.com
18. The views expressed in this presentation do not necessarily reflect the views of AT&T.
C/C++
Native SDK
C++/Qt
Cascades
HTML5 BlackBerry®
WebWorks™
BlackBerry Runtime
for Android Apps
Developer Options
||||||||
http://developer.blackberry.com
19. The views expressed in this presentation do not necessarily reflect the views of AT&T.
BlackBerry Web Platform
• Driven by strong Web standards support
• Powered by WebKit
• HTML5 and CSS3
• Flash 11 and WebGL
http://developer.blackberry.com
20. The views expressed in this presentation do not necessarily reflect the views of AT&T.
What Can You Do With
BlackBerry WebWorks?
• Touch Events
• Geolocation
• Web Sockets
• Offline storage
• Audio / Video
• Notifications
• WebGL
… and more
Slacker
ScoreMobile Tablet
http://developer.blackberry.com
21. The views expressed in this presentation do not necessarily reflect the views of AT&T.
document.ontouchstart = function(event) {
//Tell browser engine not to scroll/span/zoom
// when user touches screen:
event.preventDefault();
var touch = event.changedTouches[0];
alert(touch.pageX + "," + touch.pageY);
}
Pong-port sample
http://spaceport.io
Touch Events…
Define custom touch event handlers
Up to 4-finger touch events supported
See “Sample Code – SketchPad Application” http://bit.ly/hz67JX
http://developer.blackberry.com
22. The views expressed in this presentation do not necessarily reflect the views of AT&T.
WebWorks Custom Extensions
Build your own APIs
- Access native layer functionality
- More powerful than just HTML5
- E.g. NFC, Clipboard, Barcode, Analytics
JavaScript interface for platform code
- BlackBerry OS = Java
- Tablet OS = AIR
- BlackBerry 10 = C/C++
Lensboost
Mblware Ltd
http://developer.blackberry.com
23. The views expressed in this presentation do not necessarily reflect the views of AT&T.
BlackBerry Apps
WebWorks Tools
How to Get There…
http://developer.blackberry.com
Web Assets
24. The views expressed in this presentation do not necessarily reflect the views of AT&T.
Developer Options
BlackBerry
Runtime for
Android
Apps
http://developer.blackberry.com
C/C++
Native SDK
C++/Qt
Cascades
HTML5 BlackBerry®
WebWorks™
BlackBerry Runtime
for Android Apps
||||||||
25. The views expressed in this presentation do not necessarily reflect the views of AT&T.
Native C/C++ & Cascades
• Low Level
• Posix/Low level C APIs
• Low level windowing features
• OpenGL ES
• Excellent for games or self
contained applications
• High Level – Cascades
• High level APIs / C++
• QT flavored + QML + JavaScript
• High level UI Framework with BlackBerry 10 UI controls
26. The views expressed in this presentation do not necessarily reflect the views of AT&T.
Native C/C++
gameplay
http://developer.blackberry.com
27. The views expressed in this presentation do not necessarily reflect the views of AT&T.
Cascades, A Native UI Framework
• Cascades & Qt, a great match!
• Mature C++ application framework
• Great APIs
• Signals and Slots
• Many helper classes
• QML
http://developer.blackberry.com
28. The views expressed in this presentation do not necessarily reflect the views of AT&T.
Why Use Cascades?
• Elegant UI Framework
– Great looking core UI
components
– Easy to build custom
components
– Dedicated UI tooling including
real-time design preview and
Photoshop plugin
• Increased Productivity
– Higher level APIs
– QT flavored C++ and declarative UI
http://developer.blackberry.com
29. The views expressed in this presentation do not necessarily reflect the views of AT&T.
Standard UI Components…
http://developer.blackberry.com
30. The views expressed in this presentation do not necessarily reflect the views of AT&T.
Components…
http://developer.blackberry.com
31. The views expressed in this presentation do not necessarily reflect the views of AT&T.
Typical Cascades App
http://developer.blackberry.com
JavaScript
based UI logic
QML based UI
structure
QT/C++
Backend
32. The views expressed in this presentation do not necessarily reflect the views of AT&T.
Any Mix Is Possible
http://developer.blackberry.com
JavaScript
based UI logic
QML based
UI structure
QT/C++
Backend
33. The views expressed in this presentation do not necessarily reflect the views of AT&T.
Java
Script
QML
C++
myCppFunction()
myCppFunction {
}
myJSFunction{
}
myJSFunction() class MyClass {
int property;
}
MyObject {
MyProperty: x
}
QmlDocument::create
("asset:///main.qml")
MyObject {
MyOtherObj {…}
}
Moving Between QML and C++ Is Easy
34. The views expressed in this presentation do not necessarily reflect the views of AT&T.
Easy to Read, Declarative QML
Objects
Properties
Arrays
JavaScript functions
http://developer.blackberry.com
35. The views expressed in this presentation do not necessarily reflect the views of AT&T.
http://developer.blackberry.com
36. The views expressed in this presentation do not necessarily reflect the views of AT&T.
http://developer.blackberry.com
QML Editor with syntax
highlighting and code completion
37. The views expressed in this presentation do not necessarily reflect the views of AT&T.
http://developer.blackberry.com
QML Design View
38. The views expressed in this presentation do not necessarily reflect the views of AT&T.
http://developer.blackberry.com
QML Component Library
drag & drop to QML editor
39. The views expressed in this presentation do not necessarily reflect the views of AT&T.
http://developer.blackberry.com
QML Tree View
QML Properties View
40. The views expressed in this presentation do not necessarily reflect the views of AT&T.
Developer Options
BlackBerry
Runtime for
Android
Apps
http://developer.blackberry.com
C/C++
Native SDK
C++/Qt
Cascades
HTML5 BlackBerry®
WebWorks™
BlackBerry Runtime
for Android Apps
||||||||
41. The views expressed in this presentation do not necessarily reflect the views of AT&T.
Adobe AIR
• Adobe Flash Builder 4.7
• FDT Powerflasher
• Plus BlackBerry SDK for
Adobe
• Can also use command-line
tools and bypass IDEs…
http://developer.blackberry.com
42. The views expressed in this presentation do not necessarily reflect the views of AT&T.
BlackBerry Runtime for Android Apps
• Based on Open Source Android, v2.3.3 aka “Gingerbread”
• Repackage Android apps, sign, and submitted to BlackBerry World
• Majority of apps convert with no changes to source (~65%)
• Some limitations for first release
• No: Native, Google APIs
• Eclipse plugin & SDK w/simulator
• Android-based apps appear like all other apps in BlackBerry World
(AIR, WebWorks, etc.). To the consumer, “An app, is an app”
http://developer.blackberry.com
.apk in .bar
out
43. The views expressed in this presentation do not necessarily reflect the views of AT&T.
Summary:
6 Reasons to Care
1. Huge Global Market
2. Most Profitable Mobile
Platform for App
Developers
3. Most Social Mobile Platform
4. Easy to Develop Apps
5. Going Beyond Mobile
6. Because We Care
$1k USD < your earnings < $10K
RIM pays the difference!
Must be in BlackBerry World
by Jan 21st
http://developer.blackberry.com
44. The views expressed in this presentation do not necessarily reflect the views of AT&T.
Useful Links
$1k USD < your earnings < $10K
RIM pays the difference!
Must be in BlackBerry World
by Jan 21st
http://developer.blackberry.com
• Dev Tools:
developer.blackberry.com
• $10k program:
developer.blackberry.com/10k
• OSS projects:
github.com/blackberry
45. The views expressed in this presentation do not necessarily reflect the views of AT&T.
thank you!
Editor's Notes
TAT was acquired by RIM the winter of 2010
Creating a new platform is very difficult task
Talking points:
BlackBerry has the strongest level of web standards support among all mobile web platforms.
BlackBerry is the ONLY platform to offer native WebGL to its developers.
RIM is a leading contributor to the WebKit open source project.
Talking points:
BlackBerry has the strongest level of web standards support among all mobile web platforms.
BlackBerry is the ONLY platform to offer native WebGL to its developers.
RIM is a leading contributor to the WebKit open source project.
Talking points:
The WebKit engine provides default touch event behaviors.
Developers can override these behaviors and create their own (e.g. custom swipe gestures, disable pinch-zoom or page scrolling)
Very important for BlackBerry 10 Dev Alpha = touch only device.
Talking points:
The WebKit engine provides default touch event behaviors.
Developers can override these behaviors and create their own (e.g. custom swipe gestures, disable pinch-zoom or page scrolling)
Very important for BlackBerry 10 Dev Alpha = touch only device.
Demo: build sample app using Ripple & WebWorks BB10