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

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


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




                                                        Java

    C/C++     HTML5, CSS, JavaScript     ActionScript
                                                        Android
 Native SDK   WebWorks                 Adobe AIR        Runtime
                                                                  12
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



     Cascades
                                        27
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
                     QML editor with syntax highlighting/
                     code completion        QML design view




   Component library
   (Drag and drop to QML)




                                              QML tree view,
                                              QML properties view
                                                                    33
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?




    Web	
  Assets	
     WebWorks	
  Tools	
     BlackBerry	
  Applica8ons	
  
                                                                                42
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

More Related Content

PPTX
Sviluppare per una piattaforma mobile aperta: opportunità e sfide
PDF
Develop For BlackBerry10
PDF
What's New in NetBeans IDE 7.x
PPT
Demystifying Native, Web, and Hybrid Mobile Development on BlackBerry 10 wit...
PDF
C++Builder 2010 Datasheet
PDF
Java keynote preso
PDF
Android: A 9,000-foot Overview
PDF
Droid con berlin_the_bb10_android_runtime
Sviluppare per una piattaforma mobile aperta: opportunità e sfide
Develop For BlackBerry10
What's New in NetBeans IDE 7.x
Demystifying Native, Web, and Hybrid Mobile Development on BlackBerry 10 wit...
C++Builder 2010 Datasheet
Java keynote preso
Android: A 9,000-foot Overview
Droid con berlin_the_bb10_android_runtime

What's hot (20)

