SlideShare a Scribd company logo
1 of 18
HTML5/Mobile Web Development
Top Ten Tips and Tricks




                               1
Neudesic Mobility



 Windows Phone         iPhone                         iPad                         Android        HTML5/Web
   Realtor.com*          Jeep*                    SimonMed                            ACS        Jones Lang LaSalle

 Kelly Blue Book*    Whole Foods                       VHA                   Kelley Blue Book*       Nicor Gas

 Premera Mobile*      Guidestone*                 Scan Health              Android Azure SDK*      IFF New York

    Microsoft       TriWest Medical*          Symetra Financial                      Scion         SCAN Health


                            * Available on AppStore, Google Market, Windows Marketplace

                                                                                                                      2
Top Ten Tips and Tricks



                          3
Mobile Web or Hybrid?
                         Make an early decision on Mobile Web via
                          Browser or Hybrid Application

                         GeoLocation and Offline will work well in
                          both
                         Photo capture? Contacts integration?
                          Push Notifications? Deployment via the
                          AppStore? Hybrid solution.

                         Hybrid solution = A native application
                          exposing web content, with bi-directional
                          JavaScript bridge

                         Roll your own (hook in to the event
                          handlers through WebView control)
                         Use Framework, such as Apache Cordova



                                                                 4
Mobile Web or Hybrid?
                         Make an early decision on Mobile Web via
                          Browser or Hybrid Application

                         GeoLocation and Offline will work well in
                          both
                         Photo capture? Contacts integration?
                          Push Notifications? Deployment via the
                          AppStore? Hybrid solution.

                         Hybrid solution = A native application
                          exposing web content, with bi-directional
                          JavaScript bridge

                         Roll your own (hook in to the event
                          handlers through WebView control)
                         Use Framework, such as Apache Cordova



                                                                 5
Development and Testing Environment
  Setup up a robust development and
   testing environment

  Your Favorite IDE for HTML: WebStorm,
   TextMate, Visual Studio
  Browser capable of inspecting
   DOM/JavaScript debugging: Safari,
   Chrome, IE9
  Device or Device Emulator: Mac or iPod
   Touch if targeting iOS. Android device vs.
   Emulator recommended.

  Unit Test Framework: QUnit used,
   recommended
  Device testing: Perfecto Mobile
   (virtual/video devices)



                                                6
Client Side and Navigation
                                                              Use Client Side JavaScript instead of
                                                               Server-Side Scripts

 <div data-role="page" id="login" class="LoginScreen">        Move more on client side JavaScript:
      <div data-role-”header”>
      </div>
                                                              Performance will be better (no round trips
      <div data-role="content" class="ui-body ui-content">     to server)
      </div>                                                  Offline easier to accomplish
      <div data-role="footer" data-position="fixed">
      </div>
                                                              Enables server side to be abstracted
 </div>
                                                              Pre-fetch as many pages into the DOM as
                                                               possible (at startup)
                                                              Server side calls should be asynchronous
                                                               JSON endpoints

                                                              Caveat: Navigation! Prefetching too
                                                               much into the DOM can make for
                                                               confusing navigation.
                                                              Recommend hub and spoke model.
                                                                                                       7
Offline Support
  Design for running offline

  Enable offline by creating cache.manifest
  Specify all of the files (including client
   side scripts) you require offline in the
   manifest
  Handle client side functionality (e.g.
   submit button) with JavaScript checks

  Tip #1 – JavaScript on application load to
   check and refresh cache if required
  Tip #2 – Design for offline first, but
   implement last! It can add a lot of dev
   cycles.




                                                8
UI Framework
                Carefully select the right UI Framework
                 for your needs

                jQuery Mobile (most popular open source)
                Sencha (most popular commercial)

                Index common controls that you believe
                 the application might use
                Build control matrix (see left)
                Use the demo sites/test pages to see how
                 the controls render on devices
                Realize that controls will be “85%” close
                 to native

                Also think about styling and themes (e.g.
                 swatches in jQuery Mobile)



                                                           9
Mapping
 Understand the caveats with
  implementing maps in Mobile Web
  applications

 Navigating to a map, and back to a map
  can cause issues (many map controls are
  not designed to work with hidden DIVs in
  HTML)
 $(„#mappage‟).live(“pageshow”,
  function(){
  google.maps.event.trigger(map, „resize‟);
  });

 Performance of mapping won‟t be equal
  to native mapping controls (e.g. MapKit
  on iOS)
 (If this is important, consider Hybrid
  approach and breaking out to native)

                                              10
