SlideShare a Scribd company logo
The Enterprise Dilemma:
Native vs Web
Suzanne Alexandra
Android Technology Evangelist
reach	
  me	
  


@suzalex	
  
@motodev	
  
	
  #na1vevsweb	
  




Suzanne	
  Alexandra	
  
2012	
  
                                mobile	
  ubiquity	
  

"We	
  now	
  live	
  and	
  always	
  will	
  live	
  in	
  a	
  mul:-­‐device	
  world,	
  where	
  
companies	
  and	
  consumers	
  choose	
  different	
  smartphone	
  and	
  
tablet	
  pla?orms	
  and	
  expect	
  to	
  get	
  apps	
  on	
  all	
  of	
  them."

                                                                           -­‐-­‐	
  Forrester	
  Research	
  
na:ve	
  android	
                          mobile	
  middleware	
  




                                four	
  tracks	
  




                                                                       hybrid	
  
                 html5,	
  javascript	
  
Hybrid



         Experience                  Cost



Native                                        Web


         Performance                Agility




                       Middleware
the	
  answer	
  
                 it	
  depends	
  
it's	
  both	
  business	
  and	
  technical	
  
na1ve	
  android	
  
what	
  is	
  na1ve?	
  


  android	
  sdk	
  


                           android	
  ndk	
  (c/c++)	
  



       renderscript	
  
citrix	
  receiver	
  
                                                                                   citrix	
  receiver	
  




vmware	
  view	
  
                                              splashtop	
  remote	
  desktop	
  
key	
  technology	
  benefits	
  

na1ve	
  experience	
                             integrate	
  with	
  android	
  plaForm	
  
beDer	
  access	
  to	
  device	
  features	
     more	
  discoverable	
  on	
  device	
  
integrate	
  with	
  other	
  apps	
              run	
  smoother,	
  beDer,	
  faster	
  
key	
  business	
  benefits	
  

low	
  barrier	
  to	
  entry	
        reuse	
  app	
  func1onality	
  
distribute	
  through	
  markets	
     rich	
  ecosystem,	
  wealth	
  of	
  material	
  
open	
  and	
  free	
  plaForm	
  
the	
  android	
  plaForm	
     apps	
  run	
  here	
  
android	
  security	
  001	
  
android	
  security	
  001	
  




each	
  app	
  runs	
  in	
  its	
  own	
  process	
  
android	
  security	
  001	
  




      each	
  app	
  runs	
  in	
  its	
  own	
  process	
  


each	
  app	
  can	
  access	
  only	
  its	
  own	
  data	
  
android	
  market	
  


  	
  	
  	
  	
  	
  easy	
  to	
  upload	
  

  	
  	
  	
  	
  easy	
  to	
  update	
  
  	
  	
  	
  	
  malware	
  checks	
  
  	
  	
  	
  	
  device	
  or	
  feature	
  filtering	
  
market	
  filtering	
  

 <?xml version="1.0" encoding="utf-8"?>
 <manifest ... >

 <uses-sdk android:minSdkVersion="8"
           android:targetSdkVersion="11" />
 <uses-feature android:name="android.hardware.bluetooth" />
 <uses-feature
           android:name="android.hardware.camera.autofocus"
           android:required="true"/>

 </manifest>
the	
  plaForms	
  

                        Native Android
       Cross-platform        No

       User interface       High

       Performance          High

       Cost                 High

       Updates          Android Market

       Languages         Java, C, C++
Let's take a poll
html5	
  
box	
  
                                          npr	
  




bit.ly	
  
                       find	
  parking	
  lots	
  
mobile-­‐op:mized	
  
   web	
  sites	
  




                        the	
  spectrum	
  




                                              html5	
  web	
  apps	
  
cross	
  plaForm	
  




                       sketchpad	
  
 graceful	
  degrada:on	
  
<canvas>	
  
Your	
  browser	
  is	
  not	
  supported	
  
</canvas>	
  
                                                                                                           feature	
  detec:on	
  
                                                                                                           !!document.createElement
                                                                                                           ('canvas').getContext	
  



                                                                          cross	
  browser	
  


       mul:ple	
  css	
  files	
  
       styles.css	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  mobile.css	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  android.css
       <h1 { color:white; text-align:center;                                                                             }
canvas	
  




    <canvas	
  id="canvas"	
  width="838"	
  height="220"></canvas>
geoloca1on	
  




         navigator.geoloca:on.getCurrentPosi:on	
  
         	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  (	
  func:on	
  (	
  posi:on	
  )	
  {	
  …	
  }	
  	
  	
  );
video	
  




            <video	
  src="movie.webm"></video>
offline	
  access	
  …	
  app	
  cache	
  



                                 CACHE MANIFEST
                                 index.html
                                 stylesheet.css
                                 images/logo.png
                                 scripts/main.js




                <html	
  manifest="demo.manifest">	
  
web	
  sockets	
  

var connection =
    new WebSocket('ws://html5rocks.websocket.org/echo');
web	
  workers	
  




                     <script type="text/javascript">

                       var worker = new Worker('worker.js');

                       ...

                     </script>
the	
  big	
  ques1on.	
  
       security	
  
