SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Downloaden Sie, um offline zu lesen
moosecon - @KLAJLI & @ARDIRI




             Native Application (C/C++)
             development on BlackBerry 10
             Aaron Ardiri
             AARDIRI@blackberry.com
                                       twitter: @ARDIRI
             Kamel Lajili
             KLAJILI@blackberry.com
                                       twitter: @KLAJILI




         SO, WHAT IS



                                      EXACTLY?



BlackBerry                                                 1
moosecon - @KLAJLI & @ARDIRI




        BlackBerry 10

             •  cinematic experience
             •  multi-tasking as second nature
             •  content is king
             •  fluid workflow
             •  moments of charm

         http://developer.blackberry.com/ui




         BLACKBERRY 10
         DEMO




BlackBerry                                       2
moosecon - @KLAJLI & @ARDIRI




         APPLICATION
         DEVELOPMENT
         AND TOOLCHAINS




        BlackBerry 10




             C++/Qt     C/C++      HTML5 BlackBerry®    ActionScript     Java
        Cascades      Native SDK    WebWorks™          Adobe®   AIR®   Android™
                                                                       Runtime




BlackBerry                                                                        3
moosecon - @KLAJLI & @ARDIRI




        BlackBerry 10
        SDK Platform Support




         THE QNX
         NEUTRINO RTOS