Non Standard UI Elements
                        Think ahead on the non-standard UI
                         elements that you are likely to need

                        Watch out for controls that don‟t exist…
                        Tables and Grids are especially difficult to
                         find and implement in Mobile Web
                         applications
                        Before creating a custom control, can you
                         use a more native control instead?

                        Don‟t re-invent the wheel…
                        Many 3rd Party JavaScript controls work
                         well within Mobile Web framework
                        For example, PhotoSwipe – Image Gallery




                                                                  11
Packaging
  Make your mobile web app look and feel
   like it belongs with the other native
   applications. (Even if you don‟t go with
   the Hybrid approach)

  Don‟t show the address bar! Instead, use
   the <viewport …/> meta tag to force the
   application to run in full screen mode

  Bind it to an icon on the home screen (iOS
   support only)
  Use “add2home” JavaScript library to
   prompt the user to treat it like an
   installed application




                                                12
Authentication    Don‟t go creating your own username and
                   password database!

                  Consider Federated Identity solution
                   instead. AppFabric ACS – Access Control
                   Service

                  Public providers (Google, Yahoo!,
                   Facebook, etc.)
                  Federated providers (ADFS connection
                   back to AD)
                  Both return unique claims bag that can
                   be referenced by your application

                  Integration with jQuery Mobile:
                   http://simonguest.com/2011/08/13/au
                   thenticating-with-google-facebook-and-
                   others-from-your-jquerymobile-
                   application/

                                                            13
Performance
  Make your mobile web application
   perform well!

  Three main culprits for affecting
   performance on Mobile Web applications:

  #1 – Server-side round trip calls on UI
   gestures. Make everything asynchronous.
  #2 – Too many CSS effects/transitions.
   Turn these off, unless you are iOS only.
   (Many older Android WebKit
   implementations don‟t support HW
   acceleration).
  #3 – Too many bound JavaScript events
   (class level binding can cause overload of
   events in the DOM - ~300ms perf
   problem)


                                                14
Why Neudesic?



                15
Mobility Highlights
   Deep Experience of HTML5/Mobile Web Applications for Multiple Devices
   Microsoft Mobility Partner of the Year 2011
   Development Partner for the Windows Azure SDK for iOS/Android
   Development Partner for the Amazon AWS SDK for Windows Phone 7
   Culture of Attracting the Best Mobility Talent




                                                                            16
Neudesic Recognition


   National Systems Integrator


Microsoft Partner of the Year        Microsoft Dynamics President’s      CRN Magazine VAR 500             Inc. 5000
Neudesic has won the 2011            Club                                Neudesic ranked on Everything    Neudesic recognized as one of
Microsoft Mobility B2C Application   In acknowledgement of exceptional   Channel VAR 500 List for the     America’s Fastest-Growing Private
Partner of the Year Award,           services and sales performance,     second consecutive year with     Companies for the fifth straight
honoring the company among a         Neudesic has been named to the      increased revenue in a down      year.
global field of top Microsoft        2011 Microsoft Dynamics             economy, Neudesic moves up 81
partners for demonstrating           President’s Club.                   places in CRN Magazine ranking
excellence in innovation and                                             this year.
implementation of customer
solutions.




                                                                                                                                          17
Thank You
       Simon Guest
Director, Mobility Solutions
      Neudesic, LLC

simon.guest@neudesic.com
      @simonguest
                               18

More Related Content

What's hot

Android Workshop
Android WorkshopAndroid Workshop
Android WorkshopJunda Ong
 
Sg conference multiplatform_apps_adam_stanley
Sg conference multiplatform_apps_adam_stanleySg conference multiplatform_apps_adam_stanley
Sg conference multiplatform_apps_adam_stanleyn_adam_stanley
 
RIM Casual Meetup - Bandung #DevIDBdg
RIM Casual Meetup - Bandung #DevIDBdgRIM Casual Meetup - Bandung #DevIDBdg
RIM Casual Meetup - Bandung #DevIDBdgZiyad Bazed
 
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 technologiesn_adam_stanley
 
JavaScript on HP webOS: Enyo and Node.js
JavaScript on HP webOS: Enyo and Node.jsJavaScript on HP webOS: Enyo and Node.js
JavaScript on HP webOS: Enyo and Node.jsBen Combee
 
iPhone/iPad开发讲座 第一讲 Ios开发简介
iPhone/iPad开发讲座  第一讲 Ios开发简介iPhone/iPad开发讲座  第一讲 Ios开发简介
iPhone/iPad开发讲座 第一讲 Ios开发简介Hao Peiqiang
 
Dreamweaver CS6, jQuery, PhoneGap, mobile design
Dreamweaver CS6, jQuery, PhoneGap, mobile designDreamweaver CS6, jQuery, PhoneGap, mobile design
Dreamweaver CS6, jQuery, PhoneGap, mobile designDee Sadler
 