a	
  few	
  1ps	
  


 	
  	
  Make	
  sure	
  the	
  device	
  is	
  password	
  protected	
  and	
  encrypted.	
  
 	
  	
  Store	
  locally	
  only	
  a	
  small	
  subset	
  of	
  enterprise	
  data.	
  	
  	
  
 	
  	
  Consider	
  changing	
  the	
  schema	
  of	
  a	
  local	
  database.	
  
 	
  	
  Do	
  origin	
  checks	
  on	
  cross-­‐document	
  messaging.	
  
 	
  	
  Remember	
  Google	
  Chrome.	
  
on	
  chrome	
  beta	
  

                                           X-­‐Frame-­‐Op:ons	
  




                                  WebSockets	
  
Sandboxing	
  
Mul:process	
  architecture	
  
browser	
  comparison	
  
                      Android Browser              Google Chrome
 Feature               Android 1.5+                 Android 4.0+
 Canvas
                                        2.1+	
  
 Geolocation                            2.0+	
  

 Video + Audio                          2.3+	
  

 App cache                              2.1+	
  

 Web storage                            2.0+	
  

 Web sockets

 Web workers
what	
  about	
  ui?	
  




               fixed	
  posi:on	
  areas	
  	
  
                  +	
  scrolling	
  areas	
  


                                  touch	
  
                             mul:touch	
  
    canvas	
  3d	
  with	
  accelera:on	
  
Sensa	
  Touch	
  Charts	
  




                                                  SproutCore	
  




also:	
  jQuery	
  Mobile	
  
viewpoints	
  


      look	
  like	
  a	
  na:ve	
  	
  
         mobile	
  app	
  




                                           look	
  like	
  the	
  web	
  
                                             be	
  consistent	
  	
  
                                           across	
  pla?orms	
  
what's	
  motorola	
  doing?	
  



    "If	
  we	
  can	
  standardize	
  device	
  APIs	
  that	
  provide	
  developers	
  
                               quote here …
    access	
  to	
  the	
  whole	
  device,	
  efficiently	
  …	
  then	
  I	
  think	
  we	
  
    will	
  really	
  see	
  the	
  emergence	
  of	
  a	
  ubiquitous,	
  cross	
  device	
  
    web	
  pla?orm	
  and	
  an	
  ecosystem	
  based	
  on	
  open	
  
    standards."	
  


                                                                                Gilles	
  Drieu	
  
                                                              VP,	
  Sohware	
  Engineering	
  
                                                                       Motorola	
  Mobility
the	
  plaForms	
  

                      Native Android          HTML5
 Cross-platform            No                  Yes

 User interface           High            Medium to high

 Performance              High               Medium

 Cost                     High                 Low

 Updates              Android Market        Your server

 Languages             Java, C, C++    HTML, CSS, JavaScript
Let's take another poll
hybrid	
  wrapper	
  
why	
  hybrid?	
              Hybrid



              Experience                  Cost



 Native                                            Web



              Performance                Agility




                            Middleware
geTng	
  started	
  




                                               MOTODEV	
  Studio	
  


                                    +	
  
                                                hybrid	
  sample	
  
     web	
  app	
  or	
  site	
             moto.ly/wrappersample	
  
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    String url = "http://www.motorola.com";
    Intent i = new Intent(Intent.ACTION_VIEW);
    i.setData( Uri.parse(url) );
    startActivity(i);
    this.finish();
}
javascript	
  bridge	
  

Na:ve	
  calls	
  HTML5	
  
loadURL("javascript: addInteger("+integer+");");


HTML5	
  calls	
  na:ve	
  
WebView.addJavascriptInterface(
      new Gesture(), "gesture" );
the	
  plaForms	
  

                  Native Android          HTML5         Hybrid Wrapper
 Cross-platform            No               Yes               No

 User interface           High         Medium to high    Medium to high

 Performance              High            Medium            Medium

 Cost                     High              Low               Low

 Updates              Android Market    Your server      Android Market

 Languages            Java, C, C++        HTML,         Java, HTML, CSS,
                                       CSS,JavaScript      JavaScript
the	
  boDom	
  line.	
  	
  if	
  …	
  

Invested	
  in	
  na:ve	
  already	
  	
  …	
  	
  	
  na:ve	
  
Demand	
  top	
  performance	
  	
  …	
  	
  na:ve	
  
App	
  is	
  very	
  complex	
  or	
  highly	
  interac:ve	
  	
  …	
  	
  na:ve	
  
Targe:ng	
  mul:ple	
  pla?orms	
  and	
  have	
  web	
  exper:se	
  	
  …	
  	
  HTML5	
  
Need	
  na:ve	
  only	
  for	
  part	
  of	
  a	
  cross-­‐pla?orm	
  app	
  	
  …	
  	
  	
  hybrid	
  
Want	
  to	
  distribute	
  through	
  an	
  app	
  market	
  	
  …	
  	
  na:ve	
  or	
  hybrid	
  
Questions?
 @suzalex
 @motodev
More info

    MOTODEV for Enterprise
developer.motorola.com/enterprise
LEGAL
LICENSE NOTICES


Except where noted, sample source code written by Motorola Mobility Inc. and provided to you is licensed as described below.
Copyright © 2012, Motorola, Inc. All rights reserved except as otherwise explicitly indicated.
•  Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
•  Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
•  Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other
   materials provided with the distribution.
•  Neither the name of the Motorola, Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific
   prior written permission.
•  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
   LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
   THE POSSIBILITY OF SUCH DAMAGE.


