Develop for BlackBerry 10Approaches and PossibilitiesLuca Filigheddu –Developer EvangelistDeveloper Relations EMEA - Black...
Agenda•  Why developing for BlackBerry•  Platform Overview•  Developer Ecosystem•  Technical Overview•  Q&A
Why developing for BlackBerry 10?
Storefront ReachOver 80 Million Subscribers170 MarketsOver 4 Billion Apps DownloadedOver 70.000 BB10 Apps Approved For Sal...
Money!         5
More money for devs!Ÿ  4% more than iOS developers (per App / month)Ÿ  >35% more than Android developers (per App /    m...
Ok, now let’s talk about technology!
Acquisitions  Webkit Experts           Platform OS       UX / UI Design                    !             RippleWeb Develop...
PlatformŸ  Built on QNX Neutrino Real-time OSŸ  Microkernel based OSŸ  POSIX Compliant OS  „    (Portable Operating Sy...
Transition             10
Choices!
BlackBerry 10 SDKs                                                        Java    C/C++     HTML5, CSS, JavaScript     Act...
What to choose?Ÿ  Background and Skills    „  Reuse of existing code, assetsŸ  Requirements    „  Cross-portfolio, cro...
BlackBerry Native SDK
Standard•    STL and POSIX compliant libraries•    Screen and Windowing APIs•    Gestures library•    Input events library...
Cross-platform Libraries•    Boost: portable C++ libraries•    Cocos2D-X: cross-platform 2D game framework•    Box2D: 2D p...
Gaming PlatformŸ  Scoreloop	  SDK	  	      „    	  Integrate	  Social	  Gaming	  Features	      „    	  Solid	  Analy8c...
BlackBerry on GitHub•    Open Source Development Community•    Port libraries and frameworks•    Create libraries and fram...
Game EnginesŸ    Unity	  Technologies	  Ÿ    Marmalade	  SDK	  Ÿ    ShiVa3D	  Game	  Engine	  with	  Development	  tool...
Development tools•  GCC and GDB based tool chain•  Momentics IDE - Eclipse based C/C++ Development   Tools•  In-built Appl...
Visual Studio PluginŸ  You can use the BlackBerry Native Plug-in for Microsoft    Visual Studio to develop C and C++ appl...
LinksŸ  BlackBerry	  Na8ve	  SDK	  developer.blackberry.com/na2ve	     -­‐>	  “Download	  the	  Na-ve	  SDK”	     -­‐>	  ...
Cascades           C++/Qt
What is Cascades?Ÿ  Easy	  to	  use	  framework	  for	  delivering	  the	  astonishing	      user	  experience	  and	  UI...
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•   ...
Creating UIs•  Creating UIs in C++ is a lot of fun, but there are easier   and faster ways to describe UI.•  QML  •    dec...
Why Cascades?•  For Qt Developers….  •    Cascades replaces Qt Quick, Qt GUI  •    Cascades Builder replaces Qt Creator  •...
Cascades UI Framework•  Rich collection of in-built controls•  Some 30+ fully customizable UI controls•  Action Bar    •  ...
Hello World in Cascadesimport bb.cascades 1.0Page {    content: Label {        text: "Hello World"    }}                  ...
Hello World in QtPage* root = new Page;Label* label = Label::create()                .text("Hello World");root->setContent...
Cascades IDE                     QML editor with syntax highlighting/                     code completion        QML desig...
LinksŸ  BlackBerry Cascades  „    developer.blackberry.com/cascadesŸ  Blackberry Open Source  „    blackberry.github.c...
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...
WebWorks for BB10•  The SDK has been re-written for BlackBerry 10  –    No longer based on Java or Adobe AIR  –    It is n...
Why HTML5 and WebWorks?Decision guidanceŸ  Utilize your existing Web experience    „  Re-use lots of cross platform code...
BlackBerry Web Platform§    Driven by strong Web standards support§    Powered by WebKit§    HTML5 and CSS3§    Flash ...
What can you do?•  Geolocation•  Offline mode•  Storage•  Audio / Video•  2D Graphics•  Advanced forms•  Invoke•  Web Work...
How do I get there?    Web	  Assets	     WebWorks	  Tools	     BlackBerry	  Applica8ons	                                  ...
Custom WebWorks API•  Build your own APIs  –    Access native layer functionality  –    More powerful than just HTML5  –  ...
HTML5 Emulator - Ripple•  A multi-platform mobile emulator for testing  –    Chrome Extension  –    Render Web content sim...
Ripple Extension                   45
Web Platform Extras§  AliceJS library    §  CSS3 hardware acceleration§  WebGL    §  3D Graphics, OpenGL ES 2.0§  Com...
bbui.js•  Designed for use with BlackBerry WebWorks   •    A web framework that provides a BlackBerry Look        and Feel...
bbui.js - Cases                  48
LinksŸ  SDK + Simulators  „    http://developer.blackberry.com/html5Ÿ  GitHub  „    https://github.com/blackberry/BB10...
Android Runtime and Packager
BlackBerry Runtime for Android™Ÿ  Enable Android software stack running on the    BlackBerry 10, including  „    Applica...
Target Developers•  Android App Developer  •    Only here because it is another avenue to sell their application  •    Hea...
Compatibility and LimitationsŸ  About 65-70% of all Android apps are compatible todayŸ  Not all Android APIs are support...
Porting Existing AppsŸ  4 Tool options to use  •    Online Conversion Tool – quickest way to get app converted  •    Ecli...
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™	  tab...
Tools and getting startedŸ  Flash Builder 4.6 and 4.7        Powerflasher FDT (Eclipse based)Ÿ  Adobe AIR SDK with Adobe...
BlackBerry 10 UIŸ  QNXSkins.ane stores the assets for the skins  „    Device deployed ANE  „    Correctly sized assets ...
SupportŸ  Currently, Adobe AIR 3.1 is supportedŸ  Adobe AIR 3.4 and Stage 3D will be supported soon                     ...
LinksŸ  SDK + Simulators  „    http://developer.blackberry.com/airŸ  GitHub  „    https://github.com/blackberry/Sample...
Q&A
THANK YOULuca Filigheddu – Developer EvangelistDeveloper Relations EMEA – BlackBerry@filos
Upcoming SlideShare
Loading in …5
×

Developing for BlackBerry 10 – Tools and SDKs by Luca Filigheddu

1,049 views

Published on

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

Published in: Technology, Art & Photos
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,049
On SlideShare
0
From Embeds
0
Number of Embeds
66
Actions
Shares
0
Downloads
21
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Developing for BlackBerry 10 – Tools and SDKs by Luca Filigheddu

  1. 1. Develop for BlackBerry 10Approaches and PossibilitiesLuca Filigheddu –Developer EvangelistDeveloper Relations EMEA - BlackBerry@filos
  2. 2. Agenda•  Why developing for BlackBerry•  Platform Overview•  Developer Ecosystem•  Technical Overview•  Q&A
  3. 3. Why developing for BlackBerry 10?
  4. 4. Storefront ReachOver 80 Million Subscribers170 MarketsOver 4 Billion Apps DownloadedOver 70.000 BB10 Apps Approved For Sale100.000+ BB10 apps submitted for review110.000+ apps for BBOS and older devices54.000+ vendors 4
  5. 5. Money! 5
  6. 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
  7. 7. Ok, now let’s talk about technology!
  8. 8. Acquisitions Webkit Experts Platform OS UX / UI Design ! RippleWeb Development Social Contacts Device Mgmt. Social Calendaring App Distribution Encryption Smartphone Navigation Social Gaming Security 8
  9. 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
  10. 10. Transition 10
  11. 11. Choices!
  12. 12. BlackBerry 10 SDKs Java C/C++ HTML5, CSS, JavaScript ActionScript Android Native SDK WebWorks Adobe AIR Runtime 12
  13. 13. 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
  14. 14. BlackBerry Native SDK
  15. 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. 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. 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. 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. 19. Game EnginesŸ  Unity  Technologies  Ÿ  Marmalade  SDK  Ÿ  ShiVa3D  Game  Engine  with  Development  tools  Ÿ  More  Coming!   19
  20. 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. 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. 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
  23. 23. Cascades C++/Qt
  24. 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
  25. 25. What is Cascades? 25
  26. 26. Out-of-the-box Elegance 26
  27. 27. Cascades and Qt•  Mature C++ application framework•  Good APIs•  Signals and Slots•  Many help classes•  QML•  QtGui Cascades Cascades 27
  28. 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. 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. 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. 31. Hello World in Cascadesimport bb.cascades 1.0Page { content: Label { text: "Hello World" }} 31
  32. 32. Hello World in QtPage* root = new Page;Label* label = Label::create() .text("Hello World");root->setContent(label);Application::instance()->setScene(root); 32
  33. 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
  34. 34. LinksŸ  BlackBerry Cascades „  developer.blackberry.com/cascadesŸ  Blackberry Open Source „  blackberry.github.com/cascades/samples.html 34
  35. 35. BlackBerry WebWorks HTML5
  36. 36. BlackBerry10 & HTML5Ÿ  Unparalleled Standards SupportŸ  Incredible Performance 36
  37. 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. 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. 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. 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. 41. What can you do?•  Geolocation•  Offline mode•  Storage•  Audio / Video•  2D Graphics•  Advanced forms•  Invoke•  Web Workers•  Notifications 41
  42. 42. How do I get there? Web  Assets   WebWorks  Tools   BlackBerry  Applica8ons   42
  43. 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. 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
  45. 45. Ripple Extension 45
  46. 46. Web Platform Extras§  AliceJS library §  CSS3 hardware acceleration§  WebGL §  3D Graphics, OpenGL ES 2.0§  Community frameworks 46
  47. 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
  48. 48. bbui.js - Cases 48
  49. 49. LinksŸ  SDK + Simulators „  http://developer.blackberry.com/html5Ÿ  GitHub „  https://github.com/blackberry/BB10-WebWorks-Samples 49
  50. 50. Android Runtime and Packager
  51. 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. 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. 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. 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
  55. 55. Success stories 55
  56. 56. LinksŸ  Where to start „  http://developer.blackberry.com/android 56
  57. 57. Adobe AIR
  58. 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. 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. 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
  61. 61. SupportŸ  Currently, Adobe AIR 3.1 is supportedŸ  Adobe AIR 3.4 and Stage 3D will be supported soon 61
  62. 62. LinksŸ  SDK + Simulators „  http://developer.blackberry.com/airŸ  GitHub „  https://github.com/blackberry/Samples-for-AIR 62
  63. 63. Q&A
  64. 64. THANK YOULuca Filigheddu – Developer EvangelistDeveloper Relations EMEA – BlackBerry@filos

×