Dojo mobile web5-2013
Dojo mobile web5-2013Dojo mobile web5-2013
Dojo mobile web5-2013cjolif
 
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
 
"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
 
European SharePoint Conference: Mobile Applications for SharePoint using HTML5
European SharePoint Conference: Mobile Applications for SharePoint using HTML5European SharePoint Conference: Mobile Applications for SharePoint using HTML5
European SharePoint Conference: Mobile Applications for SharePoint using HTML5Christian Heindel
 
Mobile Web Development with HTML5
Mobile Web Development with HTML5Mobile Web Development with HTML5
Mobile Web Development with HTML5Roy Clarkson
 
Mobile Accessibility
Mobile AccessibilityMobile Accessibility
Mobile AccessibilityTed Drake
 
Fixing the mobile web - Internet World Romania
Fixing the mobile web - Internet World RomaniaFixing the mobile web - Internet World Romania
Fixing the mobile web - Internet World RomaniaChristian Heilmann
 
Ionic으로 모바일앱 만들기 #3
Ionic으로 모바일앱 만들기 #3Ionic으로 모바일앱 만들기 #3
Ionic으로 모바일앱 만들기 #3성일 한
 

What's hot (20)

Android Workshop
Android WorkshopAndroid Workshop
Android Workshop
 
Sg conference multiplatform_apps_adam_stanley
Sg conference multiplatform_apps_adam_stanleySg conference multiplatform_apps_adam_stanley
Sg conference multiplatform_apps_adam_stanley
 
Revue des annonces WWDC2015
Revue des annonces WWDC2015Revue des annonces WWDC2015
Revue des annonces WWDC2015
 
RIM Casual Meetup - Bandung #DevIDBdg
RIM Casual Meetup - Bandung #DevIDBdgRIM Casual Meetup - Bandung #DevIDBdg
RIM Casual Meetup - Bandung #DevIDBdg
 
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
 
BlackBerry WebWorks
BlackBerry WebWorksBlackBerry WebWorks
BlackBerry WebWorks
 
JavaScript on HP webOS: Enyo and Node.js
JavaScript on HP webOS: Enyo and Node.jsJavaScript on HP webOS: Enyo and Node.js
JavaScript on HP webOS: Enyo and Node.js
 
iPhone/iPad开发讲座 第一讲 Ios开发简介
iPhone/iPad开发讲座  第一讲 Ios开发简介iPhone/iPad开发讲座  第一讲 Ios开发简介
iPhone/iPad开发讲座 第一讲 Ios开发简介
 
Dreamweaver CS6, jQuery, PhoneGap, mobile design
Dreamweaver CS6, jQuery, PhoneGap, mobile designDreamweaver CS6, jQuery, PhoneGap, mobile design
Dreamweaver CS6, jQuery, PhoneGap, mobile design
 
Sharepoint mobile
Sharepoint mobileSharepoint mobile
Sharepoint mobile
 
Javascript frameworks
Javascript frameworksJavascript frameworks
Javascript frameworks
 
Dojo mobile web5-2013
Dojo mobile web5-2013Dojo mobile web5-2013
Dojo mobile web5-2013
 
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
 
"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"
 
European SharePoint Conference: Mobile Applications for SharePoint using HTML5
European SharePoint Conference: Mobile Applications for SharePoint using HTML5European SharePoint Conference: Mobile Applications for SharePoint using HTML5
European SharePoint Conference: Mobile Applications for SharePoint using HTML5
 
Mobile Web Development with HTML5
Mobile Web Development with HTML5Mobile Web Development with HTML5
Mobile Web Development with HTML5
 
Mobile Accessibility
Mobile AccessibilityMobile Accessibility
Mobile Accessibility
 
Fixing the mobile web - Internet World Romania
Fixing the mobile web - Internet World RomaniaFixing the mobile web - Internet World Romania
Fixing the mobile web - Internet World Romania
 
Ionic으로 모바일앱 만들기 #3
Ionic으로 모바일앱 만들기 #3Ionic으로 모바일앱 만들기 #3
Ionic으로 모바일앱 만들기 #3
 
What's new in ios 7.0
What's new in ios 7.0What's new in ios 7.0
What's new in ios 7.0
 

Viewers also liked

Developing Enterprise-Grade Mobile Applications
Developing Enterprise-Grade Mobile ApplicationsDeveloping Enterprise-Grade Mobile Applications
Developing Enterprise-Grade Mobile ApplicationsSimon Guest
 
