SlideShare ist ein Scribd-Unternehmen logo
1 von 61
unify
         INSIGHTS


Bernhard Hochstätter & Sebastian Werner
         Deutsche Telekom AG
    Droidcon Berlin – May 27th 2010
SPEAKER




Bernhard Hochstätter         Sebastian Werner
Team Lead Widgets            Software Developer
Deutsche Telekom AG          Deutsche Telekom AG

Native & Unify Development   JavaScript Specialist
INTRODUCTION
FRAGMENTATION ISSUE
FRAGMENTATION ISSUE

Apple   Google   Nokia   Microsoft   RIM   Samsung   HP




            not a single small company
Realistically at least four
                   major platforms




      THERE WILL BE
MORE THAN ONE PLATFORM
WHAT A CONSTRAST
    The future promises more operating
       system fragmentation, not less


                                             Jason Grigsby, O‘Reilly


                                     Webkit in various forms is how nearly every
                                     credible smartphone now “does“ the web.

Alex Russel, Google
CONVERGING WEB

                                       Microsoft       +Opera +Mozilla




Webkit   Apple        Google            Nokia             RIM          Samsung   HP




                 Nokia: via Qt as QtWebkit
                 RIM: Webkit based with BlackBerry OS 6.0 in Q3 2010
                 Samsung: Bada platform uses Webkit
OUR GOAL

Real Applications
     not just
 Better Websites
UNSUPPORTED

Legacy Browsers:     Thin Clients:

Mobile IE            Opera Mini
Symbian S60          Bold
BlackBerry Browser   Skyfire
Netfront
REQUIREMENTS
  Hardware
                       +      Software

                           Modern Browser / SDK
 Powerful CPU and
                               Component
  256MB of RAM
                              HTML5 & CSS3
Touch screen with at
                                support
   least 320x480
     resolution
                              JIT Compiler for
                                  JavaScript
FAN APP 2010   Download your copy today
                  http://bit.ly/cVEdyu
YEP,
ANDROID VERSION
   IS IN THE WORKS
STRONG
FOUNDATION
Object-oriented
  JavaScript      +   Build System
                                     +   UI Framework
PHONEGAP

App Stores
             +      Additional
                 JavaScript APIs   +   Open Source
SASS


        +                 +
              Mixins,
                                Image
CSS++       Variables &
                              Embedding
             Includes
ADOBE AIR

Desktop
Widgets   +      Additional
              JavaScript APIs   +   Widespread
                                    Technology
ARCHITECTURE
RUNTIME
NATIVE ACCESS


• Access   to hardware and system software is restricted

• Different   upcoming standards like JIL, BONDI or WAC

• Software    like PhoneGap or Titanium Mobile
Client                      Server
            Application                 Service 1


               Unify                    Service n


             qooxdoo


          Browser Engine


Browser      Adobe AIR       PhoneGap


          Operating System


             Hardware
PhoneGap                Adobe AIR
Operating System

  Native Application       Native Runtime

     Web View                Application Container

       Unify Application        Unify Application
Web Browser



                                              One
                                            Codebase                   Web Server




Vendor SDK
                  +              PhoneGap              Adobe AIR SDK




               Native App                              Widget Bundle
                                                                           +         Adobe AIR Runtime




             Application Store                                         Desktop Widget
CODE
APPLICATION STRUCTURE



                 +
                     Desktop Interface   Desktop Application
Business Layer
   Utilities
                     Mobile Interface    Mobile Application
STYLES
        Functional Core
Unify


        Platform Styles

         Color Scheme

        Resource Images
                               Sass
                              Engine   style.css
          View Styles
App




         Components

        Resource Images
FEATURES
qooxdoo                              Unify                 PhoneGap

 JavaScript    Desktop-class      Mobile                Sass        System
    OO           widgets         Controls           Integration     Access


   Event                         View               PhoneGap       Hardware
               Localization
  System                       Managment            Integration     Access


                                                    Adobe AIR
   Ajax        Build System    Touch Events
                                                    Integration


  DOM                            Business
Manipulation                     Objects
BASICS
StatusBar

Back    TitleBar    Refresh


       ScrollView



        Overlay




        TabBar
StatusBar




Layer




TabBar
StatusBar


          Timeline        Refresh   Timeline   Status    Refresh   Sta



Trying out a new bar...             Hermann
Hanging out on the beach...


Working hard on project...             Hanging out on the
                                       beach with friends...
Watching last episode of...




            TabBar
StatusBar


          Timeline        Refresh   Timeline   Status      Refresh   Status       User      Refresh   U



Trying out a new bar...             Hermann                              @hermann                     H

                                                                         New York City, USA
Hanging out on the beach...                                                                           W


Working hard on project...             Hanging out on the                                             A
                                       beach with friends...            34021   Followers
Watching last episode of...                                              3402   Following             F
                                                                         1382   Tweets
                                                                           12   Favorites




                                               TabBar
StatusBar

