Developing for BlackBerry 10 – Tools and SDKs by Luca Filigheddu

Preview:

DESCRIPTION

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á?

Citation preview

Develop for BlackBerry 10 Approaches and Possibilities Luca Filigheddu –Developer Evangelist Developer Relations EMEA - BlackBerry @filos

Agenda

•  Why developing for BlackBerry •  Platform Overview •  Developer Ecosystem •  Technical Overview •  Q&A

Why developing for BlackBerry 10?

Storefront Reach

4

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

Money!

5

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

Ok, now let’s talk about technology!

Acquisitions

8

Social Calendaring App Distribution

Smartphone Security

Web Development

UX / UI Design

Navigation

Platform OS

Social Gaming

Social Contacts

Webkit Experts

Device Mgmt.

Encryption

Ripple!

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

Transition

10

Choices!

BlackBerry 10 SDKs

12

ActionScript

Adobe AIR HTML5, CSS, JavaScript

WebWorks C/C++

Native SDK

Java

Android Runtime

What to choose?

�  Background and Skills �  Reuse of existing code, assets

�  Requirements �  Cross-portfolio, cross-platform, features

�  Platform Capabilities �  APIs, tooling, frameworks, constraints

�  Tools �  IDE, utilities, simulation, familiarity

�  Support �  Community, docs, samples

13

BlackBerry Native SDK

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

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

Gaming Platform

�  Scoreloop  SDK    �   Integrate  Social  Gaming  Features  �   Solid  Analy8cs    �   Cross-­‐pla<orm  presence  �   Billing  /  Mone8za8on  feature  

�  Payment  APIs  for  in-­‐Game  transac8ons  

17

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

Game Engines

�  Unity  Technologies  �  Marmalade  SDK  �  ShiVa3D  Game  Engine  with  Development  tools  �  More  Coming!  

19

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

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

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

Cascades

C++/Qt

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

What is Cascades?

25

Out-of-the-box Elegance

26

Cascades and Qt

•  Mature C++ application framework •  Good APIs •  Signals and Slots •  Many help classes •  QML •  QtGui Cascades

27

Cascades

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

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

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

Hello World in Cascades

import bb.cascades 1.0 Page { content: Label { text: "Hello World" } }

31

Hello World in Qt

Page* root = new Page; Label* label = Label::create() .text("Hello World"); root->setContent(label); Application::instance()->setScene(root);

32

Cascades IDE

33

Component library (Drag and drop to QML)

QML design view

QML tree view, QML properties view

QML editor with syntax highlighting/ code completion

Links

�  BlackBerry Cascades �  developer.blackberry.com/cascades

�  Blackberry Open Source �  blackberry.github.com/cascades/samples.html

34

BlackBerry WebWorks

HTML5

BlackBerry10 & HTML5

�  Unparalleled Standards Support

�  Incredible Performance

36

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

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

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

BlackBerry Web Platform

§  Driven by strong Web standards support §  Powered by WebKit §  HTML5 and CSS3 §  Flash 11 and WebGL §  WebWorks and Cordova

40

What can you do?

•  Geolocation •  Offline mode •  Storage •  Audio / Video •  2D Graphics •  Advanced forms •  Invoke •  Web Workers •  Notifications 41

How do I get there?

42

Web  Assets   WebWorks  Tools   BlackBerry  Applica8ons  

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

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

Ripple Extension

45

Web Platform Extras

§  AliceJS library §  CSS3 hardware acceleration

§  WebGL §  3D Graphics, OpenGL ES 2.0

§  Community frameworks

46

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

bbui.js - Cases

48

Links

�  SDK + Simulators �  http://developer.blackberry.com/html5

�  GitHub �  https://github.com/blackberry/BB10-WebWorks-Samples

49

Android Runtime and Packager

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

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

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

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

Success stories

55

Links

�  Where to start �  http://developer.blackberry.com/android

56

Adobe AIR

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

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

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

Support

�  Currently, Adobe AIR 3.1 is supported �  Adobe AIR 3.4 and Stage 3D will be supported soon

61

Links

�  SDK + Simulators �  http://developer.blackberry.com/air

�  GitHub �  https://github.com/blackberry/Samples-for-AIR

62

Q&A

THANK YOU Luca Filigheddu – Developer Evangelist Developer Relations EMEA – BlackBerry @filos

Recommended