Other source code displayed in this presentation may be offered under other licenses.


Apache 2.0
   Copyright © 2010, Android Open Source Project. All rights reserved unless otherwise explicitly indicated.
   Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the
   License at http://www.apache.org/licenses/LICENSE-2.0.
   Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
   CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.


Creative Commons 3.0 Attribution License
   Portions of this presentation are reproduced from work created and shared by Google (http://code.google.com/policies.html) and used according to terms
   described in the Creative Commons 3.0 Attribution License (http://creativecommons.org/licenses/by/3.0/).
 MOTOROLA and the Stylized M Logo are trademarks or registered trademarks of Motorola Trademark Holdings, LLC.
 All other trademarks are the property of their respective owners. © 2012 Motorola Mobility, Inc. All rights reserved.

More Related Content

What's hot

webinos and Open Ecosystems Open Governance
webinos and Open Ecosystems Open Governancewebinos and Open Ecosystems Open Governance
webinos and Open Ecosystems Open Governance
webinos project
 
BACnet HMI5 - BACnet Touch Panel - BACnet Touch Screen - HMI
BACnet HMI5 - BACnet Touch Panel - BACnet Touch Screen - HMIBACnet HMI5 - BACnet Touch Panel - BACnet Touch Screen - HMI
BACnet HMI5 - BACnet Touch Panel - BACnet Touch Screen - HMI
bacmove
 
2011 Mobile & Web technologies
2011 Mobile & Web technologies 2011 Mobile & Web technologies
2011 Mobile & Web technologies
JungHyuk Kwon
 
Dojo mobile web5-2013
Dojo mobile web5-2013Dojo mobile web5-2013
Dojo mobile web5-2013cjolif
 
Build Amazing Mobile Apps using HTML5, CSS3 and JavaScript - - MeeGo Confere...
Build Amazing Mobile Apps using HTML5, CSS3 and JavaScript -  - MeeGo Confere...Build Amazing Mobile Apps using HTML5, CSS3 and JavaScript -  - MeeGo Confere...
Build Amazing Mobile Apps using HTML5, CSS3 and JavaScript - - MeeGo Confere...
Raj Lal
 
Building a Next Generation Mobile Browser using Web technologies
Building a Next Generation Mobile Browser using Web technologiesBuilding a Next Generation Mobile Browser using Web technologies
Building a Next Generation Mobile Browser using Web technologies
n_adam_stanley
 
Enabling the mobile Web for a Dojo component
Enabling the mobile Web for a Dojo componentEnabling the mobile Web for a Dojo component
Enabling the mobile Web for a Dojo componentcjolif
 
T 0230 Google Wave Powered By Gwt
T 0230 Google Wave Powered By GwtT 0230 Google Wave Powered By Gwt
T 0230 Google Wave Powered By Gwtsupertoy2015
 
Html5 features: location, history and offline apps
Html5 features: location, history and offline appsHtml5 features: location, history and offline apps
Html5 features: location, history and offline apps
Konstantin Delchev
 
Frontend Monoliths: Run if you can!
Frontend Monoliths: Run if you can!Frontend Monoliths: Run if you can!
Frontend Monoliths: Run if you can!
Jonas Bandi
 
Sencha touchonbb10 bootcamp
Sencha touchonbb10 bootcampSencha touchonbb10 bootcamp
Sencha touchonbb10 bootcampn_adam_stanley
 
Make your TechComm online/offline available
Make your TechComm online/offline availableMake your TechComm online/offline available
Make your TechComm online/offline available
Georg Eck
 
How to pick the right development model for your mobile project?
How to pick the right development model for your mobile project?How to pick the right development model for your mobile project?
How to pick the right development model for your mobile project?
Conny Svensson
 
Client Continuum Dec Fy09
Client Continuum Dec Fy09Client Continuum Dec Fy09
Client Continuum Dec Fy09Martha Rotter
 
Next Generation Hybrid Applications with Qt - presentation for SEE 2009
Next Generation Hybrid Applications with Qt - presentation for SEE 2009Next Generation Hybrid Applications with Qt - presentation for SEE 2009
Next Generation Hybrid Applications with Qt - presentation for SEE 2009
Nokia
 
Android Services Black Magic by Aleksandar Gargenta
Android Services Black Magic by Aleksandar GargentaAndroid Services Black Magic by Aleksandar Gargenta
Android Services Black Magic by Aleksandar Gargenta
Marakana Inc.
 
"BlackBerry Webworks : Apps for The Smartphone and Tablet"
"BlackBerry Webworks : Apps for The Smartphone and Tablet""BlackBerry Webworks : Apps for The Smartphone and Tablet"
"BlackBerry Webworks : Apps for The Smartphone and Tablet"
Software Park Thailand
 
Droid con berlin_the_bb10_android_runtime
Droid con berlin_the_bb10_android_runtimeDroid con berlin_the_bb10_android_runtime
Droid con berlin_the_bb10_android_runtimeDroidcon Berlin
 
WebGL For Game Development 2012
WebGL For Game Development 2012WebGL For Game Development 2012
WebGL For Game Development 2012
Tony Parisi
 

What's hot (19)

webinos and Open Ecosystems Open Governance
webinos and Open Ecosystems Open Governancewebinos and Open Ecosystems Open Governance
webinos and Open Ecosystems Open Governance
 
BACnet HMI5 - BACnet Touch Panel - BACnet Touch Screen - HMI
BACnet HMI5 - BACnet Touch Panel - BACnet Touch Screen - HMIBACnet HMI5 - BACnet Touch Panel - BACnet Touch Screen - HMI
BACnet HMI5 - BACnet Touch Panel - BACnet Touch Screen - HMI
 
2011 Mobile & Web technologies
2011 Mobile & Web technologies 2011 Mobile & Web technologies
2011 Mobile & Web technologies
 
Dojo mobile web5-2013
Dojo mobile web5-2013Dojo mobile web5-2013
Dojo mobile web5-2013
 
Build Amazing Mobile Apps using HTML5, CSS3 and JavaScript - - MeeGo Confere...
Build Amazing Mobile Apps using HTML5, CSS3 and JavaScript -  - MeeGo Confere...Build Amazing Mobile Apps using HTML5, CSS3 and JavaScript -  - MeeGo Confere...
Build Amazing Mobile Apps using HTML5, CSS3 and JavaScript - - MeeGo Confere...
 
Building a Next Generation Mobile Browser using Web technologies
Building a Next Generation Mobile Browser using Web technologiesBuilding a Next Generation Mobile Browser using Web technologies
Building a Next Generation Mobile Browser using Web technologies
 
Enabling the mobile Web for a Dojo component
Enabling the mobile Web for a Dojo componentEnabling the mobile Web for a Dojo component
Enabling the mobile Web for a Dojo component
 
T 0230 Google Wave Powered By Gwt
T 0230 Google Wave Powered By GwtT 0230 Google Wave Powered By Gwt
T 0230 Google Wave Powered By Gwt
 
Html5 features: location, history and offline apps
Html5 features: location, history and offline appsHtml5 features: location, history and offline apps
Html5 features: location, history and offline apps
 
Frontend Monoliths: Run if you can!
Frontend Monoliths: Run if you can!Frontend Monoliths: Run if you can!
Frontend Monoliths: Run if you can!
 
Sencha touchonbb10 bootcamp
Sencha touchonbb10 bootcampSencha touchonbb10 bootcamp
Sencha touchonbb10 bootcamp
 
Make your TechComm online/offline available
Make your TechComm online/offline availableMake your TechComm online/offline available
Make your TechComm online/offline available
 
How to pick the right development model for your mobile project?
How to pick the right development model for your mobile project?How to pick the right development model for your mobile project?
How to pick the right development model for your mobile project?
 
Client Continuum Dec Fy09
Client Continuum Dec Fy09Client Continuum Dec Fy09
Client Continuum Dec Fy09
 
Next Generation Hybrid Applications with Qt - presentation for SEE 2009
Next Generation Hybrid Applications with Qt - presentation for SEE 2009Next Generation Hybrid Applications with Qt - presentation for SEE 2009
Next Generation Hybrid Applications with Qt - presentation for SEE 2009
 
Android Services Black Magic by Aleksandar Gargenta
Android Services Black Magic by Aleksandar GargentaAndroid Services Black Magic by Aleksandar Gargenta
Android Services Black Magic by Aleksandar Gargenta
 
"BlackBerry Webworks : Apps for The Smartphone and Tablet"
"BlackBerry Webworks : Apps for The Smartphone and Tablet""BlackBerry Webworks : Apps for The Smartphone and Tablet"
"BlackBerry Webworks : Apps for The Smartphone and Tablet"
 
Droid con berlin_the_bb10_android_runtime
Droid con berlin_the_bb10_android_runtimeDroid con berlin_the_bb10_android_runtime
Droid con berlin_the_bb10_android_runtime
 
WebGL For Game Development 2012
WebGL For Game Development 2012WebGL For Game Development 2012
WebGL For Game Development 2012
 

Similar to The Enterprise Dilemma: Native vs. Web

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
James Pearce
 
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
 
Siruna session at Drupalcon Paris 2009
Siruna session at Drupalcon Paris 2009Siruna session at Drupalcon Paris 2009
Siruna session at Drupalcon Paris 2009
Tom Deryckere
 
Magic mobile webinar_Jan2013
Magic mobile webinar_Jan2013Magic mobile webinar_Jan2013
Magic mobile webinar_Jan2013Magic Software
 
WinJS at NYC Code Camp 2012
WinJS at NYC Code Camp 2012WinJS at NYC Code Camp 2012
WinJS at NYC Code Camp 2012Dmitri Artamonov
 
Evolving Mobile Architectures
Evolving Mobile ArchitecturesEvolving Mobile Architectures
Evolving Mobile Architectures
sgleadow
 
Building Mobile Websites with Joomla
Building Mobile Websites with JoomlaBuilding Mobile Websites with Joomla
Building Mobile Websites with Joomla
Tom Deryckere
 
Web Apps and more
Web Apps and moreWeb Apps and more
Web Apps and more
Yan Shi
 
Web app and more
Web app and moreWeb app and more
Web app and morefaming su
 
Top Ten Tips for HTML5/Mobile Web Development
Top Ten Tips for HTML5/Mobile Web DevelopmentTop Ten Tips for HTML5/Mobile Web Development
Top Ten Tips for HTML5/Mobile Web Development
Simon Guest
 
HTML5 and the dawn of rich mobile web applications pt 1
HTML5 and the dawn of rich mobile web applications pt 1HTML5 and the dawn of rich mobile web applications pt 1
HTML5 and the dawn of rich mobile web applications pt 1James Pearce
 
Cross platform mobile application architecture for enterprise
Cross platform mobile application architecture for enterpriseCross platform mobile application architecture for enterprise
Cross platform mobile application architecture for enterpriseVenkat Alagarsamy
 
The challenges of building mobile HTML5 applications - FEEC Brazil 2012 - Recife
The challenges of building mobile HTML5 applications - FEEC Brazil 2012 - RecifeThe challenges of building mobile HTML5 applications - FEEC Brazil 2012 - Recife
The challenges of building mobile HTML5 applications - FEEC Brazil 2012 - RecifeCaridy Patino
 
soft-shake.ch - Introduction to HTML5
soft-shake.ch - Introduction to HTML5soft-shake.ch - Introduction to HTML5
soft-shake.ch - Introduction to HTML5
soft-shake.ch
 
The Modern Web, Part 1: Mobility
The Modern Web, Part 1: MobilityThe Modern Web, Part 1: Mobility
The Modern Web, Part 1: Mobility
David Pallmann
 
Building Cross Platform Mobile Web Apps
Building Cross Platform Mobile Web AppsBuilding Cross Platform Mobile Web Apps
Building Cross Platform Mobile Web Apps
James Pearce
 
Introduction to Cross Platform Mobile Apps (Xamarin)
Introduction to Cross Platform Mobile Apps (Xamarin)Introduction to Cross Platform Mobile Apps (Xamarin)
Introduction to Cross Platform Mobile Apps (Xamarin)
BizTalk360
 
Front-end. Global domination
Front-end. Global dominationFront-end. Global domination
Front-end. Global domination
Stfalcon Meetups
 
Frontend. Global domination.
Frontend. Global domination.Frontend. Global domination.
Frontend. Global domination.
Андрей Вандакуров
 
Security strategies for html5 enterprise mobile apps
Security strategies for html5 enterprise mobile appsSecurity strategies for html5 enterprise mobile apps
Security strategies for html5 enterprise mobile apps
Gizmox
 

Similar to The Enterprise Dilemma: Native vs. Web (20)

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
 
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
 
Siruna session at Drupalcon Paris 2009
Siruna session at Drupalcon Paris 2009Siruna session at Drupalcon Paris 2009
Siruna session at Drupalcon Paris 2009
 
Magic mobile webinar_Jan2013
Magic mobile webinar_Jan2013Magic mobile webinar_Jan2013
Magic mobile webinar_Jan2013
 
WinJS at NYC Code Camp 2012
WinJS at NYC Code Camp 2012WinJS at NYC Code Camp 2012
WinJS at NYC Code Camp 2012
 
Evolving Mobile Architectures
Evolving Mobile ArchitecturesEvolving Mobile Architectures
Evolving Mobile Architectures
 
Building Mobile Websites with Joomla
Building Mobile Websites with JoomlaBuilding Mobile Websites with Joomla
Building Mobile Websites with Joomla
 
Web Apps and more
Web Apps and moreWeb Apps and more
Web Apps and more
 
Web app and more
Web app and moreWeb app and more
Web app and more
 
Top Ten Tips for HTML5/Mobile Web Development
Top Ten Tips for HTML5/Mobile Web DevelopmentTop Ten Tips for HTML5/Mobile Web Development
Top Ten Tips for HTML5/Mobile Web Development
 
HTML5 and the dawn of rich mobile web applications pt 1
HTML5 and the dawn of rich mobile web applications pt 1HTML5 and the dawn of rich mobile web applications pt 1
HTML5 and the dawn of rich mobile web applications pt 1
 
Cross platform mobile application architecture for enterprise
Cross platform mobile application architecture for enterpriseCross platform mobile application architecture for enterprise
Cross platform mobile application architecture for enterprise
 
The challenges of building mobile HTML5 applications - FEEC Brazil 2012 - Recife
The challenges of building mobile HTML5 applications - FEEC Brazil 2012 - RecifeThe challenges of building mobile HTML5 applications - FEEC Brazil 2012 - Recife
The challenges of building mobile HTML5 applications - FEEC Brazil 2012 - Recife
 
soft-shake.ch - Introduction to HTML5
soft-shake.ch - Introduction to HTML5soft-shake.ch - Introduction to HTML5
soft-shake.ch - Introduction to HTML5
 
The Modern Web, Part 1: Mobility
The Modern Web, Part 1: MobilityThe Modern Web, Part 1: Mobility
The Modern Web, Part 1: Mobility
 
Building Cross Platform Mobile Web Apps
Building Cross Platform Mobile Web AppsBuilding Cross Platform Mobile Web Apps
Building Cross Platform Mobile Web Apps
 
Introduction to Cross Platform Mobile Apps (Xamarin)
Introduction to Cross Platform Mobile Apps (Xamarin)Introduction to Cross Platform Mobile Apps (Xamarin)
Introduction to Cross Platform Mobile Apps (Xamarin)
 
Front-end. Global domination
Front-end. Global dominationFront-end. Global domination
Front-end. Global domination
 
Frontend. Global domination.
Frontend. Global domination.Frontend. Global domination.
Frontend. Global domination.
 
Security strategies for html5 enterprise mobile apps
Security strategies for html5 enterprise mobile appsSecurity strategies for html5 enterprise mobile apps
Security strategies for html5 enterprise mobile apps
 

More from Motorola Mobility - MOTODEV

Kill the Laptop!
Kill the Laptop!Kill the Laptop!
Kill the Laptop!
Motorola Mobility - MOTODEV
 
MOTODEV App Validator
MOTODEV App ValidatorMOTODEV App Validator
MOTODEV App Validator
Motorola Mobility - MOTODEV
 
Beautifully Usable, Multiple Screens Too
Beautifully Usable, Multiple Screens TooBeautifully Usable, Multiple Screens Too
Beautifully Usable, Multiple Screens Too
Motorola Mobility - MOTODEV
 
Getting the Magic on Android Tablets
Getting the Magic on Android TabletsGetting the Magic on Android Tablets
Getting the Magic on Android Tablets
Motorola Mobility - MOTODEV
 
Getting Your App Discovered: Android Market & Beyond
Getting Your App Discovered: Android Market & BeyondGetting Your App Discovered: Android Market & Beyond
Getting Your App Discovered: Android Market & Beyond
Motorola Mobility - MOTODEV
 
Taking Advantage of Webtop
Taking Advantage of WebtopTaking Advantage of Webtop
Taking Advantage of Webtop
Motorola Mobility - MOTODEV
 
Top Tips for Android UIs
Top Tips for Android UIsTop Tips for Android UIs
Top Tips for Android UIs
Motorola Mobility - MOTODEV
 
Designing Apps for Motorla Xoom Tablet
Designing Apps for Motorla Xoom TabletDesigning Apps for Motorla Xoom Tablet
Designing Apps for Motorla Xoom Tablet
Motorola Mobility - MOTODEV
 
Gráficos cada vez más rápidos. Cómo usar NDK y RenderScript
Gráficos cada vez más rápidos. Cómo usar NDK y RenderScript Gráficos cada vez más rápidos. Cómo usar NDK y RenderScript
Gráficos cada vez más rápidos. Cómo usar NDK y RenderScript Motorola Mobility - MOTODEV
 
Consejos principales para Android UI Cómo alcanzar la magia en los tablets
Consejos principales para Android UI Cómo alcanzar la magia en los tabletsConsejos principales para Android UI Cómo alcanzar la magia en los tablets
Consejos principales para Android UI Cómo alcanzar la magia en los tabletsMotorola Mobility - MOTODEV
 
Cómo agregar calidad a sus aplicaciones mediante pruebas
Cómo agregar calidad a sus aplicaciones mediante pruebas Cómo agregar calidad a sus aplicaciones mediante pruebas
Cómo agregar calidad a sus aplicaciones mediante pruebas Motorola Mobility - MOTODEV
 
Cómo aprovechar Webtop Cómo HTML5 mejora la experiencia del usuario
Cómo aprovechar Webtop Cómo HTML5 mejora la experiencia del usuarioCómo aprovechar Webtop Cómo HTML5 mejora la experiencia del usuario
Cómo aprovechar Webtop Cómo HTML5 mejora la experiencia del usuarioMotorola Mobility - MOTODEV
 
Gráficos cada vez mais rápidos utilização de NDK e Renderscript
Gráficos cada vez mais rápidos utilização de NDK e RenderscriptGráficos cada vez mais rápidos utilização de NDK e Renderscript
Gráficos cada vez mais rápidos utilização de NDK e RenderscriptMotorola Mobility - MOTODEV
 
Como integrar qualidade aos seus aplicativos através de testes
Como integrar qualidade aos seus aplicativos através de testesComo integrar qualidade aos seus aplicativos através de testes
Como integrar qualidade aos seus aplicativos através de testesMotorola Mobility - MOTODEV
 
Tirando vantagem do webtop como o html5 aprimora a experiência do usuário de ...
Tirando vantagem do webtop como o html5 aprimora a experiência do usuário de ...Tirando vantagem do webtop como o html5 aprimora a experiência do usuário de ...
Tirando vantagem do webtop como o html5 aprimora a experiência do usuário de ...Motorola Mobility - MOTODEV
 

More from Motorola Mobility - MOTODEV (20)

Kill the Laptop!
Kill the Laptop!Kill the Laptop!
Kill the Laptop!
 
MOTODEV App Validator
MOTODEV App ValidatorMOTODEV App Validator
MOTODEV App Validator
 
Beautifully Usable, Multiple Screens Too
Beautifully Usable, Multiple Screens TooBeautifully Usable, Multiple Screens Too
Beautifully Usable, Multiple Screens Too
 
Getting the Magic on Android Tablets
Getting the Magic on Android TabletsGetting the Magic on Android Tablets
Getting the Magic on Android Tablets
 
Getting Your App Discovered: Android Market & Beyond
Getting Your App Discovered: Android Market & BeyondGetting Your App Discovered: Android Market & Beyond
Getting Your App Discovered: Android Market & Beyond
 
Introducing Fragments
Introducing FragmentsIntroducing Fragments
Introducing Fragments
 
Taking Advantage of Webtop
Taking Advantage of WebtopTaking Advantage of Webtop
Taking Advantage of Webtop
 
Building Quality Into Your Apps Through Testing
Building Quality Into Your Apps Through TestingBuilding Quality Into Your Apps Through Testing
Building Quality Into Your Apps Through Testing
 
Top Tips for Android UIs
Top Tips for Android UIsTop Tips for Android UIs
Top Tips for Android UIs
 
Designing Apps for Motorla Xoom Tablet
Designing Apps for Motorla Xoom TabletDesigning Apps for Motorla Xoom Tablet
Designing Apps for Motorla Xoom Tablet
 
Diseñando aplicaciones para el Motorola XOOM
Diseñando aplicaciones para el Motorola XOOM Diseñando aplicaciones para el Motorola XOOM
Diseñando aplicaciones para el Motorola XOOM
 
Presentación de los fragmentos
Presentación de los fragmentos Presentación de los fragmentos
Presentación de los fragmentos
 
Gráficos cada vez más rápidos. Cómo usar NDK y RenderScript
Gráficos cada vez más rápidos. Cómo usar NDK y RenderScript Gráficos cada vez más rápidos. Cómo usar NDK y RenderScript
Gráficos cada vez más rápidos. Cómo usar NDK y RenderScript
 
Consejos principales para Android UI Cómo alcanzar la magia en los tablets
Consejos principales para Android UI Cómo alcanzar la magia en los tabletsConsejos principales para Android UI Cómo alcanzar la magia en los tablets
Consejos principales para Android UI Cómo alcanzar la magia en los tablets
 
Cómo agregar calidad a sus aplicaciones mediante pruebas
Cómo agregar calidad a sus aplicaciones mediante pruebas Cómo agregar calidad a sus aplicaciones mediante pruebas
Cómo agregar calidad a sus aplicaciones mediante pruebas
 
Cómo aprovechar Webtop Cómo HTML5 mejora la experiencia del usuario
Cómo aprovechar Webtop Cómo HTML5 mejora la experiencia del usuarioCómo aprovechar Webtop Cómo HTML5 mejora la experiencia del usuario
Cómo aprovechar Webtop Cómo HTML5 mejora la experiencia del usuario
 
Principais dicas para UIs do Android
Principais dicas para UIs do AndroidPrincipais dicas para UIs do Android
Principais dicas para UIs do Android
 
Gráficos cada vez mais rápidos utilização de NDK e Renderscript
Gráficos cada vez mais rápidos utilização de NDK e RenderscriptGráficos cada vez mais rápidos utilização de NDK e Renderscript
Gráficos cada vez mais rápidos utilização de NDK e Renderscript
 
Como integrar qualidade aos seus aplicativos através de testes
Como integrar qualidade aos seus aplicativos através de testesComo integrar qualidade aos seus aplicativos através de testes
Como integrar qualidade aos seus aplicativos através de testes
 
Tirando vantagem do webtop como o html5 aprimora a experiência do usuário de ...
Tirando vantagem do webtop como o html5 aprimora a experiência do usuário de ...Tirando vantagem do webtop como o html5 aprimora a experiência do usuário de ...
Tirando vantagem do webtop como o html5 aprimora a experiência do usuário de ...
 

The Enterprise Dilemma: Native vs. Web

  • 1. The Enterprise Dilemma: Native vs Web Suzanne Alexandra Android Technology Evangelist
  • 2. reach  me   @suzalex   @motodev    #na1vevsweb   Suzanne  Alexandra  
  • 3. 2012   mobile  ubiquity   "We  now  live  and  always  will  live  in  a  mul:-­‐device  world,  where   companies  and  consumers  choose  different  smartphone  and   tablet  pla?orms  and  expect  to  get  apps  on  all  of  them." -­‐-­‐  Forrester  Research  
  • 4. na:ve  android   mobile  middleware   four  tracks   hybrid   html5,  javascript  
  • 5. Hybrid Experience Cost Native Web Performance Agility Middleware
  • 6. the  answer   it  depends   it's  both  business  and  technical  
  • 8. what  is  na1ve?   android  sdk   android  ndk  (c/c++)   renderscript  
  • 9. citrix  receiver   citrix  receiver   vmware  view   splashtop  remote  desktop  
  • 10. key  technology  benefits   na1ve  experience   integrate  with  android  plaForm   beDer  access  to  device  features   more  discoverable  on  device   integrate  with  other  apps   run  smoother,  beDer,  faster  
  • 11. key  business  benefits   low  barrier  to  entry   reuse  app  func1onality   distribute  through  markets   rich  ecosystem,  wealth  of  material   open  and  free  plaForm  
  • 12. the  android  plaForm   apps  run  here  
  • 14. android  security  001   each  app  runs  in  its  own  process  
  • 15. android  security  001   each  app  runs  in  its  own  process   each  app  can  access  only  its  own  data  
  • 16. android  market              easy  to  upload            easy  to  update            malware  checks            device  or  feature  filtering  
  • 17. market  filtering   <?xml version="1.0" encoding="utf-8"?> <manifest ... > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="11" /> <uses-feature android:name="android.hardware.bluetooth" /> <uses-feature android:name="android.hardware.camera.autofocus" android:required="true"/> </manifest>
  • 18. the  plaForms   Native Android Cross-platform No User interface High Performance High Cost High Updates Android Market Languages Java, C, C++
  • 19. Let's take a poll
  • 21. box   npr   bit.ly   find  parking  lots  
  • 22. mobile-­‐op:mized   web  sites   the  spectrum   html5  web  apps  
  • 23. cross  plaForm   sketchpad  
  • 24.  graceful  degrada:on   <canvas>   Your  browser  is  not  supported   </canvas>   feature  detec:on   !!document.createElement ('canvas').getContext   cross  browser   mul:ple  css  files   styles.css                    mobile.css                    android.css <h1 { color:white; text-align:center; }
  • 25. canvas   <canvas  id="canvas"  width="838"  height="220"></canvas>
  • 26. geoloca1on   navigator.geoloca:on.getCurrentPosi:on                                  (  func:on  (  posi:on  )  {  …  }      );
  • 27. video   <video  src="movie.webm"></video>
  • 28. offline  access  …  app  cache   CACHE MANIFEST index.html stylesheet.css images/logo.png scripts/main.js <html  manifest="demo.manifest">  
  • 29. web  sockets   var connection = new WebSocket('ws://html5rocks.websocket.org/echo');
  • 30. web  workers   <script type="text/javascript"> var worker = new Worker('worker.js'); ... </script>
  • 31. the  big  ques1on.   security  
  • 32. a  few  1ps        Make  sure  the  device  is  password  protected  and  encrypted.        Store  locally  only  a  small  subset  of  enterprise  data.            Consider  changing  the  schema  of  a  local  database.        Do  origin  checks  on  cross-­‐document  messaging.        Remember  Google  Chrome.  
  • 33. on  chrome  beta   X-­‐Frame-­‐Op:ons   WebSockets   Sandboxing   Mul:process  architecture  
  • 34. browser  comparison   Android Browser Google Chrome Feature Android 1.5+ Android 4.0+ Canvas 2.1+   Geolocation 2.0+   Video + Audio 2.3+   App cache 2.1+   Web storage 2.0+   Web sockets Web workers
  • 35. what  about  ui?   fixed  posi:on  areas     +  scrolling  areas   touch   mul:touch   canvas  3d  with  accelera:on  
  • 36. Sensa  Touch  Charts   SproutCore   also:  jQuery  Mobile  
  • 37. viewpoints   look  like  a  na:ve     mobile  app   look  like  the  web   be  consistent     across  pla?orms  
  • 38. what's  motorola  doing?   "If  we  can  standardize  device  APIs  that  provide  developers   quote here … access  to  the  whole  device,  efficiently  …  then  I  think  we   will  really  see  the  emergence  of  a  ubiquitous,  cross  device   web  pla?orm  and  an  ecosystem  based  on  open   standards."   Gilles  Drieu   VP,  Sohware  Engineering   Motorola  Mobility
  • 39. the  plaForms   Native Android HTML5 Cross-platform No Yes User interface High Medium to high Performance High Medium Cost High Low Updates Android Market Your server Languages Java, C, C++ HTML, CSS, JavaScript
  • 42. why  hybrid?   Hybrid Experience Cost Native Web Performance Agility Middleware
  • 43. geTng  started   MOTODEV  Studio   +   hybrid  sample   web  app  or  site   moto.ly/wrappersample  
  • 44. @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); String url = "http://www.motorola.com"; Intent i = new Intent(Intent.ACTION_VIEW); i.setData( Uri.parse(url) ); startActivity(i); this.finish(); }
  • 45.
  • 46. javascript  bridge   Na:ve  calls  HTML5   loadURL("javascript: addInteger("+integer+");"); HTML5  calls  na:ve   WebView.addJavascriptInterface( new Gesture(), "gesture" );
  • 47. the  plaForms   Native Android HTML5 Hybrid Wrapper Cross-platform No Yes No User interface High Medium to high Medium to high Performance High Medium Medium Cost High Low Low Updates Android Market Your server Android Market Languages Java, C, C++ HTML, Java, HTML, CSS, CSS,JavaScript JavaScript
  • 48. the  boDom  line.    if  …   Invested  in  na:ve  already    …      na:ve   Demand  top  performance    …    na:ve   App  is  very  complex  or  highly  interac:ve    …    na:ve   Targe:ng  mul:ple  pla?orms  and  have  web  exper:se    …    HTML5   Need  na:ve  only  for  part  of  a  cross-­‐pla?orm  app    …      hybrid   Want  to  distribute  through  an  app  market    …    na:ve  or  hybrid  
  • 50. More info MOTODEV for Enterprise developer.motorola.com/enterprise
  • 51. LEGAL LICENSE NOTICES Except where noted, sample source code written by Motorola Mobility Inc. and provided to you is licensed as described below. Copyright © 2012, Motorola, Inc. All rights reserved except as otherwise explicitly indicated. •  Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: •  Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. •  Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. •  Neither the name of the Motorola, Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. •  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Other source code displayed in this presentation may be offered under other licenses. Apache 2.0 Copyright © 2010, Android Open Source Project. All rights reserved unless otherwise explicitly indicated. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. Creative Commons 3.0 Attribution License Portions of this presentation are reproduced from work created and shared by Google (http://code.google.com/policies.html) and used according to terms described in the Creative Commons 3.0 Attribution License (http://creativecommons.org/licenses/by/3.0/). MOTOROLA and the Stylized M Logo are trademarks or registered trademarks of Motorola Trademark Holdings, LLC. All other trademarks are the property of their respective owners. © 2012 Motorola Mobility, Inc. All rights reserved.