BlackBerry                     4
moosecon - @KLAJLI & @ARDIRI




        Operating Systems
        Monolithic Architecture                                                             !""#                     !""#
             !"#$%&'()*#+,#*-()-*-./+
                                                                                               $%"&'#           -*.,#
                                                                                               ()*+,)#          /0/',1#
             •  0&1#*+2&3+0&$.+45#$+(6(-*()*#+.&1(/+

               7  8-'1&9$:;+<-'"=:;+>'13&-1?+                                     !""#              95%5.*':*8##               !""#
                                                                                         3,'45)6#      ;<#       2)*+,)#
                                                                                          /'786#
             •  45+@&'.(-'$+.3#0#'1&"$+(0&"'.+&2++
                2"'@%&'(*-./+9-.A+"'3#$.3-@.#1+BCD+E3-6-*#F#$++                                      9&.=1,(*7#
                                                                                                       /'786#
             •  (+2("*.+-'+&'#+45+@&0E&'#'.+@('+1(0(F#++
                ('/+&.A#3;+*#(1-'F+.&+$/$.#0G9-1#+@&33"E%&'+                               !""#                      !""#

               7  $/$.#0+3#*-()-*-./+-$+($+F&&1+($+/&"3+9&3$.+13-6#3+1#6#*&E#3+

               7  3#)&&.+-$+&'*/+3#@&6#3/+E&$$-)*#+




        Operating Systems
        MicroKernel Architecture                                                            !""#                     !""#
             H-$$-&'+B3-%@(*+,#*-()-*-./+
                                                                                               $%"&'#           -*.,#
                                                                                               ()*+,)#          /0/',1#
             •  0-@3&I#3'#*+0-'-0-J#$+#=#@"%&'+9-.A++
                "'3#$.3-@.#1+KI#3'#*L+BCD+E3-6-*#F#$+                                                    H-@3&G+
                                                                                  !""#                                         !""#
                                                                                         3,'45)6#        I#3'#*++    2)*+,)#
             •  (**+E3&@#$$#$+3"'+-'+-$&*(.#1+E3&@#$$+$E(@#+                              /'786#
               7  -'@*"1#$+13-6#3$;+M*#+$/$.#0$;+$.(@I$+
                                                                                                     9&.=1,(*7#
               7  (**+!NO+E3&@#$$#$+(3#+K(EE*-@(%&'$L+                                                 /'786#

             •  2("*.$+(3#+@&'.(-'#1+$&+.A(.+.A#/+&'*/++                                   !""#                      !""#
                (P#@.+.A#+2("*./+@&0E&'#'.+
               7  2(-*#1+@&0E&'#'.$+@('+)#+1/'(0-@(**/+3#@&6#3#1+
                  9A-*#+.A#+$/$.#0+@&'%'"#$+.&+&E#3(.#+




BlackBerry                                                                                                                            5
moosecon - @KLAJLI & @ARDIRI




        Operating Systems
        Kernel Sizes (Lines of Code)
             •  0-@3&I#3'#*+A($+.A#+$0(**#$.+(0&"'.+
                                                                         Millions of lines of kernel code
                &2+@&1#+9-.A+BCD+E3-6-*#F#$+
                                                               WinCE           3.9
             •  @&1#+-$+0&3#+#($-*/+3#6-#9#1++
                                                       Linux (Generic)                         14
                ('1+$@3"%'-J#1+1"#+.&+-.$+$-J#+
                                                       Linux (Android)                    12
             •  )"FF/+)#A(6-&3+-$+2&"'1+('1+
                                                                   XP
                #*-0-'(.#1+)#2&3#+E3&1"@.+3#(@A#$+                                                          40+

                @&'$"0#3$Q+A('1$+                                QNX     0.1

             •  3-$I+&2+$/$.#0+2(-*"3#+-$+*&9+




        Operating Systems
        Kernel Architecture Comparisons




BlackBerry                                                                                                        6
moosecon - @KLAJLI & @ARDIRI




        QNX: Proof of Stability
        Mission Critical Reliability



             3&8.,7)#     ?7),:5&/,#       E7/,)#H0,#<&)A,)0#    D),8*/*5%#      9*%*%A#@5%')5.#    @7%7(7)1#
             >,78'5)/#     @5%')5.#                               9*..*%A#                            B*/*5%#




             ?7.17)'#    @7%8,)#G:,)7"0#       ?*%(1*../#       95'5)#@5%')5.#       DE@F/#        D)58,//#@5%')5.#
              CB!@#




         BB10 APPLICATION
         GUIDELINES




BlackBerry                                                                                                            7
moosecon - @KLAJLI & @ARDIRI




        Application Guidelines

         application lifecycle
                                  Start

                                                                •  respond correctly
                                                                    to lifecycle events
                  Normal                         Hidden
                  (Active)                       (Inactive)

                                                                •  failure to do so can:
                             Thumbnail                            •    drain battery
                             (Active/Inactive)
                                                                  •    interfere with other apps

                                      Exit




        Application Guidelines

         applications can integrate with the operating system and
         other core applications by using:
             •    BBM Framework,
             •    Share Framework,
             •    PIM APIs,
             •    Universal Search,                           Integrated      Social     Beautiful
             •    Push Service,
             •    Payment Service,
             •    Advertisement Service
             •    Balance




BlackBerry                                                                                           8
moosecon - @KLAJLI & @ARDIRI




        Application Guidelines

         applications can use the Invocation Framework to minimize
         “reinventing the wheel” and improve the user’s flow:

             •    cards and content viewers
             •    launching core and 3rd party Apps
             •    registering URIs and MIME types




        Bound Invocation


                  I want Dr. Doc to
                    open this .doc
                         file.
                                                                          I can
                                                                        open .doc
                                                                          files




                                                              Dr. Doc
                                       Invocation Framework




BlackBerry                                                                          9
moosecon - @KLAJLI & @ARDIRI




        Unbound Invocation

                                                                  I can
                                                                open .doc
                   I need to open                                 files
                   this .doc file.
                      Anyone?

                                                                  I can
                                                                open .doc
                                                                  files




                                         Invocation Framework     I can
                                                                open .png
                                                                  files




        Cards

         !  embeds a screen from target
             !    instead of launching the full app
         !  no App Grid presence
         !  supports peeking
             !    a leap ahead of the competition
             !    BlackBerry 10 Flow at its best!
         !  invoked in the same way!




BlackBerry                                                                  10
moosecon - @KLAJLI & @ARDIRI




        Card Styles

         !  Three styles
             !    Composer
             !    Previewer
             !    Picker


         !  Determines
             !    Peek behavior
             !    Transition style




        Application Packaging
                                              •  cannot directly access files of
                            Sandbox              other applications
                                              •  use the development mode to
                                     data        see your application sandbox
                                      logs    •  only place user visible files
                                                 (across device) in shared area
                                      tmp

                                      app       Application Installation

                                     shared          User Shared




BlackBerry                                                                         11
moosecon - @KLAJLI & @ARDIRI




         Application need to request resource access in the bar-
           descriptor.xml file




        Application Signing

                       BAR



                   Request         Half Signed    Sign with
                   RIM Signature                  Developer Certificate
                                       BAR


                                                        Signed
                                                         BAR




BlackBerry                                                                12
moosecon - @KLAJLI & @ARDIRI




        BlackBerry 10 Foundations
        Platform APIs & Core Packages
                                  Android                      Native                    Web                       AIR
                                   Player                     Runtime                   Runtime                  Runtime

         Application                                        BBM™                                                               Application
         Infrastructure     Payment         Advertising                  Push Data      Notification   Phone                   Platform
                                                            Service

                           Invocation          Share       Calendar       Contacts       Messages      Tasks               …


                          Configuration      Cascades       Search         Config         Balance

                                                           Backup /
                            Lifecycle         Utilities                     i18n        Instrument n     …
                                                           Restore

         System Service                                                 Authenticatio
                           Navigator         Installer     Launcher                      Multimedia    SQLite          NFC
                                                                             n
                            Window
                                              WebKit       Protocols      Network          DRM         Crypto              …
                            Manager

         OS                 Memory           Process        Power                                      Device
                                                                            IPC         File System                        …
                          Management        Management    Management                                   Drivers




         NATIVE SDK




BlackBerry                                                                                                                                   13
moosecon - @KLAJLI & @ARDIRI




        Native SDK
        OSS & Developer Experience




        Native SDK
        Hello World
        #include <stdio.h>!
        #include <stdlib.h>!

        int !
        main(int argc, char **argv)!
        {!
           fprintf(stdout, “Hello World!n”);!
           return EXIT_SUCCESS;!
        }!




BlackBerry                                       14
moosecon - @KLAJLI & @ARDIRI




        Native SDK
        BlackBerry Platform Services
        the BlackBerry Platform Services (BPS) library provides an
        application with a single consistent interface to a number of
        different services during the execution of the application.

        •  universal event management
        •  user interaction/navigator
        •  input/output (sensors, audio, LED, screen, multimedia)
        •  device information, locale and payment services
        •  network status and geo-location




        Native SDK
        BlackBerry Platform Services
        bps_event_t *event_bps;!

        event_bps = NULL;!
        bps_get_event(&event_bps, timeout); // -1, forever!
        if (event_bps != NULL)!
        {!
           event_domain = bps_event_get_domain(event_bps);!
           if (event_domain == xxx)!
           {!
              // request event information within the domain!
           }!
        }!




BlackBerry                                                              15
moosecon - @KLAJLI & @ARDIRI




        Native SDK
        BlackBerry Platform Services
        handling {service} events

             !{service}_request_events({param});   // request events


        then capture the appropriate {service} events!

             event_domain = bps_event_get_domain(event_bps);!
             if (event_domain == {service}_get_domain())!
             {!
                // handle the {service} event




        Native SDK
        Open Industry Standards




BlackBerry                                                              16
moosecon - @KLAJLI & @ARDIRI




        Native SDK
        Open Source Support




         CASCADES SDK




BlackBerry                     17
moosecon - @KLAJLI & @ARDIRI




        Cascades SDK
        OSS & Developer Experience




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




BlackBerry                                  18
moosecon - @KLAJLI & @ARDIRI




         BLACKBERRY 10
         CASCADES DEMO




        Cascades SDK
        Hello World
        import bb.cascades 1.0

        Page
        {
               content: Label
               {
                   text: "Hello World"
               }
        }




BlackBerry                               19
moosecon - @KLAJLI & @ARDIRI




        Cascades SDK
        Hello World

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




                               60 FPS!




BlackBerry                                         20
moosecon - @KLAJLI & @ARDIRI




             App logic                                                 UI in separate thread
                                                                 28°
                                                                                Cascades




                    Photos by rumpleteaser and whologwy Flickr




        Scene Graph

                                                                         Root
                                                                       Container


                                                                                                     RotationZ
                                                                                    Hello World
                                                                                                     Scale
                                                                                                     Opacity


                                                                                   Container


                                                                                            Text: “Hello World”




BlackBerry                                                                                                        21
moosecon - @KLAJLI & @ARDIRI




        R6#'.$+


         Qt uses signals & slots paradigm

         Cascades events are mapped to Qt signals




        S('1*-'F+T&"@A+R6#'.$+-'+!H<+

               Container
               {
                  onTouch:
                  {
                    if (event.isDown()) {
                      scaleX = 2; scaleY = 2; rotationZ = 45;
                    }
                    else if (event.isUp()){
                      scaleX = 1; scaleY = 1; rotationZ = 0;
                    }
                  }
               }+




BlackBerry                                                      22
moosecon - @KLAJLI & @ARDIRI




        S('1*-'F+T&"@A+R6#'.$+-'+BUU+


             QObject::connect(bubble,SIGNAL          touched(bb::cascades::TouchEvent *t)
                (touch(bb::cascades::TouchEvent*))   {
              this,SLOT                                  if (t->isDown()) {
                (touched(bb::cascades::TouchEvent*))       bubble->setScale(2f);
             );                                            bubble->setRotation(45.0f);
                                                         }
                                                         else if (t->isUp()) {
                                                           bubble->setScale(1f);
                                                           bubble->setRotation(0.0f);
                                                         }
                                                       }
                                                     }




        C++                                                      QML
         You can choose!

         No difference between UI created in QML or C++

         They can be combined
                Typically, UI in QML and business logic in C++




         QML supports JavaScript for signal handling




BlackBerry                                                                                  23
moosecon - @KLAJLI & @ARDIRI




        >'-0(%&'$+


         Any Cascades UI element can be animated

         Animations are running on the engine thread
             Remember the client server setup?


         Explicit & Implicit animations:
             translation, rotation, scale, opacity, …




        Core Controls




BlackBerry                                              24
moosecon - @KLAJLI & @ARDIRI




        B"$.&0+B&'.3&*$

                               SpeedGauge

                                 Container
                                DockLayout




                               RotationZ (-0)   RotationZ (-40)
                                TranslationY    TranslationY
                                (30)            (30)




        Custom list items




BlackBerry                                                        25
moosecon - @KLAJLI & @ARDIRI




        Data Binding


                  SQL



                  XML



                 JSON



                 Anything




        StackLayout & DockLayout




BlackBerry                         26
moosecon - @KLAJLI & @ARDIRI




        Pages, Panes and Navigation




        UI Guidelines



             developer.blackberry.com/ui




BlackBerry                                 27
moosecon - @KLAJLI & @ARDIRI




             Thank You
             Aaron Ardiri
             AARDIRI@blackberry.com
                                      twitter: @ARDIRI
             Kamel Lajili
             KLAJILI@blackberry.com
                                      twitter: @KLAJILI




BlackBerry                                                28

Weitere ähnliche Inhalte

Was ist angesagt?

2008-12-04 - Roller Rink Marks 50 Years
2008-12-04 - Roller Rink Marks 50 Years2008-12-04 - Roller Rink Marks 50 Years
2008-12-04 - Roller Rink Marks 50 Years
Jacqueline Durett
 
Reformas e auto-reformas da educação no Brasil
Reformas e auto-reformas da educação no BrasilReformas e auto-reformas da educação no Brasil
Reformas e auto-reformas da educação no Brasil
Iasmin Marinho
 
Global Change, Species Diversity, and the Future of Marine Ecosystems
Global Change, Species Diversity, and the Future of Marine EcosystemsGlobal Change, Species Diversity, and the Future of Marine Ecosystems
Global Change, Species Diversity, and the Future of Marine Ecosystems
Jarrett Byrnes
 
مدارس الخاتونات والاميرات الايوبيات في بلاد الشام في العصر الايوبيby MosaadR...
مدارس الخاتونات والاميرات  الايوبيات في بلاد الشام في العصر الايوبيby MosaadR...مدارس الخاتونات والاميرات  الايوبيات في بلاد الشام في العصر الايوبيby MosaadR...
مدارس الخاتونات والاميرات الايوبيات في بلاد الشام في العصر الايوبيby MosaadR...
MosaadRamadan AbdAlhk
 
IASP World Conference, 2005 Beijing, China
IASP World Conference, 2005 Beijing, ChinaIASP World Conference, 2005 Beijing, China
IASP World Conference, 2005 Beijing, China
Ilkka Kakko
 
Cuecos! Capítulo Uno
Cuecos! Capítulo Uno Cuecos! Capítulo Uno
Cuecos! Capítulo Uno
Revulú
 

Was ist angesagt? (18)

CPDL - Charging Plan Definition Language
CPDL - Charging Plan Definition LanguageCPDL - Charging Plan Definition Language
CPDL - Charging Plan Definition Language
 
Alternative Asset Markets - Ilija Murisic - UBS Global Warming Index, UBS Gre...
Alternative Asset Markets - Ilija Murisic - UBS Global Warming Index, UBS Gre...Alternative Asset Markets - Ilija Murisic - UBS Global Warming Index, UBS Gre...
Alternative Asset Markets - Ilija Murisic - UBS Global Warming Index, UBS Gre...
 
Bren Poster Presentation Workshop
Bren Poster Presentation WorkshopBren Poster Presentation Workshop
Bren Poster Presentation Workshop
 
Csharp Intsight
Csharp IntsightCsharp Intsight
Csharp Intsight
 
2008-12-04 - Roller Rink Marks 50 Years
2008-12-04 - Roller Rink Marks 50 Years2008-12-04 - Roller Rink Marks 50 Years
2008-12-04 - Roller Rink Marks 50 Years
 
Living Here And There[1]
Living Here And There[1]Living Here And There[1]
Living Here And There[1]
 
Reformas e auto-reformas da educação no Brasil
Reformas e auto-reformas da educação no BrasilReformas e auto-reformas da educação no Brasil
Reformas e auto-reformas da educação no Brasil
 
Global Change, Species Diversity, and the Future of Marine Ecosystems
Global Change, Species Diversity, and the Future of Marine EcosystemsGlobal Change, Species Diversity, and the Future of Marine Ecosystems
Global Change, Species Diversity, and the Future of Marine Ecosystems
 
مدارس الخاتونات والاميرات الايوبيات في بلاد الشام في العصر الايوبيby MosaadR...
مدارس الخاتونات والاميرات  الايوبيات في بلاد الشام في العصر الايوبيby MosaadR...مدارس الخاتونات والاميرات  الايوبيات في بلاد الشام في العصر الايوبيby MosaadR...
مدارس الخاتونات والاميرات الايوبيات في بلاد الشام في العصر الايوبيby MosaadR...
 
Genro de Pedro Corrêa é preso em nova fase da Lava Jato
Genro de Pedro Corrêa é preso em nova fase da Lava JatoGenro de Pedro Corrêa é preso em nova fase da Lava Jato
Genro de Pedro Corrêa é preso em nova fase da Lava Jato
 
IASP World Conference, 2005 Beijing, China
IASP World Conference, 2005 Beijing, ChinaIASP World Conference, 2005 Beijing, China
IASP World Conference, 2005 Beijing, China
 
بکارگیری وصله های پیزوالکتریک بصورت حسگر و عملگر به منظور دمپینگ ارتعاشی تیرت...
بکارگیری وصله های پیزوالکتریک بصورت حسگر و عملگر به منظور دمپینگ ارتعاشی تیرت...بکارگیری وصله های پیزوالکتریک بصورت حسگر و عملگر به منظور دمپینگ ارتعاشی تیرت...
بکارگیری وصله های پیزوالکتریک بصورت حسگر و عملگر به منظور دمپینگ ارتعاشی تیرت...
 
Die Macher von Morgen - Eine deutschlandweite Studie zu jungen Berufstätigen ...
Die Macher von Morgen - Eine deutschlandweite Studie zu jungen Berufstätigen ...Die Macher von Morgen - Eine deutschlandweite Studie zu jungen Berufstätigen ...
Die Macher von Morgen - Eine deutschlandweite Studie zu jungen Berufstätigen ...
 
O anticristo
O anticristoO anticristo
O anticristo
 
Reglamento estudiantil udea
Reglamento estudiantil udeaReglamento estudiantil udea
Reglamento estudiantil udea
 
iMAPpenning Slides: Design Research Practice
iMAPpenning Slides: Design Research PracticeiMAPpenning Slides: Design Research Practice
iMAPpenning Slides: Design Research Practice
 
Cuecos! Capítulo Uno
Cuecos! Capítulo Uno Cuecos! Capítulo Uno
Cuecos! Capítulo Uno
 
Facebook de Jesucristo
Facebook de JesucristoFacebook de Jesucristo
Facebook de Jesucristo
 

Ähnlich wie Moosecon native apps_blackberry_10-optimized

[Harvard CS264] 04 - Intermediate-level CUDA Programming
[Harvard CS264] 04 - Intermediate-level CUDA Programming[Harvard CS264] 04 - Intermediate-level CUDA Programming
[Harvard CS264] 04 - Intermediate-level CUDA Programming
npinto
 
SEO - It Works Even if You Don’t Know How or Why
SEO - It Works Even if You Don’t Know How or Why SEO - It Works Even if You Don’t Know How or Why
SEO - It Works Even if You Don’t Know How or Why
Wolfgang Weicht
 
Steering Iterative and Incremental Delivery with Jeff Patton
Steering Iterative and Incremental Delivery with Jeff PattonSteering Iterative and Incremental Delivery with Jeff Patton
Steering Iterative and Incremental Delivery with Jeff Patton
UIEpreviews
 
30ประชาคมอาเซียนมีผลอย่างไรต่อชีวิตของเรา
30ประชาคมอาเซียนมีผลอย่างไรต่อชีวิตของเรา30ประชาคมอาเซียนมีผลอย่างไรต่อชีวิตของเรา
30ประชาคมอาเซียนมีผลอย่างไรต่อชีวิตของเรา
พัน พัน
 
Map Reduce 〜入門編:仕組みの理解とアルゴリズムデザイン〜
Map Reduce 〜入門編:仕組みの理解とアルゴリズムデザイン〜Map Reduce 〜入門編:仕組みの理解とアルゴリズムデザイン〜
Map Reduce 〜入門編:仕組みの理解とアルゴリズムデザイン〜
Takahiro Inoue
 
Implementing a home gateway with Linux - Firewall - Router - Proxy server - D...
Implementing a home gateway with Linux - Firewall - Router - Proxy server - D...Implementing a home gateway with Linux - Firewall - Router - Proxy server - D...
Implementing a home gateway with Linux - Firewall - Router - Proxy server - D...
Geert Van Pamel
 

Ähnlich wie Moosecon native apps_blackberry_10-optimized (20)

OSGi - beyond the myth
OSGi -  beyond the mythOSGi -  beyond the myth
OSGi - beyond the myth
 
Globe Trotting for Green Building Hotspots
Globe Trotting for Green Building HotspotsGlobe Trotting for Green Building Hotspots
Globe Trotting for Green Building Hotspots
 
Mobile: The Market, The Web and Windows Phone’s Future
Mobile: The Market, The Web and Windows Phone’s Future Mobile: The Market, The Web and Windows Phone’s Future
Mobile: The Market, The Web and Windows Phone’s Future
 
[Harvard CS264] 04 - Intermediate-level CUDA Programming
[Harvard CS264] 04 - Intermediate-level CUDA Programming[Harvard CS264] 04 - Intermediate-level CUDA Programming
[Harvard CS264] 04 - Intermediate-level CUDA Programming
 
An Effort to Restore from Imperata Grassland to Secondary Forest in Samboja L...
An Effort to Restore from Imperata Grassland to Secondary Forest in Samboja L...An Effort to Restore from Imperata Grassland to Secondary Forest in Samboja L...
An Effort to Restore from Imperata Grassland to Secondary Forest in Samboja L...
 
The Deck is Stacked
The Deck is StackedThe Deck is Stacked
The Deck is Stacked
 
SEO - It Works Even if You Don’t Know How or Why
SEO - It Works Even if You Don’t Know How or Why SEO - It Works Even if You Don’t Know How or Why
SEO - It Works Even if You Don’t Know How or Why
 
The Mythology of Big Data
The Mythology of Big DataThe Mythology of Big Data
The Mythology of Big Data
 
LAMP_TRAINING_SESSION_6
LAMP_TRAINING_SESSION_6LAMP_TRAINING_SESSION_6
LAMP_TRAINING_SESSION_6
 
Ph 2
Ph 2Ph 2
Ph 2
 
Steering Iterative and Incremental Delivery with Jeff Patton
Steering Iterative and Incremental Delivery with Jeff PattonSteering Iterative and Incremental Delivery with Jeff Patton
Steering Iterative and Incremental Delivery with Jeff Patton
 
30ประชาคมอาเซียนมีผลอย่างไรต่อชีวิตของเรา
30ประชาคมอาเซียนมีผลอย่างไรต่อชีวิตของเรา30ประชาคมอาเซียนมีผลอย่างไรต่อชีวิตของเรา
30ประชาคมอาเซียนมีผลอย่างไรต่อชีวิตของเรา
 
Where 2.0 -- Get me a mobile strategy or you’re fired!
Where 2.0 -- Get me a mobile strategy or you’re fired!Where 2.0 -- Get me a mobile strategy or you’re fired!
Where 2.0 -- Get me a mobile strategy or you’re fired!
 
Map Reduce 〜入門編:仕組みの理解とアルゴリズムデザイン〜
Map Reduce 〜入門編:仕組みの理解とアルゴリズムデザイン〜Map Reduce 〜入門編:仕組みの理解とアルゴリズムデザイン〜
Map Reduce 〜入門編:仕組みの理解とアルゴリズムデザイン〜
 
Organizational development
Organizational developmentOrganizational development
Organizational development
 
CIDOC CRM in Practice
CIDOC CRM in PracticeCIDOC CRM in Practice
CIDOC CRM in Practice
 
Innotech - Get Me a Mobile Strategy or You’re Fired!
Innotech - Get Me a Mobile Strategy or You’re Fired!Innotech - Get Me a Mobile Strategy or You’re Fired!
Innotech - Get Me a Mobile Strategy or You’re Fired!
 
Get me a mobile strategy or you're fired web 2
Get me a mobile strategy or you're fired   web 2Get me a mobile strategy or you're fired   web 2
Get me a mobile strategy or you're fired web 2
 
Implementing a home gateway with Linux - Firewall - Router - Proxy server - D...
Implementing a home gateway with Linux - Firewall - Router - Proxy server - D...Implementing a home gateway with Linux - Firewall - Router - Proxy server - D...
Implementing a home gateway with Linux - Firewall - Router - Proxy server - D...
 
Abstract Shambix Giovani & Impresa
Abstract Shambix Giovani & ImpresaAbstract Shambix Giovani & Impresa
Abstract Shambix Giovani & Impresa
 

Mehr von Heinrich Seeger

Hasan hosgel moosecon_2013_customers_choice fullsize
Hasan hosgel moosecon_2013_customers_choice fullsizeHasan hosgel moosecon_2013_customers_choice fullsize
Hasan hosgel moosecon_2013_customers_choice fullsize
Heinrich Seeger
 
Moosecon rcs for developers
Moosecon   rcs for developersMoosecon   rcs for developers
Moosecon rcs for developers
Heinrich Seeger
 
Mobile apps on the big screen
Mobile apps on the big screenMobile apps on the big screen
Mobile apps on the big screen
Heinrich Seeger
 
Push notification generaltalk
Push notification generaltalkPush notification generaltalk
Push notification generaltalk
Heinrich Seeger
 
Backendasaservice apiomat
Backendasaservice apiomatBackendasaservice apiomat
Backendasaservice apiomat
Heinrich Seeger
 
Push notification technicaltalk
Push notification technicaltalkPush notification technicaltalk
Push notification technicaltalk
Heinrich Seeger
 
Crowdshare, Secure Resource Sharing in Mobile Crowds
Crowdshare, Secure Resource Sharing in Mobile CrowdsCrowdshare, Secure Resource Sharing in Mobile Crowds
Crowdshare, Secure Resource Sharing in Mobile Crowds
Heinrich Seeger
 
Mooscon 2013 cebit - google integration in android apps (1)
Mooscon 2013   cebit - google integration in android apps (1)Mooscon 2013   cebit - google integration in android apps (1)
Mooscon 2013 cebit - google integration in android apps (1)
Heinrich Seeger
 
Dev mobile apps ent it final
Dev mobile apps ent   it finalDev mobile apps ent   it final
Dev mobile apps ent it final
Heinrich Seeger
 

Mehr von Heinrich Seeger (12)

Dennis hoppe droidcon_2014_slide_deck_screen
Dennis hoppe droidcon_2014_slide_deck_screenDennis hoppe droidcon_2014_slide_deck_screen
Dennis hoppe droidcon_2014_slide_deck_screen
 
Hasan hosgel moosecon_2013_customers_choice fullsize
Hasan hosgel moosecon_2013_customers_choice fullsizeHasan hosgel moosecon_2013_customers_choice fullsize
Hasan hosgel moosecon_2013_customers_choice fullsize
 
Moosecon rcs for developers
Moosecon   rcs for developersMoosecon   rcs for developers
Moosecon rcs for developers
 
Mobile apps on the big screen
Mobile apps on the big screenMobile apps on the big screen
Mobile apps on the big screen
 
Push notification generaltalk
Push notification generaltalkPush notification generaltalk
Push notification generaltalk
 
Backendasaservice apiomat
Backendasaservice apiomatBackendasaservice apiomat
Backendasaservice apiomat
 
Paypal
PaypalPaypal
Paypal
 
Push notification technicaltalk
Push notification technicaltalkPush notification technicaltalk
Push notification technicaltalk
 
Crowdshare, Secure Resource Sharing in Mobile Crowds
Crowdshare, Secure Resource Sharing in Mobile CrowdsCrowdshare, Secure Resource Sharing in Mobile Crowds
Crowdshare, Secure Resource Sharing in Mobile Crowds
 
Mooscon 2013 cebit - google integration in android apps (1)
Mooscon 2013   cebit - google integration in android apps (1)Mooscon 2013   cebit - google integration in android apps (1)
Mooscon 2013 cebit - google integration in android apps (1)
 
Key2 share moosecon
Key2 share mooseconKey2 share moosecon
Key2 share moosecon
 
Dev mobile apps ent it final
Dev mobile apps ent   it finalDev mobile apps ent   it final
Dev mobile apps ent it final
 

Kürzlich hochgeladen

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Kürzlich hochgeladen (20)

presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 

Moosecon native apps_blackberry_10-optimized

  • 1. moosecon - @KLAJLI & @ARDIRI Native Application (C/C++) development on BlackBerry 10 Aaron Ardiri AARDIRI@blackberry.com twitter: @ARDIRI Kamel Lajili KLAJILI@blackberry.com twitter: @KLAJILI SO, WHAT IS EXACTLY? BlackBerry 1
  • 2. moosecon - @KLAJLI & @ARDIRI BlackBerry 10 •  cinematic experience •  multi-tasking as second nature •  content is king •  fluid workflow •  moments of charm http://developer.blackberry.com/ui BLACKBERRY 10 DEMO BlackBerry 2
  • 3. moosecon - @KLAJLI & @ARDIRI APPLICATION DEVELOPMENT AND TOOLCHAINS BlackBerry 10 C++/Qt C/C++ HTML5 BlackBerry® ActionScript Java Cascades Native SDK WebWorks™ Adobe® AIR® Android™ Runtime BlackBerry 3
  • 4. moosecon - @KLAJLI & @ARDIRI BlackBerry 10 SDK Platform Support THE QNX NEUTRINO RTOS BlackBerry 4
  • 5. moosecon - @KLAJLI & @ARDIRI Operating Systems Monolithic Architecture !""# !""# !"#$%&'()*#+,#*-()-*-./+ $%"&'# -*.,# ()*+,)# /0/',1# •  0&1#*+2&3+0&$.+45#$+(6(-*()*#+.&1(/+ 7  8-'1&9$:;+<-'"=:;+>'13&-1?+ !""# 95%5.*':*8## !""# 3,'45)6# ;<# 2)*+,)# /'786# •  45+@&'.(-'$+.3#0#'1&"$+(0&"'.+&2++ 2"'@%&'(*-./+9-.A+"'3#$.3-@.#1+BCD+E3-6-*#F#$++ 9&.=1,(*7# /'786# •  (+2("*.+-'+&'#+45+@&0E&'#'.+@('+1(0(F#++ ('/+&.A#3;+*#(1-'F+.&+$/$.#0G9-1#+@&33"E%&'+ !""# !""# 7  $/$.#0+3#*-()-*-./+-$+($+F&&1+($+/&"3+9&3$.+13-6#3+1#6#*&E#3+ 7  3#)&&.+-$+&'*/+3#@&6#3/+E&$$-)*#+ Operating Systems MicroKernel Architecture !""# !""# H-$$-&'+B3-%@(*+,#*-()-*-./+ $%"&'# -*.,# ()*+,)# /0/',1# •  0-@3&I#3'#*+0-'-0-J#$+#=#@"%&'+9-.A++ "'3#$.3-@.#1+KI#3'#*L+BCD+E3-6-*#F#$+ H-@3&G+ !""# !""# 3,'45)6# I#3'#*++ 2)*+,)# •  (**+E3&@#$$#$+3"'+-'+-$&*(.#1+E3&@#$$+$E(@#+ /'786# 7  -'@*"1#$+13-6#3$;+M*#+$/$.#0$;+$.(@I$+ 9&.=1,(*7# 7  (**+!NO+E3&@#$$#$+(3#+K(EE*-@(%&'$L+ /'786# •  2("*.$+(3#+@&'.(-'#1+$&+.A(.+.A#/+&'*/++ !""# !""# (P#@.+.A#+2("*./+@&0E&'#'.+ 7  2(-*#1+@&0E&'#'.$+@('+)#+1/'(0-@(**/+3#@&6#3#1+ 9A-*#+.A#+$/$.#0+@&'%'"#$+.&+&E#3(.#+ BlackBerry 5
  • 6. moosecon - @KLAJLI & @ARDIRI Operating Systems Kernel Sizes (Lines of Code) •  0-@3&I#3'#*+A($+.A#+$0(**#$.+(0&"'.+ Millions of lines of kernel code &2+@&1#+9-.A+BCD+E3-6-*#F#$+ WinCE 3.9 •  @&1#+-$+0&3#+#($-*/+3#6-#9#1++ Linux (Generic) 14 ('1+$@3"%'-J#1+1"#+.&+-.$+$-J#+ Linux (Android) 12 •  )"FF/+)#A(6-&3+-$+2&"'1+('1+ XP #*-0-'(.#1+)#2&3#+E3&1"@.+3#(@A#$+ 40+ @&'$"0#3$Q+A('1$+ QNX 0.1 •  3-$I+&2+$/$.#0+2(-*"3#+-$+*&9+ Operating Systems Kernel Architecture Comparisons BlackBerry 6
  • 7. moosecon - @KLAJLI & @ARDIRI QNX: Proof of Stability Mission Critical Reliability 3&8.,7)# ?7),:5&/,# E7/,)#H0,#<&)A,)0# D),8*/*5%# 9*%*%A#@5%')5.# @7%7(7)1# >,78'5)/# @5%')5.# 9*..*%A# B*/*5%# ?7.17)'# @7%8,)#G:,)7"0# ?*%(1*../# 95'5)#@5%')5.# DE@F/# D)58,//#@5%')5.# CB!@# BB10 APPLICATION GUIDELINES BlackBerry 7
  • 8. moosecon - @KLAJLI & @ARDIRI Application Guidelines application lifecycle Start •  respond correctly to lifecycle events Normal Hidden (Active) (Inactive) •  failure to do so can: Thumbnail •  drain battery (Active/Inactive) •  interfere with other apps Exit Application Guidelines applications can integrate with the operating system and other core applications by using: •  BBM Framework, •  Share Framework, •  PIM APIs, •  Universal Search, Integrated Social Beautiful •  Push Service, •  Payment Service, •  Advertisement Service •  Balance BlackBerry 8
  • 9. moosecon - @KLAJLI & @ARDIRI Application Guidelines applications can use the Invocation Framework to minimize “reinventing the wheel” and improve the user’s flow: •  cards and content viewers •  launching core and 3rd party Apps •  registering URIs and MIME types Bound Invocation I want Dr. Doc to open this .doc file. I can open .doc files Dr. Doc Invocation Framework BlackBerry 9
  • 10. moosecon - @KLAJLI & @ARDIRI Unbound Invocation I can open .doc I need to open files this .doc file. Anyone? I can open .doc files Invocation Framework I can open .png files Cards !  embeds a screen from target !  instead of launching the full app !  no App Grid presence !  supports peeking !  a leap ahead of the competition !  BlackBerry 10 Flow at its best! !  invoked in the same way! BlackBerry 10
  • 11. moosecon - @KLAJLI & @ARDIRI Card Styles !  Three styles !  Composer !  Previewer !  Picker !  Determines !  Peek behavior !  Transition style Application Packaging •  cannot directly access files of Sandbox other applications •  use the development mode to data see your application sandbox logs •  only place user visible files (across device) in shared area tmp app Application Installation shared User Shared BlackBerry 11
  • 12. moosecon - @KLAJLI & @ARDIRI Application need to request resource access in the bar- descriptor.xml file Application Signing BAR Request Half Signed Sign with RIM Signature Developer Certificate BAR Signed BAR BlackBerry 12
  • 13. moosecon - @KLAJLI & @ARDIRI BlackBerry 10 Foundations Platform APIs & Core Packages Android Native Web AIR Player Runtime Runtime Runtime Application BBM™ Application Infrastructure Payment Advertising Push Data Notification Phone Platform Service Invocation Share Calendar Contacts Messages Tasks … Configuration Cascades Search Config Balance Backup / Lifecycle Utilities i18n Instrument n … Restore System Service Authenticatio Navigator Installer Launcher Multimedia SQLite NFC n Window WebKit Protocols Network DRM Crypto … Manager OS Memory Process Power Device IPC File System … Management Management Management Drivers NATIVE SDK BlackBerry 13
  • 14. moosecon - @KLAJLI & @ARDIRI Native SDK OSS & Developer Experience Native SDK Hello World #include <stdio.h>! #include <stdlib.h>! int ! main(int argc, char **argv)! {! fprintf(stdout, “Hello World!n”);! return EXIT_SUCCESS;! }! BlackBerry 14
  • 15. moosecon - @KLAJLI & @ARDIRI Native SDK BlackBerry Platform Services the BlackBerry Platform Services (BPS) library provides an application with a single consistent interface to a number of different services during the execution of the application. •  universal event management •  user interaction/navigator •  input/output (sensors, audio, LED, screen, multimedia) •  device information, locale and payment services •  network status and geo-location Native SDK BlackBerry Platform Services bps_event_t *event_bps;! event_bps = NULL;! bps_get_event(&event_bps, timeout); // -1, forever! if (event_bps != NULL)! {! event_domain = bps_event_get_domain(event_bps);! if (event_domain == xxx)! {! // request event information within the domain! }! }! BlackBerry 15
  • 16. moosecon - @KLAJLI & @ARDIRI Native SDK BlackBerry Platform Services handling {service} events !{service}_request_events({param}); // request events
 then capture the appropriate {service} events! event_domain = bps_event_get_domain(event_bps);! if (event_domain == {service}_get_domain())! {! // handle the {service} event Native SDK Open Industry Standards BlackBerry 16
  • 17. moosecon - @KLAJLI & @ARDIRI Native SDK Open Source Support CASCADES SDK BlackBerry 17
  • 18. moosecon - @KLAJLI & @ARDIRI Cascades SDK OSS & Developer Experience Mature C++ application framework Good APIs Signals and Slots Many help classes QML QtGui Cascades BlackBerry 18
  • 19. moosecon - @KLAJLI & @ARDIRI BLACKBERRY 10 CASCADES DEMO Cascades SDK Hello World import bb.cascades 1.0 Page { content: Label { text: "Hello World" } } BlackBerry 19
  • 20. moosecon - @KLAJLI & @ARDIRI Cascades SDK Hello World Page* root = new Page; Label* label = Label::create() .text("Hello World"); root->setContent(label); Application::instance()->setScene(root); 60 FPS! BlackBerry 20
  • 21. moosecon - @KLAJLI & @ARDIRI App logic UI in separate thread 28° Cascades Photos by rumpleteaser and whologwy Flickr Scene Graph Root Container RotationZ Hello World Scale Opacity Container Text: “Hello World” BlackBerry 21
  • 22. moosecon - @KLAJLI & @ARDIRI R6#'.$+ Qt uses signals & slots paradigm Cascades events are mapped to Qt signals S('1*-'F+T&"@A+R6#'.$+-'+!H<+ Container { onTouch: { if (event.isDown()) { scaleX = 2; scaleY = 2; rotationZ = 45; } else if (event.isUp()){ scaleX = 1; scaleY = 1; rotationZ = 0; } } }+ BlackBerry 22
  • 23. moosecon - @KLAJLI & @ARDIRI S('1*-'F+T&"@A+R6#'.$+-'+BUU+ QObject::connect(bubble,SIGNAL touched(bb::cascades::TouchEvent *t) (touch(bb::cascades::TouchEvent*)) { this,SLOT if (t->isDown()) { (touched(bb::cascades::TouchEvent*)) bubble->setScale(2f); ); bubble->setRotation(45.0f); } else if (t->isUp()) { bubble->setScale(1f); bubble->setRotation(0.0f); } } } C++ QML You can choose! No difference between UI created in QML or C++ They can be combined Typically, UI in QML and business logic in C++ QML supports JavaScript for signal handling BlackBerry 23
  • 24. moosecon - @KLAJLI & @ARDIRI >'-0(%&'$+ Any Cascades UI element can be animated Animations are running on the engine thread Remember the client server setup? Explicit & Implicit animations: translation, rotation, scale, opacity, … Core Controls BlackBerry 24
  • 25. moosecon - @KLAJLI & @ARDIRI B"$.&0+B&'.3&*$ SpeedGauge Container DockLayout RotationZ (-0) RotationZ (-40) TranslationY TranslationY (30) (30) Custom list items BlackBerry 25
  • 26. moosecon - @KLAJLI & @ARDIRI Data Binding SQL XML JSON Anything StackLayout & DockLayout BlackBerry 26
  • 27. moosecon - @KLAJLI & @ARDIRI Pages, Panes and Navigation UI Guidelines developer.blackberry.com/ui BlackBerry 27
  • 28. moosecon - @KLAJLI & @ARDIRI Thank You Aaron Ardiri AARDIRI@blackberry.com twitter: @ARDIRI Kamel Lajili KLAJILI@blackberry.com twitter: @KLAJILI BlackBerry 28