sh   Timeline   Status    Refresh   Status       User       Refresh   User        Timeline           Refresh



     Hermann                            @hermann                       Holiday on Ibiza. Sun is...

                                        New York City, USA
                                                                       Wow. Facebooks buys Google


        Hanging out on the                                             Android market share...
        beach with friends...          34021   Followers
                                        3402   Following               Funny kittens, take a look...
                                        1382   Tweets
                                          12   Favorites




                                                TabBar
StatusBar

sh   Status       User      Refresh   User        Timeline           Refresh



         @hermann                      Holiday on Ibiza. Sun is...

         New York City, USA
                                       Wow. Facebooks buys Google


                                       Android market share...
        34021   Followers
         3402   Following              Funny kittens, take a look...
         1382   Tweets
           12   Favorites




                                                   TabBar
CORE
I am the Boss



                                ViewManager
                                                         I am a View
                                                          Controller



                View 1             View 2      View 3
communication




                Layer 1           Layer 2      Layer 3



                                LayerManager
VIEWS
• Singletons   (instantiated as required)

• Have   a unique ID (mail-view)

• May   have a parameter (emailId, ...)

• Have   a lifecycle (create->resume->pause)

• Rendered     normal, modal or full screen
VIEW ID
                           Convention over Configuration




Class-Name                          View-ID               CSS-Selector
twitter.view.mobile.Timeline        timeline              #timeline
twitter.view.mobile.Status          status                #status
twitter.view.mobile.User            user                  #user
attaches to touch events
Application                            manages pressed state buttons / items


       delegates actions to elements


                                       interacts with browser history
NavigationManager                      recovers application state on launch



       listens to navigation changes


                                       controls life cycle of view instances
ViewManager                            updates parameters on view instances



       controls the current layer


                                       creation and animation of layers
LayerManager                           selection handling & recovery
NAVIGATION
              file://mobile.html#mail-list/mail:1234/attachments


• Based   on native browser‘s history managment

