La piattaforma BlackBerry 10, lanciata lo scorso 30 Gennaio, é attualmente la piattaforma mobile piú aperta presente sul mercato per quanto riguarda le tecnologie di sviluppo supportate. Gli sviluppatori possono agilmente portare il proprio codice su BB10 con il minimo sforzo e, grazie ai numerosi framework e SDK a disposizione, avere a portata di mano un’ambia scelta di strumenti per sfruttare al meglio la potenza del nuovo sistema operativo. Quale strategia adottare per portare la propria app su BlackBerry 10? Quali le opportunitá?
4. Storefront Reach
Over 80 Million Subscribers
170 Markets
Over 4 Billion Apps Downloaded
Over 70.000 BB10 Apps Approved For Sale
100.000+ BB10 apps submitted for review
110.000+ apps for BBOS and older devices
54.000+ vendors
4
6. More money for devs!
Ÿ 4% more than iOS developers (per App / month)
Ÿ >35% more than Android developers (per App /
month)
Ÿ Developing an app for iOS costs
„ 21% more than Android
„ 81% more than BlackBerry
6
8. Acquisitions
Webkit Experts Platform OS UX / UI Design
!
Ripple
Web Development Social Contacts
Device Mgmt.
Social Calendaring
App Distribution
Encryption
Smartphone
Navigation Social Gaming Security 8
9. Platform
Ÿ Built on QNX Neutrino Real-time OS
Ÿ Microkernel based OS
Ÿ POSIX Compliant OS
„ (Portable Operating System Interface)
Ÿ Native C/C++ Applications
„ Direct OpenGL / HW Access
„ Qt/Cascades for native development
9
15. Standard
• STL and POSIX compliant libraries
• Screen and Windowing APIs
• Gestures library
• Input events library
• Imaging and Compression
• OpenGL ES 1.1/2.0
• OpenAL 1.1
• Freetype Font Rendering
• Math
• XML and SQLite Database library
15
16. Cross-platform Libraries
• Boost: portable C++ libraries
• Cocos2D-X: cross-platform 2D game framework
• Box2D: 2D physics engine
• Bullet : 3D physics engine
• GamePlay: cross-platform 3D gaming framework
• Lua: embeddable scripting language
• SFML/SDL: cross-platform multimedia library.
• Skia: Fast 2D rendering engine
16
17. Gaming Platform
Ÿ Scoreloop
SDK
„
Integrate
Social
Gaming
Features
„
Solid
Analy8cs
„
Cross-‐pla<orm
presence
„
Billing
/
Mone8za8on
feature
Ÿ Payment
APIs
for
in-‐Game
transac8ons
17
18. BlackBerry on GitHub
• Open Source Development Community
• Port libraries and frameworks
• Create libraries and frameworks
• Collaborate and contribute
• Work directly with other BlackBerry Platform Developers
blackberry.github.com
18
19. Game Engines
Ÿ Unity
Technologies
Ÿ Marmalade
SDK
Ÿ ShiVa3D
Game
Engine
with
Development
tools
Ÿ More
Coming!
19
20. Development tools
• GCC and GDB based tool chain
• Momentics IDE - Eclipse based C/C++ Development
Tools
• In-built Application Debugging, Profiling and Memory
Analysis
• Microsoft Visual Studio plugin
20
21. Visual Studio Plugin
Ÿ You can use the BlackBerry Native Plug-in for Microsoft
Visual Studio to develop C and C++ applications for your
BlackBerry 10 device or BlackBerry PlayBook tablet.
21
22. Links
Ÿ BlackBerry
Na8ve
SDK
developer.blackberry.com/na2ve
-‐>
“Download
the
Na-ve
SDK”
-‐>
“Get
started
with
Na-ve
SDK”
Ÿ Blackberry
Open
Source
blackberry.github.com
22
24. What is Cascades?
Ÿ Easy
to
use
framework
for
delivering
the
astonishing
user
experience
and
UI
„ Rich
set
of
core
UI
components
„ Built
in
signature
effects
„ Pre-‐packaged
interac8on
design
„ Easy
data
binding
to
various
data
sources
(SQL/XML/JSON)
„ Ease
of
integra8on
with
pla<orm
services
„ C++
and/or
QML/JavaScript®
power
for
the
same
object
model
24
27. Cascades and Qt
• Mature C++ application framework
• Good APIs
• Signals and Slots
• Many help classes
• QML
• QtGui Cascades
Cascades
27
28. Creating UIs
• Creating UIs in C++ is a lot of fun, but there are easier
and faster ways to describe UI.
• QML
• declarative language to describe trees of Qt objects with
properties (typically user interface)
• Looks like JSON
• Embed JavaScript as signal handlers
• A different view of the same object model that C++ offers
• Easily mixed with C++
• Preview your QML UI in Cascades Builder
28
29. Why Cascades?
• For Qt Developers….
• Cascades replaces Qt Quick, Qt GUI
• Cascades Builder replaces Qt Creator
• Slightly different QML syntax
• So, why Cascades???
• Cascades UI rendering NOT on the main thread
• BlackBerry10 Look and Feel
• Advanced placement management of components
29
30. Cascades UI Framework
• Rich collection of in-built controls
• Some 30+ fully customizable UI controls
• Action Bar
• Navigation – Tabs & Back
• View specific actions
• Context Menu
• Item specific actions
30
31. Hello World in Cascades
import bb.cascades 1.0
Page {
content: Label {
text: "Hello World"
}
}
31
32. Hello World in Qt
Page* root = new Page;
Label* label = Label::create()
.text("Hello World");
root->setContent(label);
Application::instance()->setScene(root);
32
33. Cascades IDE
QML editor with syntax highlighting/
code completion QML design view
Component library
(Drag and drop to QML)
QML tree view,
QML properties view
33
37. HTML5 and WebWorks
Ÿ Port your existing Webs to BlackBerry WebWorks
• HTML5, CSS3, JavaScript
• Leading in mobile browser benchmarks
• Allows for cross-platform web development
• Broadest portability, Native Look&Feel (BBUI.js), any IDE
37
38. WebWorks for BB10
• The SDK has been re-written for BlackBerry 10
– No longer based on Java or Adobe AIR
– It is now based on JavaScript with a C/C++ back end
– The packaging process uses node.js
38
39. Why HTML5 and WebWorks?
Decision guidance
Ÿ Utilize your existing Web experience
„ Re-use lots of cross platform code
Ÿ Extend with BlackBerry® WebWorks™ platform
to securely access native level functionality
„ Provides the best of both worlds
Ÿ Rich hardware accelerated UI
Ÿ BB10 apps built with BlackBerry® WebWorks™ behave
like native apps
39
40. BlackBerry Web Platform
§ Driven by strong Web standards support
§ Powered by WebKit
§ HTML5 and CSS3
§ Flash 11 and WebGL
§ WebWorks and Cordova
40
41. What can you do?
• Geolocation
• Offline mode
• Storage
• Audio / Video
• 2D Graphics
• Advanced forms
• Invoke
• Web Workers
• Notifications 41
42. How do I get there?
Web
Assets
WebWorks
Tools
BlackBerry
Applica8ons
42
43. Custom WebWorks API
• 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++
43
44. HTML5 Emulator - Ripple
• A multi-platform mobile emulator for testing
– Chrome Extension
– Render Web content similar to a web browser
– Emulate device-specific APIs and capabilities
– Web inspector debugging & profiling
– Package and sign BlackBerry applications
• Supported APIs:
– WebWorks, WebWorks for Tablet OS
– WebWorks for BlackBerry 10
– PhoneGap
44
46. Web Platform Extras
§ AliceJS library
§ CSS3 hardware acceleration
§ WebGL
§ 3D Graphics, OpenGL ES 2.0
§ Community frameworks
46
47. bbui.js
• Designed for use with BlackBerry WebWorks
• A web framework that provides a BlackBerry Look
and Feel
• Framework goals
• Follows BlackBerry 10 UI guidelines
• Efficient screen management
• Focused on performance and memory optimization
• Open source and collaborative
• Community driven, not officially from BlackBerry
47
51. BlackBerry Runtime for Android™
Ÿ Enable Android software stack running on the
BlackBerry 10, including
„ Application framework
„ Dalvik Virtual machine
„ Graphics and media
„ Structured data storage, e.g. SQLite®
„ Device access, e.g. GPS, accelerometer, compass, etc.
Ÿ Run at full speed directly on the OS kernel
„ Optimized performance; NOT virtualized
„ Tightly integrated with the underlying OS
Ÿ Currently based on Android 2.3.3 (aka Gingerbread)
51
52. Target Developers
• Android App Developer
• Only here because it is another avenue to sell their application
• Heard that BlackBerry had an Android Runtime and thought they
would check it out
• BlackBerry Java Developer
• Decided to invest in Android Java to hit both BlackBerry and
Android devices
• Their Java App does not use many/any BlackBerry APIs
• Frustrated that we do not support Java runtime on BlackBerry
anymore
52
53. Compatibility and Limitations
Ÿ About 65-70% of all Android apps are compatible today
Ÿ Not all Android APIs are supported
• Hardware and OS limitations
Ÿ Currently major unsupported features include:
• Bluetooth
• Google Maps (workarounds available)
• NFC
• Native Android Code
Ÿ Android Apps are limited to the personal perimeter
Ÿ Full compatibility list: developer.blackberry.com/android/apisupport/ 53
54. Porting Existing Apps
Ÿ 4 Tool options to use
• Online Conversion Tool – quickest way to get app converted
• Eclipse Plug-in – For most Android developers
• Command-line Tools – For advanced developers
• Graphical AID – very easy to use
For more information:
http://developer.blackberry.com/android/tool/
54
58. Developing with Adobe AIR
Ÿ Easily
adapt
and
deploy
exis8ng
content
Ÿ Na2ve
BlackBerry®
PlayBook™
tablet
and
BlackBerry
10
component
set
look
and
feel
Ÿ Can
create
hybrid
apps
Ÿ Access
to
na8ve
(C/C++)API’s
with
Adobe®
AIR®
Na8ve
Extensions
(ANE)
Ÿ Lots
of
great
community
support
Ÿ Lots
of
open-‐source
frameworks
58
59. Tools and getting started
Ÿ Flash Builder 4.6 and 4.7 Powerflasher FDT (Eclipse based)
Ÿ Adobe AIR SDK with Adobe ActionScript and Adobe Flex
APIs create an engaging user experience
„ unique UI components and predefined skins
„ listeners for events that are specific to BlackBerry devices
Ÿ access the features that are unique to mobile devices
„ Accelerometer
„ Geolocation
Ÿ you can create AIR Native Extensions (ANE)
59
60. BlackBerry 10 UI
Ÿ QNXSkins.ane stores the assets for the skins
„ Device deployed ANE
„ Correctly sized assets are stored on the device
„ Reduces application file size
60