Developing iPhone and iPad apps that leverage Windows Azure
Developing iPhone and iPad apps that leverage Windows AzureDeveloping iPhone and iPad apps that leverage Windows Azure
Developing iPhone and iPad apps that leverage Windows AzureSimon Guest
 
Demystifying The Cloud
Demystifying The CloudDemystifying The Cloud
Demystifying The CloudSimon Guest
 
Objective View of MEAPs
Objective View of MEAPsObjective View of MEAPs
Objective View of MEAPsSimon Guest
 
TechEd Preconference
TechEd PreconferenceTechEd Preconference
TechEd PreconferenceSimon Guest
 
My customers are using iPhone/Android, but I'm a Microsoft Guy.
My customers are using iPhone/Android, but I'm a Microsoft Guy.My customers are using iPhone/Android, but I'm a Microsoft Guy.
My customers are using iPhone/Android, but I'm a Microsoft Guy.Simon Guest
 
Patterns For Moving To The Cloud
Patterns For Moving To The CloudPatterns For Moving To The Cloud
Patterns For Moving To The CloudSimon Guest
 
Patterns for Cloud Computing
Patterns for Cloud ComputingPatterns for Cloud Computing
Patterns for Cloud ComputingSimon Guest
 
iPhone and iPad Security
iPhone and iPad SecurityiPhone and iPad Security
iPhone and iPad SecuritySimon Guest
 
Impact Of The Cloud For IT Managers
Impact Of The Cloud For IT ManagersImpact Of The Cloud For IT Managers
Impact Of The Cloud For IT ManagersSimon Guest
 
Architectural Principles for Software + Services
Architectural Principles for Software + ServicesArchitectural Principles for Software + Services
Architectural Principles for Software + ServicesSimon Guest
 
ReMix Keynote (Vienna, Austria)
ReMix Keynote (Vienna, Austria)ReMix Keynote (Vienna, Austria)
ReMix Keynote (Vienna, Austria)Simon Guest
 
Interviewing Techniques
Interviewing TechniquesInterviewing Techniques
Interviewing TechniquesSimon Guest
 
Next Generation LOB (Line of Business) Applications
Next Generation LOB (Line of Business) ApplicationsNext Generation LOB (Line of Business) Applications
Next Generation LOB (Line of Business) ApplicationsSimon Guest
 
Indoor location in mobile applications using iBeacons
Indoor location in mobile applications using iBeaconsIndoor location in mobile applications using iBeacons
Indoor location in mobile applications using iBeaconsSimon Guest
 
Future of Mobility
Future of MobilityFuture of Mobility
Future of MobilitySimon Guest
 
Creating Context-Aware Applications
Creating Context-Aware ApplicationsCreating Context-Aware Applications
Creating Context-Aware ApplicationsSimon Guest
 
Automated Testing using JavaScript
Automated Testing using JavaScriptAutomated Testing using JavaScript
Automated Testing using JavaScriptSimon Guest
 
Building a Great Engineering Culture
Building a Great Engineering CultureBuilding a Great Engineering Culture
Building a Great Engineering CultureSimon Guest
 
User Driven Software Architecture
User Driven Software ArchitectureUser Driven Software Architecture
User Driven Software ArchitectureSimon Guest
 

Viewers also liked (20)

Developing Enterprise-Grade Mobile Applications
Developing Enterprise-Grade Mobile ApplicationsDeveloping Enterprise-Grade Mobile Applications
Developing Enterprise-Grade Mobile Applications
 
Developing iPhone and iPad apps that leverage Windows Azure
Developing iPhone and iPad apps that leverage Windows AzureDeveloping iPhone and iPad apps that leverage Windows Azure
Developing iPhone and iPad apps that leverage Windows Azure
 
Demystifying The Cloud
Demystifying The CloudDemystifying The Cloud
Demystifying The Cloud
 
Objective View of MEAPs
Objective View of MEAPsObjective View of MEAPs
Objective View of MEAPs
 
TechEd Preconference
TechEd PreconferenceTechEd Preconference
TechEd Preconference
 
My customers are using iPhone/Android, but I'm a Microsoft Guy.
My customers are using iPhone/Android, but I'm a Microsoft Guy.My customers are using iPhone/Android, but I'm a Microsoft Guy.
My customers are using iPhone/Android, but I'm a Microsoft Guy.
 
Patterns For Moving To The Cloud
Patterns For Moving To The CloudPatterns For Moving To The Cloud
Patterns For Moving To The Cloud
 
Patterns for Cloud Computing
Patterns for Cloud ComputingPatterns for Cloud Computing
Patterns for Cloud Computing
 