PPTX
ScroIDE Project Dicussion
PPTX
The Blackberry Opportunity (RIM) 160612
PDF
WebWorks Development for BlackBerry PlayBook and Smartphones
PDF
WinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows Phone
PDF
JavaOne 2010 Keynote
PDF
RIM Casual Meetup - Bandung #DevIDBdg
PDF
Docker Birthday #3 Slides - Overview
PDF
Rapid and Reliable Developing with HTML5 & GWT
PDF
"BlackBerry Webworks : Apps for The Smartphone and Tablet"
PPT
Training on webwroks1
PDF
Web works presso
PDF
Qt App Development for Symbian & MeeGo - v3.4.6 (17. January 2012)
KEY
CouchConf NYC CouchApps
PDF
Cordova 3, apps para android
PDF
Quickstart: Qt for Windows, Symbian and Maemo / Meego v2.0.8 (January 10th, 2...
PDF
IBM Z for the Digital Enterprise - Zowe overview
PDF
The WebKit project
PDF
Software development with qt
KEY
Administration for Oracle ADF Applications
PDF
Docker, Cloud Foundry, Bosh & Bluemix
 
ScroIDE Project Dicussion
The Blackberry Opportunity (RIM) 160612
WebWorks Development for BlackBerry PlayBook and Smartphones
WinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows Phone
JavaOne 2010 Keynote
RIM Casual Meetup - Bandung #DevIDBdg
Docker Birthday #3 Slides - Overview
Rapid and Reliable Developing with HTML5 & GWT
"BlackBerry Webworks : Apps for The Smartphone and Tablet"
Training on webwroks1
Web works presso
Qt App Development for Symbian & MeeGo - v3.4.6 (17. January 2012)
CouchConf NYC CouchApps
Cordova 3, apps para android
Quickstart: Qt for Windows, Symbian and Maemo / Meego v2.0.8 (January 10th, 2...
IBM Z for the Digital Enterprise - Zowe overview
The WebKit project
Software development with qt
Administration for Oracle ADF Applications
Docker, Cloud Foundry, Bosh & Bluemix
 
Ad

Viewers also liked (20)

DOC
NPS COMPANY HISTORY
PDF
Semis slide show
PDF
Roy Thorvaldsen BIO 2016
PPT
Skoda in Love
PDF
Noticia del incendio acaecido en esta Corte en el Portal de Paños, la noche d...
PDF
sg244636
PDF
How to Simplify Context And Build Trust In Content Marketing
PPTX
Tarifa estetica moyua
PDF
POStreaming | Make Your Brand Sound
PDF
Torcidos
PDF
2ª oferta general de formación en prevención de riesgos laborales 2016
PPTX
Googleando en tu nombre. Taller de CV 2.0 e identidad digital
PDF
Weserbergland Radtouren
PPTX
Windsor Circle Webinar 9 Pillars of Reteniton Automation featuring Spangler C...
PPS
Morphie´S Great Water Ride Adventure
PPTX
Mundos virtuales: aplicaciones en el contexto educativo
DOC
La tortuga mora
PDF
Hospizdienst Lebenszeiten 08/2015
PPT
Análisis y Gestión de Redes Sociales Ilpes
NPS COMPANY HISTORY
Semis slide show
Roy Thorvaldsen BIO 2016
Skoda in Love
Noticia del incendio acaecido en esta Corte en el Portal de Paños, la noche d...
sg244636
How to Simplify Context And Build Trust In Content Marketing
Tarifa estetica moyua
POStreaming | Make Your Brand Sound
Torcidos
2ª oferta general de formación en prevención de riesgos laborales 2016
Googleando en tu nombre. Taller de CV 2.0 e identidad digital
Weserbergland Radtouren
Windsor Circle Webinar 9 Pillars of Reteniton Automation featuring Spangler C...
Morphie´S Great Water Ride Adventure
Mundos virtuales: aplicaciones en el contexto educativo
La tortuga mora
Hospizdienst Lebenszeiten 08/2015
Análisis y Gestión de Redes Sociales Ilpes
Ad

Similar to Developing for BlackBerry 10 – Tools and SDKs by Luca Filigheddu (20)

PDF
Mobile Developer's Guide To The Galaxy Vol.7
PDF
PDF
BEF2013 - Toronto - Dev Track 2 - Migrating Apps to BlackBerry 10
PDF
Qt in depth - presentation for Symbian expo 2009
PDF
Cutest technology of them all - Forum Nokia Qt Webinar December 2009
PDF
Mobile Developers Guide To The Galaxy Vol.6
PDF
Mobile Developer's Guide To The Galaxy, 5th edition
PDF
QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application deve...
PDF
Mobile Developer's Guide To The Galaxy No.10
PDF
Developers Guide To The Galaxy 8th edition
PDF
Meego Italian Day 2011 – Andrea Grandi
PDF
Mobile Developer's Guide To The Galaxy No. 9
PDF
MTC Spring 2013 - crossplatform woes - robert virkus - 2013-03-13
PDF
Mobile Developer's Guide To The Galaxy Edition 2
PDF
Mobile stategy
PDF
Fragmentation in mobile design: fact or fiction
PPTX
Android application development
PPT
An Overview of Blackberry 10
PPTX
Native Application (C/C++) on BlackBerry 10
PPT
BB10 Leading Mobile Web Platform W3C 2013
Mobile Developer's Guide To The Galaxy Vol.7
BEF2013 - Toronto - Dev Track 2 - Migrating Apps to BlackBerry 10
Qt in depth - presentation for Symbian expo 2009
Cutest technology of them all - Forum Nokia Qt Webinar December 2009
Mobile Developers Guide To The Galaxy Vol.6
Mobile Developer's Guide To The Galaxy, 5th edition
QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application deve...
Mobile Developer's Guide To The Galaxy No.10
Developers Guide To The Galaxy 8th edition
Meego Italian Day 2011 – Andrea Grandi
Mobile Developer's Guide To The Galaxy No. 9
MTC Spring 2013 - crossplatform woes - robert virkus - 2013-03-13
Mobile Developer's Guide To The Galaxy Edition 2
Mobile stategy
Fragmentation in mobile design: fact or fiction
Android application development
An Overview of Blackberry 10
Native Application (C/C++) on BlackBerry 10
BB10 Leading Mobile Web Platform W3C 2013

More from Codemotion (20)

PDF
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
PDF
Pompili - From hero to_zero: The FatalNoise neverending story
PPTX
Pastore - Commodore 65 - La storia
PPTX
Pennisi - Essere Richard Altwasser
PPTX
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
PPTX
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
PPTX
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
PPTX
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
PDF
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
PDF
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
PDF
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
PDF
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
PDF
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
PDF
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
PPTX
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
PPTX
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
PDF
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
PDF
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
PDF
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
PDF
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Pompili - From hero to_zero: The FatalNoise neverending story
Pastore - Commodore 65 - La storia
Pennisi - Essere Richard Altwasser
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019

Recently uploaded (20)

PPTX
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
PDF
Enhancing emotion recognition model for a student engagement use case through...
PPTX
Benefits of Physical activity for teenagers.pptx
PDF
A contest of sentiment analysis: k-nearest neighbor versus neural network
PPT
What is a Computer? Input Devices /output devices
PDF
Hindi spoken digit analysis for native and non-native speakers
PDF
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
PDF
A novel scalable deep ensemble learning framework for big data classification...
PPTX
Final SEM Unit 1 for mit wpu at pune .pptx
PDF
Unlock new opportunities with location data.pdf
PDF
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
PPTX
Web Crawler for Trend Tracking Gen Z Insights.pptx
PDF
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
PDF
Developing a website for English-speaking practice to English as a foreign la...
PPT
Module 1.ppt Iot fundamentals and Architecture
PDF
A comparative study of natural language inference in Swahili using monolingua...
PPTX
Tartificialntelligence_presentation.pptx
PDF
Taming the Chaos: How to Turn Unstructured Data into Decisions
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PDF
Zenith AI: Advanced Artificial Intelligence
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
Enhancing emotion recognition model for a student engagement use case through...
Benefits of Physical activity for teenagers.pptx
A contest of sentiment analysis: k-nearest neighbor versus neural network
What is a Computer? Input Devices /output devices
Hindi spoken digit analysis for native and non-native speakers
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
A novel scalable deep ensemble learning framework for big data classification...
Final SEM Unit 1 for mit wpu at pune .pptx
Unlock new opportunities with location data.pdf
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
Web Crawler for Trend Tracking Gen Z Insights.pptx
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
Developing a website for English-speaking practice to English as a foreign la...
Module 1.ppt Iot fundamentals and Architecture
A comparative study of natural language inference in Swahili using monolingua...
Tartificialntelligence_presentation.pptx
Taming the Chaos: How to Turn Unstructured Data into Decisions
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
Zenith AI: Advanced Artificial Intelligence

Developing for BlackBerry 10 – Tools and SDKs by Luca Filigheddu

  • 1. Develop for BlackBerry 10 Approaches and Possibilities Luca Filigheddu –Developer Evangelist Developer Relations EMEA - BlackBerry @filos
  • 2. Agenda •  Why developing for BlackBerry •  Platform Overview •  Developer Ecosystem •  Technical Overview •  Q&A
  • 3. Why developing for BlackBerry 10?
  • 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
  • 5. Money! 5
  • 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. Ok, now let’s talk about technology!
  • 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
  • 12. BlackBerry 10 SDKs Java C/C++ HTML5, CSS, JavaScript ActionScript Android Native SDK WebWorks Adobe AIR Runtime 12
  • 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
  • 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
  • 23. Cascades C++/Qt
  • 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
  • 34. Links Ÿ  BlackBerry Cascades „  developer.blackberry.com/cascades Ÿ  Blackberry Open Source „  blackberry.github.com/cascades/samples.html 34
  • 36. BlackBerry10 & HTML5 Ÿ  Unparalleled Standards Support Ÿ  Incredible Performance 36
  • 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
  • 49. Links Ÿ  SDK + Simulators „  http://developer.blackberry.com/html5 Ÿ  GitHub „  https://github.com/blackberry/BB10-WebWorks-Samples 49
  • 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
  • 56. Links Ÿ  Where to start „  http://developer.blackberry.com/android 56
  • 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
  • 61. Support Ÿ  Currently, Adobe AIR 3.1 is supported Ÿ  Adobe AIR 3.4 and Stage 3D will be supported soon 61
  • 62. Links Ÿ  SDK + Simulators „  http://developer.blackberry.com/air Ÿ  GitHub „  https://github.com/blackberry/Samples-for-AIR 62
  • 63. Q&A
  • 64. THANK YOU Luca Filigheddu – Developer Evangelist Developer Relations EMEA – BlackBerry @filos