• Path-like   structural navigation after („#“ symbol)

• Detection     of movement in structure (upwards, ...)

• Automatic     storage/recovery of path
APPLICATION

• Registers     views in ViewManager

• Initializes   optional TabBar

• Establish     delegates for click handling

• Toggles   CSS classes on orientation change
EVENTS
  Touch

                • Newhandlers for
 Gesture
                 qooxdoo‘s event system
Transition      • Touchevents are emulated
                 on non-touch devices
Orientation
NEW TOUCH EVENTS
Tap vs. Click           Hold / Release
  Touch Start                  Touch Start


                                       +50ms
   Touch End
                               Touch Hold


      Tap
                      Touch Move             Touch End

             +300ms

     Click                    Touch Release
SCROLLING
NATIVE SCROLLING


                          Unpainted Content
Peep Hole



                           Application Content
SCROLL ISSUE #1
                              No fixed objects
                       Oops: Invisible title bar and back button

Layer 1                                                                                 Layer 2
                   Contacts     Refresh          Back        Details          Refresh

          Andreas Baumann

          Michael Rose                          Claudia Menowitz                        Peep Hole

          Claudia Menowitz                      Bergallee 3
                                                74839 Rüdlingen
          Rosa Raumhall
                                                E-Mail: claudia@web.de
          Rüdiger Schwefel                      Homepage: http://claudia.de

          Mark Follt
SCROLL ISSUE #2
                    Unreliable scroll event

Andreas Baumann       0px   Andreas Baumann    Event reports 15px
Michael Rose         25px   Michael Rose
Claudia Menowitz            Claudia Menowitz   Event reports 60px
                     50px
Rosa Raumhall               Rosa Raumhall
                     75px
Rüdiger Schwefel            Rüdiger Schwefel
                    100px
Mark Follt                  Mark Follt
Hermann Freie       125px   Hermann Freie           Events fired not often enough.
Günther Sieg        150px   Günther Sieg
                                                    Position already changed again
Florian Neumann     175px   Florian Neumann
                                                    during event handler
Patricia Lein               Patricia Lein
                    200px
SCROLL ISSUE #3
Different layers with different dimensions

Andreas Baumann
Michael Rose
Claudia Menowitz
Rosa Raumhall
Rüdiger Schwefel
Mark Follt                  Initial solution:
Hermann Freie               Dynamically scroll up?
Günther Sieg       Oops     Still problematic:
Florian Neumann
                            Flickering through white unrendered
Patricia Lein               areas in shorter layers
OUR SOLUTION
StatusBar




            •   100% sized layout (using the full viewport)

            •   A custom scroll view component


Layer       •   Horizontal & vertical scrolling

            •   Animated (accelerated / decelerated)

            •   Performance optimized
CUSTOM SCROLLING
Andreas Baumann

Michael Rose
                   Scroll Content
Claudia Menowitz
                                    •   Support for fixed positioned elements
Rosa Raumhall
                   Scroll View      •   Scrolling like native (currently like iPhone)
Rüdiger Schwefel
Mark Follt                          •   Hardware-accelerated using CSS3 transforms
Hermann Freie
                                    •   No white flickering
Günther Sieg

Florian Neumann                     •   More CPU/memory intensive

Patricia Lein
PAGING
         StatusBar

Back     TitleBar    Refresh


          Pager


        Berlin                 Frankfurt

       18° sunny               23° sunny



         TabBar
PAGING
                     StatusBar

            Back     TitleBar    Refresh


                      Pager


 Berlin            Frankfurt                Mailand

18° sunny          23° sunny               25° cloudy



                     TabBar
PAGING
                     StatusBar

            Back     TitleBar    Refresh


                      Pager


Frankfurt           Mailand                  Paris

23° sunny          25° cloudy              24° sunny



                     TabBar
PAGING
                      StatusBar

             Back     TitleBar    Refresh


                       Pager


 Mailand              Paris

25° cloudy          24° sunny



                      TabBar
MORE
BUSINESS LAYER
• Multiple   service per business layer

• Automatic    managment of load/error events

• Simple   interface for authors of views

• Both   caching and local storage built-in

• Integrated   XML to JSON converter
BUILD SYSTEM
• Based   on qooxdoo build system

• Integration   of Sass style compiler

• Extended    PhoneGap templates

• Eclipse   and XCode integration working

• Android    & iPhone supported at the moment
APPLICATION
             DEVELOPMENT
• Application   runs in the browser (Safari preferred)

• No   local server required - just plain file:// protocol

• Save-Reload Workflow

• Creating   iPhone/Android app is super-simple

• Control    build process from Eclipse/XCode
THANK YOU

Weitere ähnliche Inhalte

Was ist angesagt?

Grameen Solutions Technology Skills
Grameen Solutions   Technology SkillsGrameen Solutions   Technology Skills
Grameen Solutions Technology SkillsGrameen Solutions
 
Domino app dev competitive advantage final
Domino app dev competitive advantage finalDomino app dev competitive advantage final
Domino app dev competitive advantage finalJohn Head
 
OpenNTF.org: Celebrating 10 years of community driven open source (Speedgeeki...
OpenNTF.org: Celebrating 10 years of community driven open source (Speedgeeki...OpenNTF.org: Celebrating 10 years of community driven open source (Speedgeeki...
OpenNTF.org: Celebrating 10 years of community driven open source (Speedgeeki...John Head
 
IMS presence for intuitive communications
IMS presence for intuitive communicationsIMS presence for intuitive communications
IMS presence for intuitive communicationsClaude Florin
 
Grameen Solutions Product Engineering Featured Projects 2009 11 12
Grameen Solutions   Product Engineering Featured Projects 2009 11 12Grameen Solutions   Product Engineering Featured Projects 2009 11 12
Grameen Solutions Product Engineering Featured Projects 2009 11 12Grameen Solutions
 
Domino app dev competitive advantage for blug
Domino app dev competitive advantage for blugDomino app dev competitive advantage for blug
Domino app dev competitive advantage for blugJohn Head
 
lightweight SOA with web widgets
lightweight SOA  with web widgetslightweight SOA  with web widgets
lightweight SOA with web widgetsPhil Calçado
 
IBM Lotus Notes/Domino Application Development Competitive Advantage : The So...
IBM Lotus Notes/Domino Application Development Competitive Advantage : The So...IBM Lotus Notes/Domino Application Development Competitive Advantage : The So...
IBM Lotus Notes/Domino Application Development Competitive Advantage : The So...John Head
 
Presenting the Open Web Device by Telefonica
Presenting the Open Web Device by TelefonicaPresenting the Open Web Device by Telefonica
Presenting the Open Web Device by TelefonicaFrancisco Jordano
 
The Notes/Domino Application Development Competitive Advantage - IamLUG
The Notes/Domino Application Development Competitive Advantage - IamLUGThe Notes/Domino Application Development Competitive Advantage - IamLUG
The Notes/Domino Application Development Competitive Advantage - IamLUGJohn Head
 
Adobe flash platform java
Adobe flash platform javaAdobe flash platform java
Adobe flash platform javaMichael Chaize
 
MWLUG 2011: Notes/Domino Application Development Competitive Advantage
MWLUG 2011: Notes/Domino Application Development Competitive AdvantageMWLUG 2011: Notes/Domino Application Development Competitive Advantage
MWLUG 2011: Notes/Domino Application Development Competitive AdvantageJohn Head
 
Super feats of integration x pages with symphony sharepoint and office
Super feats of integration  x pages with symphony sharepoint and officeSuper feats of integration  x pages with symphony sharepoint and office
Super feats of integration x pages with symphony sharepoint and officeJohn Head
 
Notes/Domino Application Development Competitive Advantage - UKLUG 2011 Edition
Notes/Domino Application Development Competitive Advantage - UKLUG 2011 EditionNotes/Domino Application Development Competitive Advantage - UKLUG 2011 Edition
Notes/Domino Application Development Competitive Advantage - UKLUG 2011 EditionJohn Head
 
HTML5/CSS3 and Future Web in Mobile and IPTV
HTML5/CSS3 and Future Web in Mobile and IPTVHTML5/CSS3 and Future Web in Mobile and IPTV
HTML5/CSS3 and Future Web in Mobile and IPTVManyoung Cho
 
JAX2010 Flex Java technical session: interactive dashboard
JAX2010 Flex Java technical session: interactive dashboardJAX2010 Flex Java technical session: interactive dashboard
JAX2010 Flex Java technical session: interactive dashboardMichael Chaize
 
Oop2012 keynote Design Driven Development
Oop2012 keynote Design Driven DevelopmentOop2012 keynote Design Driven Development
Oop2012 keynote Design Driven DevelopmentMichael Chaize
 
“Kum Bah Yah” meets “Lets Kick Butt” : The Integration of IBM Lotus Notes and...
“Kum Bah Yah” meets “Lets Kick Butt” : The Integration of IBM Lotus Notes and...“Kum Bah Yah” meets “Lets Kick Butt” : The Integration of IBM Lotus Notes and...
“Kum Bah Yah” meets “Lets Kick Butt” : The Integration of IBM Lotus Notes and...John Head
 

Was ist angesagt? (20)

The Blackberry Opportunity (RIM) 160612
The Blackberry Opportunity (RIM) 160612The Blackberry Opportunity (RIM) 160612
The Blackberry Opportunity (RIM) 160612
 
Grameen Solutions Technology Skills
Grameen Solutions   Technology SkillsGrameen Solutions   Technology Skills
Grameen Solutions Technology Skills
 
Domino app dev competitive advantage final
Domino app dev competitive advantage finalDomino app dev competitive advantage final
Domino app dev competitive advantage final
 
OpenNTF.org: Celebrating 10 years of community driven open source (Speedgeeki...
OpenNTF.org: Celebrating 10 years of community driven open source (Speedgeeki...OpenNTF.org: Celebrating 10 years of community driven open source (Speedgeeki...
OpenNTF.org: Celebrating 10 years of community driven open source (Speedgeeki...
 
IMS presence for intuitive communications
IMS presence for intuitive communicationsIMS presence for intuitive communications
IMS presence for intuitive communications
 
Grameen Solutions Product Engineering Featured Projects 2009 11 12
Grameen Solutions   Product Engineering Featured Projects 2009 11 12Grameen Solutions   Product Engineering Featured Projects 2009 11 12
Grameen Solutions Product Engineering Featured Projects 2009 11 12
 
Domino app dev competitive advantage for blug
Domino app dev competitive advantage for blugDomino app dev competitive advantage for blug
Domino app dev competitive advantage for blug
 
lightweight SOA with web widgets
lightweight SOA  with web widgetslightweight SOA  with web widgets
lightweight SOA with web widgets
 
IBM Lotus Notes/Domino Application Development Competitive Advantage : The So...
IBM Lotus Notes/Domino Application Development Competitive Advantage : The So...IBM Lotus Notes/Domino Application Development Competitive Advantage : The So...
IBM Lotus Notes/Domino Application Development Competitive Advantage : The So...
 
Presenting the Open Web Device by Telefonica
Presenting the Open Web Device by TelefonicaPresenting the Open Web Device by Telefonica
Presenting the Open Web Device by Telefonica
 
The Notes/Domino Application Development Competitive Advantage - IamLUG
The Notes/Domino Application Development Competitive Advantage - IamLUGThe Notes/Domino Application Development Competitive Advantage - IamLUG
The Notes/Domino Application Development Competitive Advantage - IamLUG
 
Adobe flash platform java
Adobe flash platform javaAdobe flash platform java
Adobe flash platform java
 
MWLUG 2011: Notes/Domino Application Development Competitive Advantage
MWLUG 2011: Notes/Domino Application Development Competitive AdvantageMWLUG 2011: Notes/Domino Application Development Competitive Advantage
MWLUG 2011: Notes/Domino Application Development Competitive Advantage
 
Super feats of integration x pages with symphony sharepoint and office
Super feats of integration  x pages with symphony sharepoint and officeSuper feats of integration  x pages with symphony sharepoint and office
Super feats of integration x pages with symphony sharepoint and office
 
Notes/Domino Application Development Competitive Advantage - UKLUG 2011 Edition
Notes/Domino Application Development Competitive Advantage - UKLUG 2011 EditionNotes/Domino Application Development Competitive Advantage - UKLUG 2011 Edition
Notes/Domino Application Development Competitive Advantage - UKLUG 2011 Edition
 
Jax2010 adobe lcds
Jax2010 adobe lcdsJax2010 adobe lcds
Jax2010 adobe lcds
 
HTML5/CSS3 and Future Web in Mobile and IPTV
HTML5/CSS3 and Future Web in Mobile and IPTVHTML5/CSS3 and Future Web in Mobile and IPTV
HTML5/CSS3 and Future Web in Mobile and IPTV
 
JAX2010 Flex Java technical session: interactive dashboard
JAX2010 Flex Java technical session: interactive dashboardJAX2010 Flex Java technical session: interactive dashboard
JAX2010 Flex Java technical session: interactive dashboard
 
Oop2012 keynote Design Driven Development
Oop2012 keynote Design Driven DevelopmentOop2012 keynote Design Driven Development
Oop2012 keynote Design Driven Development
 
“Kum Bah Yah” meets “Lets Kick Butt” : The Integration of IBM Lotus Notes and...
“Kum Bah Yah” meets “Lets Kick Butt” : The Integration of IBM Lotus Notes and...“Kum Bah Yah” meets “Lets Kick Butt” : The Integration of IBM Lotus Notes and...
“Kum Bah Yah” meets “Lets Kick Butt” : The Integration of IBM Lotus Notes and...
 

Ähnlich wie Droidcon - Unify Insights

Building Rich Mobile Apps with HTML5, CSS3 and JavaScript
Building Rich Mobile Apps with HTML5, CSS3 and JavaScriptBuilding Rich Mobile Apps with HTML5, CSS3 and JavaScript
Building Rich Mobile Apps with HTML5, CSS3 and JavaScriptSencha
 
Fragmentation in mobile design: fact or fiction
Fragmentation in mobile design: fact or fictionFragmentation in mobile design: fact or fiction
Fragmentation in mobile design: fact or fictionBelen Barros Pena
 
Getting Acquainted with PhoneGap
Getting Acquainted with PhoneGapGetting Acquainted with PhoneGap
Getting Acquainted with PhoneGapJoseph Labrecque
 
Cross platform mobile development with Corona
Cross platform mobile development with CoronaCross platform mobile development with Corona
Cross platform mobile development with CoronaKMS Technology
 
HTML5, PhoneGap and What's Next
HTML5, PhoneGap and What's NextHTML5, PhoneGap and What's Next
HTML5, PhoneGap and What's Nextm0bz
 
Keynote: Techday7 appcelerator titanium
Keynote: Techday7 appcelerator titaniumKeynote: Techday7 appcelerator titanium
Keynote: Techday7 appcelerator titaniumTechday7
 
Xebia adobe flash mobile applications
Xebia adobe flash mobile applicationsXebia adobe flash mobile applications
Xebia adobe flash mobile applicationsMichael Chaize
 
Flash Catalyst at Flex Camp Orange County
Flash Catalyst at Flex Camp Orange CountyFlash Catalyst at Flex Camp Orange County
Flash Catalyst at Flex Camp Orange CountyJuan Sanchez
 
MTC Spring 2013 - crossplatform woes - robert virkus - 2013-03-13
MTC Spring 2013 -  crossplatform woes - robert virkus - 2013-03-13MTC Spring 2013 -  crossplatform woes - robert virkus - 2013-03-13
MTC Spring 2013 - crossplatform woes - robert virkus - 2013-03-13Enough Software
 
HTML5 and the dawn of rich mobile web applications
HTML5 and the dawn of rich mobile web applicationsHTML5 and the dawn of rich mobile web applications
HTML5 and the dawn of rich mobile web applicationsJames Pearce
 
Cordova and PhoneGap Insights
Cordova and PhoneGap InsightsCordova and PhoneGap Insights
Cordova and PhoneGap InsightsMonaca
 
Blackberry_runtime_for_android_apps
Blackberry_runtime_for_android_appsBlackberry_runtime_for_android_apps
Blackberry_runtime_for_android_appsDroidcon Berlin
 
Gene Presentation For Android
Gene Presentation For AndroidGene Presentation For Android
Gene Presentation For AndroidGene Leybzon
 
Mobile appcelerator titanium
Mobile appcelerator titaniumMobile appcelerator titanium
Mobile appcelerator titaniumRhio Kim
 
Mobile appcelerator titanium
Mobile appcelerator titaniumMobile appcelerator titanium
Mobile appcelerator titaniumRhio Kim
 
Flex Air Intro
Flex Air IntroFlex Air Intro
Flex Air IntroJUG Genova
 

Ähnlich wie Droidcon - Unify Insights (20)

Building Rich Mobile Apps with HTML5, CSS3 and JavaScript
Building Rich Mobile Apps with HTML5, CSS3 and JavaScriptBuilding Rich Mobile Apps with HTML5, CSS3 and JavaScript
Building Rich Mobile Apps with HTML5, CSS3 and JavaScript
 
Fragmentation in mobile design: fact or fiction
Fragmentation in mobile design: fact or fictionFragmentation in mobile design: fact or fiction
Fragmentation in mobile design: fact or fiction
 
Mobile stategy
Mobile stategyMobile stategy
Mobile stategy
 
Getting Acquainted with PhoneGap
Getting Acquainted with PhoneGapGetting Acquainted with PhoneGap
Getting Acquainted with PhoneGap
 
Cross platform mobile development with Corona
Cross platform mobile development with CoronaCross platform mobile development with Corona
Cross platform mobile development with Corona
 
air
airair
air
 
HTML5, PhoneGap and What's Next
HTML5, PhoneGap and What's NextHTML5, PhoneGap and What's Next
HTML5, PhoneGap and What's Next
 
Flex User Group breton
Flex User Group bretonFlex User Group breton
Flex User Group breton
 
Keynote: Techday7 appcelerator titanium
Keynote: Techday7 appcelerator titaniumKeynote: Techday7 appcelerator titanium
Keynote: Techday7 appcelerator titanium
 
Embarcadero C++Builder XE3 Datasheet
Embarcadero C++Builder XE3 DatasheetEmbarcadero C++Builder XE3 Datasheet
Embarcadero C++Builder XE3 Datasheet
 
Xebia adobe flash mobile applications
Xebia adobe flash mobile applicationsXebia adobe flash mobile applications
Xebia adobe flash mobile applications
 
Flash Catalyst at Flex Camp Orange County
Flash Catalyst at Flex Camp Orange CountyFlash Catalyst at Flex Camp Orange County
Flash Catalyst at Flex Camp Orange County
 
MTC Spring 2013 - crossplatform woes - robert virkus - 2013-03-13
MTC Spring 2013 -  crossplatform woes - robert virkus - 2013-03-13MTC Spring 2013 -  crossplatform woes - robert virkus - 2013-03-13
MTC Spring 2013 - crossplatform woes - robert virkus - 2013-03-13
 
HTML5 and the dawn of rich mobile web applications
HTML5 and the dawn of rich mobile web applicationsHTML5 and the dawn of rich mobile web applications
HTML5 and the dawn of rich mobile web applications
 
Cordova and PhoneGap Insights
Cordova and PhoneGap InsightsCordova and PhoneGap Insights
Cordova and PhoneGap Insights
 
Blackberry_runtime_for_android_apps
Blackberry_runtime_for_android_appsBlackberry_runtime_for_android_apps
Blackberry_runtime_for_android_apps
 
Gene Presentation For Android
Gene Presentation For AndroidGene Presentation For Android
Gene Presentation For Android
 
Mobile appcelerator titanium
Mobile appcelerator titaniumMobile appcelerator titanium
Mobile appcelerator titanium
 
Mobile appcelerator titanium
Mobile appcelerator titaniumMobile appcelerator titanium
Mobile appcelerator titanium
 
Flex Air Intro
Flex Air IntroFlex Air Intro
Flex Air Intro
 

Mehr von Sebastian Werner

Gui Development with qooxdoo
Gui Development with qooxdooGui Development with qooxdoo
Gui Development with qooxdooSebastian Werner
 
Introduction to the qooxdoo Inspector
Introduction to the qooxdoo InspectorIntroduction to the qooxdoo Inspector
Introduction to the qooxdoo InspectorSebastian Werner
 
Web Application Development with qooxdoo
Web Application Development with qooxdooWeb Application Development with qooxdoo
Web Application Development with qooxdooSebastian Werner
 
Browser Object Model and Animations in qooxdoo
Browser Object Model and Animations in qooxdooBrowser Object Model and Animations in qooxdoo
Browser Object Model and Animations in qooxdooSebastian Werner
 

Mehr von Sebastian Werner (6)

Unify - JSConf.EU 2010
Unify - JSConf.EU 2010Unify - JSConf.EU 2010
Unify - JSConf.EU 2010
 
Gui Development with qooxdoo
Gui Development with qooxdooGui Development with qooxdoo
Gui Development with qooxdoo
 
Gui Internals of qooxdoo
Gui Internals of qooxdooGui Internals of qooxdoo
Gui Internals of qooxdoo
 
Introduction to the qooxdoo Inspector
Introduction to the qooxdoo InspectorIntroduction to the qooxdoo Inspector
Introduction to the qooxdoo Inspector
 
Web Application Development with qooxdoo
Web Application Development with qooxdooWeb Application Development with qooxdoo
Web Application Development with qooxdoo
 
Browser Object Model and Animations in qooxdoo
Browser Object Model and Animations in qooxdooBrowser Object Model and Animations in qooxdoo
Browser Object Model and Animations in qooxdoo
 

Kürzlich hochgeladen

Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdfChristopherTHyatt
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 

Kürzlich hochgeladen (20)

Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 

Droidcon - Unify Insights

  • 1. unify INSIGHTS Bernhard Hochstätter & Sebastian Werner Deutsche Telekom AG Droidcon Berlin – May 27th 2010
  • 2. SPEAKER Bernhard Hochstätter Sebastian Werner Team Lead Widgets Software Developer Deutsche Telekom AG Deutsche Telekom AG Native & Unify Development JavaScript Specialist
  • 5. FRAGMENTATION ISSUE Apple Google Nokia Microsoft RIM Samsung HP not a single small company
  • 6. Realistically at least four major platforms THERE WILL BE MORE THAN ONE PLATFORM
  • 7. WHAT A CONSTRAST The future promises more operating system fragmentation, not less Jason Grigsby, O‘Reilly Webkit in various forms is how nearly every credible smartphone now “does“ the web. Alex Russel, Google
  • 8. CONVERGING WEB Microsoft +Opera +Mozilla Webkit Apple Google Nokia RIM Samsung HP Nokia: via Qt as QtWebkit RIM: Webkit based with BlackBerry OS 6.0 in Q3 2010 Samsung: Bada platform uses Webkit
  • 9. OUR GOAL Real Applications not just Better Websites
  • 10. UNSUPPORTED Legacy Browsers: Thin Clients: Mobile IE Opera Mini Symbian S60 Bold BlackBerry Browser Skyfire Netfront
  • 11. REQUIREMENTS Hardware + Software Modern Browser / SDK Powerful CPU and Component 256MB of RAM HTML5 & CSS3 Touch screen with at support least 320x480 resolution JIT Compiler for JavaScript
  • 12. FAN APP 2010 Download your copy today http://bit.ly/cVEdyu
  • 13. YEP, ANDROID VERSION IS IN THE WORKS
  • 15. Object-oriented JavaScript + Build System + UI Framework
  • 16. PHONEGAP App Stores + Additional JavaScript APIs + Open Source
  • 17. SASS + + Mixins, Image CSS++ Variables & Embedding Includes
  • 18. ADOBE AIR Desktop Widgets + Additional JavaScript APIs + Widespread Technology
  • 21. NATIVE ACCESS • Access to hardware and system software is restricted • Different upcoming standards like JIL, BONDI or WAC • Software like PhoneGap or Titanium Mobile
  • 22. Client Server Application Service 1 Unify Service n qooxdoo Browser Engine Browser Adobe AIR PhoneGap Operating System Hardware
  • 23. PhoneGap Adobe AIR Operating System Native Application Native Runtime Web View Application Container Unify Application Unify Application
  • 24. Web Browser One Codebase Web Server Vendor SDK + PhoneGap Adobe AIR SDK Native App Widget Bundle + Adobe AIR Runtime Application Store Desktop Widget
  • 25. CODE
  • 26. APPLICATION STRUCTURE + Desktop Interface Desktop Application Business Layer Utilities Mobile Interface Mobile Application
  • 27. STYLES Functional Core Unify Platform Styles Color Scheme Resource Images Sass Engine style.css View Styles App Components Resource Images
  • 29. qooxdoo Unify PhoneGap JavaScript Desktop-class Mobile Sass System OO widgets Controls Integration Access Event View PhoneGap Hardware Localization System Managment Integration Access Adobe AIR Ajax Build System Touch Events Integration DOM Business Manipulation Objects
  • 31. StatusBar Back TitleBar Refresh ScrollView Overlay TabBar
  • 33. StatusBar Timeline Refresh Timeline Status Refresh Sta Trying out a new bar... Hermann Hanging out on the beach... Working hard on project... Hanging out on the beach with friends... Watching last episode of... TabBar
  • 34. StatusBar Timeline Refresh Timeline Status Refresh Status User Refresh U Trying out a new bar... Hermann @hermann H New York City, USA Hanging out on the beach... W Working hard on project... Hanging out on the A beach with friends... 34021 Followers Watching last episode of... 3402 Following F 1382 Tweets 12 Favorites TabBar
  • 35. StatusBar sh Timeline Status Refresh Status User Refresh User Timeline Refresh Hermann @hermann Holiday on Ibiza. Sun is... New York City, USA Wow. Facebooks buys Google Hanging out on the Android market share... beach with friends... 34021 Followers 3402 Following Funny kittens, take a look... 1382 Tweets 12 Favorites TabBar
  • 36. StatusBar sh Status User Refresh User Timeline Refresh @hermann Holiday on Ibiza. Sun is... New York City, USA Wow. Facebooks buys Google Android market share... 34021 Followers 3402 Following Funny kittens, take a look... 1382 Tweets 12 Favorites TabBar
  • 37. CORE
  • 38. I am the Boss ViewManager I am a View Controller View 1 View 2 View 3 communication Layer 1 Layer 2 Layer 3 LayerManager
  • 39. VIEWS • Singletons (instantiated as required) • Have a unique ID (mail-view) • May have a parameter (emailId, ...) • Have a lifecycle (create->resume->pause) • Rendered normal, modal or full screen
  • 40. VIEW ID Convention over Configuration Class-Name View-ID CSS-Selector twitter.view.mobile.Timeline timeline #timeline twitter.view.mobile.Status status #status twitter.view.mobile.User user #user
  • 41. attaches to touch events Application manages pressed state buttons / items delegates actions to elements interacts with browser history NavigationManager recovers application state on launch listens to navigation changes controls life cycle of view instances ViewManager updates parameters on view instances controls the current layer creation and animation of layers LayerManager selection handling & recovery
  • 42. NAVIGATION file://mobile.html#mail-list/mail:1234/attachments • Based on native browser‘s history managment • Path-like structural navigation after („#“ symbol) • Detection of movement in structure (upwards, ...) • Automatic storage/recovery of path
  • 43. APPLICATION • Registers views in ViewManager • Initializes optional TabBar • Establish delegates for click handling • Toggles CSS classes on orientation change
  • 44. EVENTS Touch • Newhandlers for Gesture qooxdoo‘s event system Transition • Touchevents are emulated on non-touch devices Orientation
  • 45. NEW TOUCH EVENTS Tap vs. Click Hold / Release Touch Start Touch Start +50ms Touch End Touch Hold Tap Touch Move Touch End +300ms Click Touch Release
  • 47. NATIVE SCROLLING Unpainted Content Peep Hole Application Content
  • 48. SCROLL ISSUE #1 No fixed objects Oops: Invisible title bar and back button Layer 1 Layer 2 Contacts Refresh Back Details Refresh Andreas Baumann Michael Rose Claudia Menowitz Peep Hole Claudia Menowitz Bergallee 3 74839 Rüdlingen Rosa Raumhall E-Mail: claudia@web.de Rüdiger Schwefel Homepage: http://claudia.de Mark Follt
  • 49. SCROLL ISSUE #2 Unreliable scroll event Andreas Baumann 0px Andreas Baumann Event reports 15px Michael Rose 25px Michael Rose Claudia Menowitz Claudia Menowitz Event reports 60px 50px Rosa Raumhall Rosa Raumhall 75px Rüdiger Schwefel Rüdiger Schwefel 100px Mark Follt Mark Follt Hermann Freie 125px Hermann Freie Events fired not often enough. Günther Sieg 150px Günther Sieg Position already changed again Florian Neumann 175px Florian Neumann during event handler Patricia Lein Patricia Lein 200px
  • 50. SCROLL ISSUE #3 Different layers with different dimensions Andreas Baumann Michael Rose Claudia Menowitz Rosa Raumhall Rüdiger Schwefel Mark Follt Initial solution: Hermann Freie Dynamically scroll up? Günther Sieg Oops Still problematic: Florian Neumann Flickering through white unrendered Patricia Lein areas in shorter layers
  • 51. OUR SOLUTION StatusBar • 100% sized layout (using the full viewport) • A custom scroll view component Layer • Horizontal & vertical scrolling • Animated (accelerated / decelerated) • Performance optimized
  • 52. CUSTOM SCROLLING Andreas Baumann Michael Rose Scroll Content Claudia Menowitz • Support for fixed positioned elements Rosa Raumhall Scroll View • Scrolling like native (currently like iPhone) Rüdiger Schwefel Mark Follt • Hardware-accelerated using CSS3 transforms Hermann Freie • No white flickering Günther Sieg Florian Neumann • More CPU/memory intensive Patricia Lein
  • 53. PAGING StatusBar Back TitleBar Refresh Pager Berlin Frankfurt 18° sunny 23° sunny TabBar
  • 54. PAGING StatusBar Back TitleBar Refresh Pager Berlin Frankfurt Mailand 18° sunny 23° sunny 25° cloudy TabBar
  • 55. PAGING StatusBar Back TitleBar Refresh Pager Frankfurt Mailand Paris 23° sunny 25° cloudy 24° sunny TabBar
  • 56. PAGING StatusBar Back TitleBar Refresh Pager Mailand Paris 25° cloudy 24° sunny TabBar
  • 57. MORE
  • 58. BUSINESS LAYER • Multiple service per business layer • Automatic managment of load/error events • Simple interface for authors of views • Both caching and local storage built-in • Integrated XML to JSON converter
  • 59. BUILD SYSTEM • Based on qooxdoo build system • Integration of Sass style compiler • Extended PhoneGap templates • Eclipse and XCode integration working • Android & iPhone supported at the moment
  • 60. APPLICATION DEVELOPMENT • Application runs in the browser (Safari preferred) • No local server required - just plain file:// protocol • Save-Reload Workflow • Creating iPhone/Android app is super-simple • Control build process from Eclipse/XCode

Hinweis der Redaktion

  1. Multiple operating systems by a large set of vendors (-> next slide) Infact we have the slides for desktop fragmentation as well, but this is a mobile conference, right?
  2. Interesting market with a lot of competetion. Good for the customer. Bad for the developer.
  3. Even 6 are imaginable... oops
  4. Pause...
  5. That makes us different from a lot of cross platform web projects. We really want the user to not see any difference to native applications.
  6. So I like to start with platforms we definitely do not support. Infact we excluded these from the very beginning and focused on the modern platforms instead.
  7. We use it for JavaScript OO, event system etc. on mobile and for widgets on desktops
  8. Enhancing the feature set of web applications on mobile devices.
  9. Supercharged CSS
  10. The standard for building desktop web applications.
  11. Thanks to T-Labs for their help to bring BONDI standards to PhoneGap.
  12. Let‘s focus on the Unify specific features here...
  13. Here you can take a quick look on some of our components. Basically we do not create components for every single element and wrap every HTML element. I guess that would be too expensive. We just wrap elements which have some kind of non-HTML functionality.
  14. One thing which was invisible on the previous slide are layers. A layer is basically a DOM element which includes all specific content for the current location in the application.
  15. Layers are used to animate from one location to another. This way the user get a feeling of where in the structure of the application he resides.
  16. Each layer which has a parent also comes with a back button (or close button on modal layers)
  17. Layers are shared. A layer which shows the timeline is only creates once and updated according to the position in the application and/or an optional parameter.
  18. The ViewManager controls the visible view/layer. The LayerManager manages state changes between layers (controls animations, zIndex, etc.) Each view has one exclusive layers.
  19. We started with the visible things (controls). Now let‘s get a little bit deeper. Layers are managed by the LayerManager which is itself controlled by the ViewManager.
  20. Ever used the wheather app on the iPhone?