iPhone and iPad Security
iPhone and iPad SecurityiPhone and iPad Security
iPhone and iPad Security
 
Impact Of The Cloud For IT Managers
Impact Of The Cloud For IT ManagersImpact Of The Cloud For IT Managers
Impact Of The Cloud For IT Managers
 
Architectural Principles for Software + Services
Architectural Principles for Software + ServicesArchitectural Principles for Software + Services
Architectural Principles for Software + Services
 
ReMix Keynote (Vienna, Austria)
ReMix Keynote (Vienna, Austria)ReMix Keynote (Vienna, Austria)
ReMix Keynote (Vienna, Austria)
 
Interviewing Techniques
Interviewing TechniquesInterviewing Techniques
Interviewing Techniques
 
Next Generation LOB (Line of Business) Applications
Next Generation LOB (Line of Business) ApplicationsNext Generation LOB (Line of Business) Applications
Next Generation LOB (Line of Business) Applications
 
Indoor location in mobile applications using iBeacons
Indoor location in mobile applications using iBeaconsIndoor location in mobile applications using iBeacons
Indoor location in mobile applications using iBeacons
 
Future of Mobility
Future of MobilityFuture of Mobility
Future of Mobility
 
Creating Context-Aware Applications
Creating Context-Aware ApplicationsCreating Context-Aware Applications
Creating Context-Aware Applications
 
Automated Testing using JavaScript
Automated Testing using JavaScriptAutomated Testing using JavaScript
Automated Testing using JavaScript
 
Building a Great Engineering Culture
Building a Great Engineering CultureBuilding a Great Engineering Culture
Building a Great Engineering Culture
 
User Driven Software Architecture
User Driven Software ArchitectureUser Driven Software Architecture
User Driven Software Architecture
 

Similar to Top Ten Tips for HTML5/Mobile Web Development

Web app and more
Web app and moreWeb app and more
Web app and morefaming su
 
Real-world Dojo Mobile
Real-world Dojo MobileReal-world Dojo Mobile
Real-world Dojo MobileAndrew Ferrier
 
Drupalcamp armedia phonegap_oct2012_print
Drupalcamp armedia phonegap_oct2012_printDrupalcamp armedia phonegap_oct2012_print
Drupalcamp armedia phonegap_oct2012_printDrupalcampAtlanta2012
 
HTML5 vs Native Android: Smart Enterprises for the Future
HTML5 vs Native Android: Smart Enterprises for the FutureHTML5 vs Native Android: Smart Enterprises for the Future
HTML5 vs Native Android: Smart Enterprises for the FutureMotorola Mobility - MOTODEV
 
Building Cross-Platform Mobile Apps
Building Cross-Platform Mobile AppsBuilding Cross-Platform Mobile Apps
Building Cross-Platform Mobile AppsTroy Miles
 
Building Mobile Websites with Joomla
Building Mobile Websites with JoomlaBuilding Mobile Websites with Joomla
Building Mobile Websites with JoomlaTom Deryckere
 
Building Mobile Web Apps using ASP.NET MVC, HTML5, & jQuery Mobile
Building Mobile Web Apps using ASP.NET MVC, HTML5, & jQuery MobileBuilding Mobile Web Apps using ASP.NET MVC, HTML5, & jQuery Mobile
Building Mobile Web Apps using ASP.NET MVC, HTML5, & jQuery MobileJon Cortez
 
Getting Acquainted with PhoneGap
Getting Acquainted with PhoneGapGetting Acquainted with PhoneGap
Getting Acquainted with PhoneGapJoseph Labrecque
 
Evolving Mobile Architectures
Evolving Mobile ArchitecturesEvolving Mobile Architectures
Evolving Mobile Architecturessgleadow
 
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
 
Develop an app for Windows 8 using HTML5
Develop an app for Windows 8 using HTML5Develop an app for Windows 8 using HTML5
Develop an app for Windows 8 using HTML5Soumow Dollon
 
Flash Builder and Flex Future - Multiscreen Development
Flash Builder and Flex Future - Multiscreen DevelopmentFlash Builder and Flex Future - Multiscreen Development
Flash Builder and Flex Future - Multiscreen DevelopmentRyan Stewart
 
Introduction to Flex Hero for Mobile Devices
Introduction to Flex Hero for Mobile DevicesIntroduction to Flex Hero for Mobile Devices
Introduction to Flex Hero for Mobile DevicesRyan Stewart
 
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
 
Trip advsiorhybridpresentation
Trip advsiorhybridpresentationTrip advsiorhybridpresentation
Trip advsiorhybridpresentationElanaBoehm
 

Similar to Top Ten Tips for HTML5/Mobile Web Development (20)

The Enterprise Dilemma: Native vs. Web
The Enterprise Dilemma: Native vs. WebThe Enterprise Dilemma: Native vs. Web
The Enterprise Dilemma: Native vs. Web
 
Web app and more
Web app and moreWeb app and more
Web app and more
 
Real-world Dojo Mobile
Real-world Dojo MobileReal-world Dojo Mobile
Real-world Dojo Mobile
 
Drupalcamp armedia phonegap_oct2012_print
Drupalcamp armedia phonegap_oct2012_printDrupalcamp armedia phonegap_oct2012_print
Drupalcamp armedia phonegap_oct2012_print
 
HTML5 vs Native Android: Smart Enterprises for the Future
HTML5 vs Native Android: Smart Enterprises for the FutureHTML5 vs Native Android: Smart Enterprises for the Future
HTML5 vs Native Android: Smart Enterprises for the Future
 
Building Cross-Platform Mobile Apps
Building Cross-Platform Mobile AppsBuilding Cross-Platform Mobile Apps
Building Cross-Platform Mobile Apps
 
Building Mobile Websites with Joomla
Building Mobile Websites with JoomlaBuilding Mobile Websites with Joomla
Building Mobile Websites with Joomla
 
Building Mobile Web Apps using ASP.NET MVC, HTML5, & jQuery Mobile
Building Mobile Web Apps using ASP.NET MVC, HTML5, & jQuery MobileBuilding Mobile Web Apps using ASP.NET MVC, HTML5, & jQuery Mobile
Building Mobile Web Apps using ASP.NET MVC, HTML5, & jQuery Mobile
 
Getting Acquainted with PhoneGap
Getting Acquainted with PhoneGapGetting Acquainted with PhoneGap
Getting Acquainted with PhoneGap
 
Evolving Mobile Architectures
Evolving Mobile ArchitecturesEvolving Mobile Architectures
Evolving Mobile Architectures
 
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
 
Mobile Apps Develpment - A Comparison
Mobile Apps Develpment - A ComparisonMobile Apps Develpment - A Comparison
Mobile Apps Develpment - A Comparison
 
Develop an app for Windows 8 using HTML5
Develop an app for Windows 8 using HTML5Develop an app for Windows 8 using HTML5
Develop an app for Windows 8 using HTML5
 
Flash Builder and Flex Future - Multiscreen Development
Flash Builder and Flex Future - Multiscreen DevelopmentFlash Builder and Flex Future - Multiscreen Development
Flash Builder and Flex Future - Multiscreen Development
 
Introduction to Flex Hero for Mobile Devices
Introduction to Flex Hero for Mobile DevicesIntroduction to Flex Hero for Mobile Devices
Introduction to Flex Hero for Mobile Devices
 
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
 
Hybrid Mobile App
Hybrid Mobile AppHybrid Mobile App
Hybrid Mobile App
 
Hybrid mobile app
Hybrid mobile appHybrid mobile app
Hybrid mobile app
 
Trip advsiorhybridpresentation
Trip advsiorhybridpresentationTrip advsiorhybridpresentation
Trip advsiorhybridpresentation
 
Hybrid mobile apps
Hybrid mobile appsHybrid mobile apps
Hybrid mobile apps
 

More from Simon Guest

10 Life Hacks for Better Productivity
10 Life Hacks for Better Productivity10 Life Hacks for Better Productivity
10 Life Hacks for Better ProductivitySimon Guest
 
Presentation Anti-Patterns
Presentation Anti-PatternsPresentation Anti-Patterns
Presentation Anti-PatternsSimon Guest
 
10 Life Hacks for Better Productivity
10 Life Hacks for Better Productivity10 Life Hacks for Better Productivity
10 Life Hacks for Better ProductivitySimon Guest
 
Automated Web Testing using JavaScript
Automated Web Testing using JavaScriptAutomated Web Testing using JavaScript
Automated Web Testing using JavaScriptSimon Guest
 
Advanced Tips & Tricks for using Angular JS
Advanced Tips & Tricks for using Angular JSAdvanced Tips & Tricks for using Angular JS
Advanced Tips & Tricks for using Angular JSSimon Guest
 
Enterprise Social Networking - Myth or Magic?
Enterprise Social Networking - Myth or Magic?Enterprise Social Networking - Myth or Magic?
Enterprise Social Networking - Myth or Magic?Simon Guest
 
Patterns For Cloud Computing
Patterns For Cloud ComputingPatterns For Cloud Computing
Patterns For Cloud ComputingSimon Guest
 

More from Simon Guest (7)

10 Life Hacks for Better Productivity
10 Life Hacks for Better Productivity10 Life Hacks for Better Productivity
10 Life Hacks for Better Productivity
 
Presentation Anti-Patterns
Presentation Anti-PatternsPresentation Anti-Patterns
Presentation Anti-Patterns
 
10 Life Hacks for Better Productivity
10 Life Hacks for Better Productivity10 Life Hacks for Better Productivity
10 Life Hacks for Better Productivity
 
Automated Web Testing using JavaScript
Automated Web Testing using JavaScriptAutomated Web Testing using JavaScript
Automated Web Testing using JavaScript
 
Advanced Tips & Tricks for using Angular JS
Advanced Tips & Tricks for using Angular JSAdvanced Tips & Tricks for using Angular JS
Advanced Tips & Tricks for using Angular JS
 
Enterprise Social Networking - Myth or Magic?
Enterprise Social Networking - Myth or Magic?Enterprise Social Networking - Myth or Magic?
Enterprise Social Networking - Myth or Magic?
 
Patterns For Cloud Computing
Patterns For Cloud ComputingPatterns For Cloud Computing
Patterns For Cloud Computing
 

Recently uploaded

Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 

Recently uploaded (20)

Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 

Top Ten Tips for HTML5/Mobile Web Development

  • 1. HTML5/Mobile Web Development Top Ten Tips and Tricks 1
  • 2. Neudesic Mobility Windows Phone iPhone iPad Android HTML5/Web Realtor.com* Jeep* SimonMed ACS Jones Lang LaSalle Kelly Blue Book* Whole Foods VHA Kelley Blue Book* Nicor Gas Premera Mobile* Guidestone* Scan Health Android Azure SDK* IFF New York Microsoft TriWest Medical* Symetra Financial Scion SCAN Health * Available on AppStore, Google Market, Windows Marketplace 2
  • 3. Top Ten Tips and Tricks 3
  • 4. Mobile Web or Hybrid?  Make an early decision on Mobile Web via Browser or Hybrid Application  GeoLocation and Offline will work well in both  Photo capture? Contacts integration? Push Notifications? Deployment via the AppStore? Hybrid solution.  Hybrid solution = A native application exposing web content, with bi-directional JavaScript bridge  Roll your own (hook in to the event handlers through WebView control)  Use Framework, such as Apache Cordova 4
  • 5. Mobile Web or Hybrid?  Make an early decision on Mobile Web via Browser or Hybrid Application  GeoLocation and Offline will work well in both  Photo capture? Contacts integration? Push Notifications? Deployment via the AppStore? Hybrid solution.  Hybrid solution = A native application exposing web content, with bi-directional JavaScript bridge  Roll your own (hook in to the event handlers through WebView control)  Use Framework, such as Apache Cordova 5
  • 6. Development and Testing Environment  Setup up a robust development and testing environment  Your Favorite IDE for HTML: WebStorm, TextMate, Visual Studio  Browser capable of inspecting DOM/JavaScript debugging: Safari, Chrome, IE9  Device or Device Emulator: Mac or iPod Touch if targeting iOS. Android device vs. Emulator recommended.  Unit Test Framework: QUnit used, recommended  Device testing: Perfecto Mobile (virtual/video devices) 6
  • 7. Client Side and Navigation  Use Client Side JavaScript instead of Server-Side Scripts <div data-role="page" id="login" class="LoginScreen">  Move more on client side JavaScript: <div data-role-”header”> </div>  Performance will be better (no round trips <div data-role="content" class="ui-body ui-content"> to server) </div>  Offline easier to accomplish <div data-role="footer" data-position="fixed"> </div>  Enables server side to be abstracted </div>  Pre-fetch as many pages into the DOM as possible (at startup)  Server side calls should be asynchronous JSON endpoints  Caveat: Navigation! Prefetching too much into the DOM can make for confusing navigation.  Recommend hub and spoke model. 7
  • 8. Offline Support  Design for running offline  Enable offline by creating cache.manifest  Specify all of the files (including client side scripts) you require offline in the manifest  Handle client side functionality (e.g. submit button) with JavaScript checks  Tip #1 – JavaScript on application load to check and refresh cache if required  Tip #2 – Design for offline first, but implement last! It can add a lot of dev cycles. 8
  • 9. UI Framework  Carefully select the right UI Framework for your needs  jQuery Mobile (most popular open source)  Sencha (most popular commercial)  Index common controls that you believe the application might use  Build control matrix (see left)  Use the demo sites/test pages to see how the controls render on devices  Realize that controls will be “85%” close to native  Also think about styling and themes (e.g. swatches in jQuery Mobile) 9
  • 10. Mapping  Understand the caveats with implementing maps in Mobile Web applications  Navigating to a map, and back to a map can cause issues (many map controls are not designed to work with hidden DIVs in HTML)  $(„#mappage‟).live(“pageshow”, function(){ google.maps.event.trigger(map, „resize‟); });  Performance of mapping won‟t be equal to native mapping controls (e.g. MapKit on iOS)  (If this is important, consider Hybrid approach and breaking out to native) 10
  • 11. Non Standard UI Elements  Think ahead on the non-standard UI elements that you are likely to need  Watch out for controls that don‟t exist…  Tables and Grids are especially difficult to find and implement in Mobile Web applications  Before creating a custom control, can you use a more native control instead?  Don‟t re-invent the wheel…  Many 3rd Party JavaScript controls work well within Mobile Web framework  For example, PhotoSwipe – Image Gallery 11
  • 12. Packaging  Make your mobile web app look and feel like it belongs with the other native applications. (Even if you don‟t go with the Hybrid approach)  Don‟t show the address bar! Instead, use the <viewport …/> meta tag to force the application to run in full screen mode  Bind it to an icon on the home screen (iOS support only)  Use “add2home” JavaScript library to prompt the user to treat it like an installed application 12
  • 13. Authentication  Don‟t go creating your own username and password database!  Consider Federated Identity solution instead. AppFabric ACS – Access Control Service  Public providers (Google, Yahoo!, Facebook, etc.)  Federated providers (ADFS connection back to AD)  Both return unique claims bag that can be referenced by your application  Integration with jQuery Mobile: http://simonguest.com/2011/08/13/au thenticating-with-google-facebook-and- others-from-your-jquerymobile- application/ 13
  • 14. Performance  Make your mobile web application perform well!  Three main culprits for affecting performance on Mobile Web applications:  #1 – Server-side round trip calls on UI gestures. Make everything asynchronous.  #2 – Too many CSS effects/transitions. Turn these off, unless you are iOS only. (Many older Android WebKit implementations don‟t support HW acceleration).  #3 – Too many bound JavaScript events (class level binding can cause overload of events in the DOM - ~300ms perf problem) 14
  • 16. Mobility Highlights  Deep Experience of HTML5/Mobile Web Applications for Multiple Devices  Microsoft Mobility Partner of the Year 2011  Development Partner for the Windows Azure SDK for iOS/Android  Development Partner for the Amazon AWS SDK for Windows Phone 7  Culture of Attracting the Best Mobility Talent 16
  • 17. Neudesic Recognition National Systems Integrator Microsoft Partner of the Year Microsoft Dynamics President’s CRN Magazine VAR 500 Inc. 5000 Neudesic has won the 2011 Club Neudesic ranked on Everything Neudesic recognized as one of Microsoft Mobility B2C Application In acknowledgement of exceptional Channel VAR 500 List for the America’s Fastest-Growing Private Partner of the Year Award, services and sales performance, second consecutive year with Companies for the fifth straight honoring the company among a Neudesic has been named to the increased revenue in a down year. global field of top Microsoft 2011 Microsoft Dynamics economy, Neudesic moves up 81 partners for demonstrating President’s Club. places in CRN Magazine ranking excellence in innovation and this year. implementation of customer solutions. 17
  • 18. Thank You Simon Guest Director, Mobility Solutions Neudesic, LLC simon.guest@neudesic.com @simonguest 18

Editor's Notes

  1. *Microsoft Partner of the Year (2011)Neudesic has won the 2011 Microsoft Mobility B2C Application Partner of the Year Award, honoring the company among a global field of top Microsoft partners for demonstrating excellence in innovation and implementation of customer solutions. Partner of the Year Finalist (2010)Neudesic has been nominated as a Microsoft Partner of the Year Finalist in two categories, being named as one of the top three solution providers in two areas of the Microsoft technology platform.  Microsoft Convergence Customer Excellence Award (2010) Neudesic was recognized by Microsoft at their annual Microsoft Dynamics Convergence conference for achieving Excellence in Innovation in Microsoft Dynamics CRM. *Microsoft Dynamics President’s Club (2011)In acknowledgement of exceptional services and sales performance, Neudesic has been named to the 2011 Microsoft Dynamics President’s Club. *CRN Magazine VAR 500 (2011) Neudesic ranked on Everything Channel VAR 500 List for the second consecutive year with increased revenue in a down economy, Neudesic moves up 81 places in CRN Magazine ranking this year. *Inc. 5000 (2007, 2008, 2009, 2010, 2011 ) Neudesic recognized as one of America’s Fastest-Growing Private Companies for the fifth straight year.