SlideShare une entreprise Scribd logo
1  sur  39
Télécharger pour lire hors ligne
Mobile 2.0 Conference 2009




       Developer Pitfalls and Strategies for Improving
       Mobile Web Developer Experience

       Tasneem Sayeed
       Mobile Technologist
       October 16, 2009
Outline
          Definition of Mobile Web
          Mobile Device Constraints
          Mobile Development Challenges
          Tools and Trends
          Performance Rules and Web Development Strategies
          Bridging the Mobile Web Tools Gap
          Conclusion




Copyright © 2009 Symbian Foundation.   2
Definition of the Mobile Web
“Mobile Web”
 W3C pushing the idea of “One Web”
        Making the same information and services available
         to users irrespective of the device they are using
        Does not mean exactly the same information is
         available in exactly the same representation across
         all devices
        The context of mobile use, device capability variations,
         bandwidth issues and mobile network capabilities all
         affect the representation
        Some services and information better suited for and
         targeted at particular user contexts

            Source: W3C Mobile best practices „One Web‟ page




Copyright © 2009 Symbian Foundation.                  3
Mobile Device Constraints

                                           •   Screen Size/Resolution
                                           •   Keep Layout as simple and
                                               fluid as possible
                                           •   Keep your page contents
                                               all in a single column
                                               stacked on top of each
                                               other so regardless of
                                               screen size/resolution,
                                               information simply wraps
                                           •   Test with and without CSS
                                               and JavaScript




Copyright © 2009 Symbian Foundation.   4
Mobile Device Constraints

   •    Limited Memory
         • Limits amount of
           processing that can be
           handled
   •    Limited battery power
         • Limits implementations of
           JavaScript, Flash and other
           technologies
         • Drains battery
         • Creates a slower user
           experience
         • Increases the bandwidth
           (i.e. can be more costly to
           download web content)




Copyright © 2009 Symbian Foundation.   5
Mobile Web Development Challenges




Copyright © 2009 Symbian Foundation.   6
Mobile Web Development Challenges

•      “Code once, run anywhere” is a foreign concept
•      Many browser and device types to accommodate
•      Unresolved connectivity and caching issues to contend
•      On our 5th Generation of HTML with WML, XHTML, and
       cHTML still alive
•      Constellation of mobile platforms
       • Symbian (Symbian OS-based)
       • Java ME
       • BREW
       • Windows Mobile
       • Blackberry
       • iPhone (Objective-C based)
       • Linux-based Android
       • Palm Web OS
       • and more on the way!


Copyright © 2009 Symbian Foundation.   7
Tools and Trends




Copyright © 2009 Symbian Foundation.   8
Tools and Trends
•      Issues that are gradually finding resolution in the mobile
       Web world either via ingeniuty of the developer community
       or market drivers
       • Device and Platform Proliferation
       • Coding Standards
       • Testing Ubiquity
       • Caching Capabilities
•      Mobile Web development has more tools available today
           • J2ME Polish
           • .NET Compact Framework for Windows Mobile devices
           • PhoneGap (Cross platform mobile framework)
           • Rhomobile (open mobile framework)
           • Titanium Appcelerator and many others
           • Mobile Complete (remote handset testing)
           • iLoop (resolves device compatibility by doing heavy lifting
                for identifying device profile information to enable device
               detection and automatically serving the right data and format

Copyright © 2009 Symbian Foundation.     9
Tools and Trends
•      W3C Mobile Web initiative continues to drive best practices &
       standards
       • HTML5
           • Web Forms 2.0, and is expected to be a game-changer
              in Web application development, making obsolete
              such plug-in based rich internet application (RIA) technologies
              such as Adobe Flash, Microsoft Silverlight and Sun JavaFX
           • New caching capabilities and so on




Copyright © 2009 Symbian Foundation.    10
Performance Rules




Copyright © 2009 Symbian Foundation.   11
14 Performance Rules (Yahoo)

                                                                                                    content
1.     Make Fewer HTTP Requests
2.     Use a Content Delivery Network                                                               server
                                                                                                    server
3.     Add an Expires Header (or Cache-control)
                                                                                                    server
4.     GZip Components
                                                                                                     CSS
5.     Put CSS (Stylesheets) at the Top
                                                                                                   javascript
6.     Move Scripts to the Bottom (inline too)
                                                                                                     CSS
7.     Avoid CSS Expressions
                                               CSS                                                 Javascript
8.     Make JavaScript and CSS External
                                                                                                    content
9.     Reduce DNS Lookups
10.    Minify JavaScript and CSS (inline too)  CSS                                                 Javascript

11.    Avoid Redirects                                                                              content
                                                                                                   Javascript
12.    Remove Duplicate Scripts
                                                                                                    sserver
13.    Configure ETags
                                                                                                    content
14.    Make AJAX Cacheable
                                      Source: http://developer.yahoo.com/performance/rules.html




Copyright © 2009 Symbian Foundation.                                 12
Performance Rules: Make Fewer HTTP Requests


   •      Less components = fast page
   •      HTTP Request overhead
   •      Combine scripts
   •      Combine CSS stylesheets
   •      Combine images into CSS sprites




Copyright © 2009 Symbian Foundation.   13
Performance Rules: GZip Components
     •       When you send zipped content over the
             internet, the browser unpacks it
     •       Modern browsers understand
              compressed content
     •       Request header
                  Accept-Encoding:gzip,deflate
     •       Response header
                  Content-Encoding: gzip
     •       All text components should be sent
             gzipped: html (php), js, css, xml, txt…




Copyright © 2009 Symbian Foundation.   14
Performance Rules: Put CSS at the Top


     •       Firefox and IE will not render anything until
             the last piece of CSS reaches the wire
     •       Place stylesheets as early as possible in
             the document
             <head>
                  <title>Your page here</title>
                  <link href=“styles.css” …>
              </head>
              <body>
                  <!– content -->
              </body>


Copyright © 2009 Symbian Foundation.   15
Performance Rules: Move Scripts to the Bottom
(inline too)
        •      Scripts block downloads
        •      Since the script can do
               location.href or document.write at
               any time, browser blocks rather than
               downloading possibly useless components
        •      Inline scripts too
               <body>
                   <!– content -->
                   <script src=“script.js” …/>
               </body>
               </html>




Copyright © 2009 Symbian Foundation.   16
Performance Rules: Avoid CSS Expressions
       CSS expression
       #content {
           position: absolute;
           left:
          expression(document.body.offsetWidth +
          „px‟);
       }
       •  In IE, this is the only way to have Javascript in
          CSS
       •  CSS expressions tend to get executed more
          often than was intended, think about
          onmousemove
       •  Smart expressions overwrite
         themselves

Copyright © 2009 Symbian Foundation.   17
Performance Rules:
Make Javascript and CSS External


       •      Helps with caching, “never expire” policy
       •      Share with other pages
       •      However, this is two more HTTP requests
       •      May want to consider inlining for homepages




Copyright © 2009 Symbian Foundation.   18
Performance Rules: Minify JavaScript and CSS (inline
too)

       •       Minify, but still Gzip
       •       JSMin (Written in Javascript, but has a PHP port)
       •       YUI compressor – minifies CSS too
       •       Inline styles and scripts should also be minified
       •       Minification
               •    Removes unnecessary characters from code to reduce its size, thus improving
                    load times
               •    When JS/CSS code is minified, all comments are usually removed as well as
                    unnecessary “white space” characters like <space>, <newline>, and <tab>
               •    With respect to JavaScript, this improves load time performance because the
                    size of the file downloaded is often significantly reduced
       •       Two Popular Tools for Minifying JavaScript code are:
               •    JSMin
               •    YUI Compressor

To learn more on Minification tools, see MinifyJS.com and MinifyCSS.com




Copyright © 2009 Symbian Foundation.                                  19
Performance Rules




       •      Avoid Redirects
              •  A wasted HTTP Request
              •  Causes a Restart
       •      Remove Duplicate Scripts
              •  IE may decide to download them again




Copyright © 2009 Symbian Foundation.   20
Performance Rules: Make AJAX Cacheable




       •      Content returned from XMLHttpRequest
              is like any other component
       •      Returned content must be Gzipped
       •      Could be cached
              •      Cache-control: max-age=?




Copyright © 2009 Symbian Foundation.   21
Newer Performance Rules




Copyright © 2009 Symbian Foundation.   22
20 New Performance Rules for Faster Web Pages (Yahoo)
   1.      Flush the buffer early
   2.      Use GET for AJAX requests
   3.      Post-load components
   4.      Preload components
   5.      Reduce the number of DOM elements
   6.      Split components across domains
   7.      Minimize the number of iframes
   8.      No 404s
   9.      Reduce cookie size
   10.     Use cookie-free domains for components
   11.     Minimize DOM access
   12.     Develop smart event handlers
   13.     Choose <link> over @import
   14.     Avoid filters
   15.     Optimize images
   16.     Optimize CSS sprites
   17.     Don‟t scale images in HTML
   18.     Make favicon.ico small and cacheable
   19.     Keep components under 25K
   20.     Pack components into a multipart document
   Source: http://developer.yahoo.com/performance/rules.html




Copyright © 2009 Symbian Foundation.                           23
Performance Rules:Use GET for AJAX Requests



        •       GET is for retrieving data
        •       POST is a two-step process (send headers, send data)
        •       GET request is one TCP packet, except in the case you
                have a lot of cookies
        •       Max URL length is 2K (because of IE)
        •       POST without actually posting data is the same as GET




Source: http://developer.yahoo.com/performance/rules.html

Yahoo!Mail Research)




Copyright © 2009 Symbian Foundation.                        24
Performance Rules: Post-Load Components



        •       Determine the components absolutely required initially to
                render the page.
        •       Rest of the components (i.e. drag and drop, animations,
                hidden content, images below the fold) can all wait
        •       JavaScript is ideal candidate for splitting




Source: http://developer.yahoo.com/performance/rules.html
YUI Image Loader
YUI Get Utility




Copyright © 2009 Symbian Foundation.                        25
Performance Rules: Minimize DOM Access




       •      DOM access is the slowest
       •      Cache
       •      Update nodes “offline” and then add them to the tree
       •      Avoid fixing layout with JavaScript




Source: http://developer.yahoo.com/performance/rules.html




Copyright © 2009 Symbian Foundation.                        26
Performance Rules:Optimize Images



       •      GIF – don‟t use a bigger palette than you will need
       •      Use PNGs instead of GIFs
       •      Use pngcrush tool (or optipng or pngoptimizer)
       •      Remove gamma chunks which helps with cross-
              browser colors
       •      Strip comments
       •      jpegtran – lossless JPEG operations can be used to
              optimize and remove comments




Copyright © 2009 Symbian Foundation.   27
Performance Rules: Optimize CSS Sprites



       •      Choose horizontal over vertical sprites whenever possible
       •      Combine similar colors
       •      Keep color count low (<256) to fit in a PNG8
       •      “Be mobile-friendly” – don‟t leave big gaps
              •   Filesize doesn‟t increase much, but the image needs to be
                  decompressed into a pixel map




Copyright © 2009 Symbian Foundation.      28
Performance Rules: Do not scale images in HTML


       •      Scaling images in HTML downloads unnecessary bytes
       •      If you need
               <img width=“200” height=“200” src=“myPic.jpg” />
       •      Better to just have myPic.jpg 200x200 not 1000x1000




Copyright © 2009 Symbian Foundation.   29
Performance Rules: Keep components under 25K



       •      Because mobile phones may generally not cache them
       •      Uncompressed size under 25K
       •      Minify HTML in addition to JavaScript and CSS




Copyright © 2009 Symbian Foundation.   30
Performance Rules:
Pack components into a multipart document


       •      For UAs that support it
       •      For example,
              •   Email with attachments
              •   MMS




Copyright © 2009 Symbian Foundation.   31
Web Technologies for Symbian




Copyright © 2009 Symbian Foundation.   32
Web Technologies
•      Web Runtime (WRT) for S60 devices
       • A set of componenets based on the WebKit architecture
         that enables you to apply your skills at creating web
         content – to createfull mobile web applications that are
         simple, powerful and optimized for mobile devices
       • Widget development is simplified with plug-ins for Aptana
          Studio, Adobe Dreamweaver, and Microsoft Visual Studio
       • The plug-ins enable developers to create, edit, test, package
          and deploy widgets all from within their web development
          tool of their choice




                                  For more information::
                                  http://www.forum.nokia.com/Technology_Topics/Web_Technologies/Web_Runtime/ /
                                  See Mobile 2.0 Developer Talk on “Developing Web Runtime Widgets with Aptana”




    Copyright © 2009 Symbian Foundation.                                       33
Case Study: Twitter mobile client
•      Design methodologies
       • Prototype Twitter client for basic twitter functionality using
           standard Web Services
          • Download XAMPP (LAMP stack)
          • Configure Apache Server and PHP (.ini )
          • Implement PHP script using cURL and test for
               • Getting tweets
               • Updating status
       • Download Prototype JavaScript standard-compliant library for
           enabling interactive Web 2.0 development
               • AJAX.Request() for „get‟ requests
               • AJAX.Updater() (to make an AJAX request and use
                     the returned data to update a Form element)

       Due to security constraints, AJAX XMLHttpRequest API's usage is limited by the “same-origin” policy, which means that the hostname
       of the url you are sending the XMLHttpRequest cannot be different from the hostname of the web server. In order to bypass this AJAX llmitation
       was necessary to interpose a PHP proxy between the mobile twitter client and the Twitter Server

                                                             XAMPP:        http://www.apachefriends.org/en/xampp.html
                                                             Prototype.js: http://www.prototypejs.org/
                                                             cURL:         http://curl.haxx.se/



    Copyright © 2009 Symbian Foundation.                                                      34
Case Study: Lessons Learned

          •      Mobile Web Development Tools could be further enhanced to
                 enable a better mobile Web development experience
          •      Mobile Web UI challenges
          •      AJAX cross-domain limitations
          •      JSLint Plugin for JavaScript code validation is helpful
          •      Better debugging capabilities needed




Copyright © 2009 Symbian Foundation.      35
Bridging the Mobile Web Tools Gap

       •     Develop an Eclipse Plug-in for Web Development on
             Symbian to support Nokia‟s Web Runtime (WRT)
       •     Open Source Eclipse Plug-in Alpha with the below
             features to enable tool developer collaboration by
             December 2009
             • Based on JSDT (part of Eclipse Web Tools Project)
             • Incremental Project Builder
                 • Creates built state based on project contents,
                     and keeps it synchronized to project changes
             • Integrated Debugger with basic debugging capabilities




Copyright © 2009 Symbian Foundation.    36
Join the Symbian Community
       Silicon Valley Symbian Programming SIG
       http://www.meetup.com/Silicon-Valley-Symbian-Developers-Meetup/
       Symbian SIG Mailing List
       Silicon-Valley-Symbian-Developers-Meetup-list@meetup.com
       Symbian Developer Group
       http://developer.symbian.org
       Symbian Exchange & Exposition (SEE 2009) (Oct 27-28), London, UK
       http://www.see2009.org/




Copyright © 2009 Symbian Foundation.   37
Summary


   •      Make the experience feel like a native application
   •      Take advantage of the enhanced features
   •      Don‟t simply release a hybrid version of the mobile web site
   •      Optimize performance
   •      Collaborate with the developer community to further
          enhance the mobile Web development experience!




Copyright © 2009 Symbian Foundation.   38
More Information


                                  My Blog
                                  http://mymobilecorner.blogspot.com

                                  Follow me on Twitter
                                  http://www.twitter.com/twitmymobile

                                  Symbian Developer Group
                                  http://developer.symbian.org




Copyright © 2009 Symbian Foundation.

Contenu connexe

Tendances

CM WebClient CA Expo Mannheim Germany
CM WebClient CA Expo Mannheim Germany CM WebClient CA Expo Mannheim Germany
CM WebClient CA Expo Mannheim Germany CM First Group
 
PLAT-1 CMIS in the Real World
PLAT-1 CMIS in the Real WorldPLAT-1 CMIS in the Real World
PLAT-1 CMIS in the Real WorldAlfresco Software
 
Top 10 HTML5 Features for Oracle Cloud Developers
Top 10 HTML5 Features for Oracle Cloud DevelopersTop 10 HTML5 Features for Oracle Cloud Developers
Top 10 HTML5 Features for Oracle Cloud DevelopersBrian Huff
 
Building Living Web Applications with HTML5 WebSockets
Building Living Web Applications with HTML5 WebSocketsBuilding Living Web Applications with HTML5 WebSockets
Building Living Web Applications with HTML5 WebSocketsPeter Moskovits
 
Deep Dive: Oracle WebCenter Content Tips and Traps!
Deep Dive: Oracle WebCenter Content Tips and Traps!Deep Dive: Oracle WebCenter Content Tips and Traps!
Deep Dive: Oracle WebCenter Content Tips and Traps!Brian Huff
 
Creating mobile apps without native code
Creating mobile apps without native codeCreating mobile apps without native code
Creating mobile apps without native codeJoakim Kemeny
 
Integrating ADF Mobile with WebCenter
Integrating ADF Mobile with WebCenterIntegrating ADF Mobile with WebCenter
Integrating ADF Mobile with WebCenterBrian Huff
 
FatWire Tutorial For Site Studio Developers
FatWire Tutorial For Site Studio DevelopersFatWire Tutorial For Site Studio Developers
FatWire Tutorial For Site Studio DevelopersBrian Huff
 
Web Apps atop a Content Repository
Web Apps atop a Content RepositoryWeb Apps atop a Content Repository
Web Apps atop a Content RepositoryGabriel Walt
 
Creating Next-Generation ADF Mobile Applications
Creating Next-Generation ADF Mobile ApplicationsCreating Next-Generation ADF Mobile Applications
Creating Next-Generation ADF Mobile ApplicationsBrian Huff
 
GateIn - The Solution for Managing and Building Enterprise Web Apps
GateIn - The Solution for Managing and Building Enterprise Web AppsGateIn - The Solution for Managing and Building Enterprise Web Apps
GateIn - The Solution for Managing and Building Enterprise Web AppsWesley Hales
 
Introduction to eXo ECM Suite
Introduction to eXo ECM SuiteIntroduction to eXo ECM Suite
Introduction to eXo ECM SuiteTugdual Grall
 
Front End page speed performance improvements for Drupal
Front End page speed performance improvements for DrupalFront End page speed performance improvements for Drupal
Front End page speed performance improvements for DrupalAndy Kucharski
 
Ajax In Enterprise Portals Wesley Hales
Ajax In Enterprise Portals Wesley HalesAjax In Enterprise Portals Wesley Hales
Ajax In Enterprise Portals Wesley Halesrajivmordani
 
Architecture of a Modern Web App
Architecture of a Modern Web AppArchitecture of a Modern Web App
Architecture of a Modern Web Appscothis
 
CMIS overview
CMIS overviewCMIS overview
CMIS overviewNuxeo
 

Tendances (20)

CM WebClient CA Expo Mannheim Germany
CM WebClient CA Expo Mannheim Germany CM WebClient CA Expo Mannheim Germany
CM WebClient CA Expo Mannheim Germany
 
PLAT-1 CMIS in the Real World
PLAT-1 CMIS in the Real WorldPLAT-1 CMIS in the Real World
PLAT-1 CMIS in the Real World
 
Top 10 HTML5 Features for Oracle Cloud Developers
Top 10 HTML5 Features for Oracle Cloud DevelopersTop 10 HTML5 Features for Oracle Cloud Developers
Top 10 HTML5 Features for Oracle Cloud Developers
 
Building Living Web Applications with HTML5 WebSockets
Building Living Web Applications with HTML5 WebSocketsBuilding Living Web Applications with HTML5 WebSockets
Building Living Web Applications with HTML5 WebSockets
 
Crx 2.2 Deep-Dive
Crx 2.2 Deep-DiveCrx 2.2 Deep-Dive
Crx 2.2 Deep-Dive
 
Deep Dive: Oracle WebCenter Content Tips and Traps!
Deep Dive: Oracle WebCenter Content Tips and Traps!Deep Dive: Oracle WebCenter Content Tips and Traps!
Deep Dive: Oracle WebCenter Content Tips and Traps!
 
Creating mobile apps without native code
Creating mobile apps without native codeCreating mobile apps without native code
Creating mobile apps without native code
 
Integrating ADF Mobile with WebCenter
Integrating ADF Mobile with WebCenterIntegrating ADF Mobile with WebCenter
Integrating ADF Mobile with WebCenter
 
FatWire Tutorial For Site Studio Developers
FatWire Tutorial For Site Studio DevelopersFatWire Tutorial For Site Studio Developers
FatWire Tutorial For Site Studio Developers
 
Web Apps atop a Content Repository
Web Apps atop a Content RepositoryWeb Apps atop a Content Repository
Web Apps atop a Content Repository
 
Creating Next-Generation ADF Mobile Applications
Creating Next-Generation ADF Mobile ApplicationsCreating Next-Generation ADF Mobile Applications
Creating Next-Generation ADF Mobile Applications
 
Drive dam
Drive damDrive dam
Drive dam
 
Kaazing
KaazingKaazing
Kaazing
 
GateIn - The Solution for Managing and Building Enterprise Web Apps
GateIn - The Solution for Managing and Building Enterprise Web AppsGateIn - The Solution for Managing and Building Enterprise Web Apps
GateIn - The Solution for Managing and Building Enterprise Web Apps
 
Introduction to eXo ECM Suite
Introduction to eXo ECM SuiteIntroduction to eXo ECM Suite
Introduction to eXo ECM Suite
 
CMIS Introduction
CMIS IntroductionCMIS Introduction
CMIS Introduction
 
Front End page speed performance improvements for Drupal
Front End page speed performance improvements for DrupalFront End page speed performance improvements for Drupal
Front End page speed performance improvements for Drupal
 
Ajax In Enterprise Portals Wesley Hales
Ajax In Enterprise Portals Wesley HalesAjax In Enterprise Portals Wesley Hales
Ajax In Enterprise Portals Wesley Hales
 
Architecture of a Modern Web App
Architecture of a Modern Web AppArchitecture of a Modern Web App
Architecture of a Modern Web App
 
CMIS overview
CMIS overviewCMIS overview
CMIS overview
 

En vedette

Motivation &amp; history moc
Motivation &amp; history mocMotivation &amp; history moc
Motivation &amp; history mocNitin Ujgare
 
Mobile UX - the intricacies of designing for mobile devices
Mobile UX - the intricacies of designing for mobile devicesMobile UX - the intricacies of designing for mobile devices
Mobile UX - the intricacies of designing for mobile devicesAntony Ribot
 
Iaetsd automobile automation using ultrasonics and image processing along wit...
Iaetsd automobile automation using ultrasonics and image processing along wit...Iaetsd automobile automation using ultrasonics and image processing along wit...
Iaetsd automobile automation using ultrasonics and image processing along wit...Iaetsd Iaetsd
 
Mountain club presentation
Mountain club presentationMountain club presentation
Mountain club presentationWORLDWING
 
Porsche Brand Management
Porsche Brand ManagementPorsche Brand Management
Porsche Brand Managementspunkyrohit1
 
The Development of Cellular Mobile Communication System
The Development of Cellular Mobile Communication SystemThe Development of Cellular Mobile Communication System
The Development of Cellular Mobile Communication SystemYusuf Kurniawan
 
SN-Security Architecture for Mobile Computing and IoT
SN-Security Architecture for Mobile Computing and IoTSN-Security Architecture for Mobile Computing and IoT
SN-Security Architecture for Mobile Computing and IoTSukumar Nayak
 
Marketing Automation - Why, What, How
Marketing Automation - Why, What, HowMarketing Automation - Why, What, How
Marketing Automation - Why, What, HowJonas Verhaeghe
 
Seminar Report on Li-Fi Technology
Seminar Report on Li-Fi TechnologySeminar Report on Li-Fi Technology
Seminar Report on Li-Fi TechnologyUzmaRuhy
 
Automatic rain-operated-wiper
Automatic rain-operated-wiperAutomatic rain-operated-wiper
Automatic rain-operated-wiper13006
 
Lecture 5 6 .ad hoc network
Lecture 5 6 .ad hoc networkLecture 5 6 .ad hoc network
Lecture 5 6 .ad hoc networkChandra Meena
 
Compressed air car_full_seminar_report
Compressed air car_full_seminar_reportCompressed air car_full_seminar_report
Compressed air car_full_seminar_reportNitin Kharche
 
Lifi Seminar Report Full
Lifi Seminar Report FullLifi Seminar Report Full
Lifi Seminar Report FullArpit Gupta
 
Automatic Wiper System..
Automatic Wiper System..Automatic Wiper System..
Automatic Wiper System..Suchit Moon
 
Tracxn Research - Smart Cars Landscape, January 2017
Tracxn Research - Smart Cars Landscape, January 2017Tracxn Research - Smart Cars Landscape, January 2017
Tracxn Research - Smart Cars Landscape, January 2017Tracxn
 

En vedette (20)

Motivation &amp; history moc
Motivation &amp; history mocMotivation &amp; history moc
Motivation &amp; history moc
 
Factory automation seminar introduction and PROFIBUS & PROFINET update mark...
Factory automation seminar introduction and PROFIBUS & PROFINET update   mark...Factory automation seminar introduction and PROFIBUS & PROFINET update   mark...
Factory automation seminar introduction and PROFIBUS & PROFINET update mark...
 
WI FI
WI FIWI FI
WI FI
 
Mobile UX - the intricacies of designing for mobile devices
Mobile UX - the intricacies of designing for mobile devicesMobile UX - the intricacies of designing for mobile devices
Mobile UX - the intricacies of designing for mobile devices
 
Iaetsd automobile automation using ultrasonics and image processing along wit...
Iaetsd automobile automation using ultrasonics and image processing along wit...Iaetsd automobile automation using ultrasonics and image processing along wit...
Iaetsd automobile automation using ultrasonics and image processing along wit...
 
English Project 5. A G
English Project 5. A GEnglish Project 5. A G
English Project 5. A G
 
Mountain club presentation
Mountain club presentationMountain club presentation
Mountain club presentation
 
Porsche Brand Management
Porsche Brand ManagementPorsche Brand Management
Porsche Brand Management
 
The Development of Cellular Mobile Communication System
The Development of Cellular Mobile Communication SystemThe Development of Cellular Mobile Communication System
The Development of Cellular Mobile Communication System
 
SN-Security Architecture for Mobile Computing and IoT
SN-Security Architecture for Mobile Computing and IoTSN-Security Architecture for Mobile Computing and IoT
SN-Security Architecture for Mobile Computing and IoT
 
Marketing Automation - Why, What, How
Marketing Automation - Why, What, HowMarketing Automation - Why, What, How
Marketing Automation - Why, What, How
 
Seminar Report on Li-Fi Technology
Seminar Report on Li-Fi TechnologySeminar Report on Li-Fi Technology
Seminar Report on Li-Fi Technology
 
term paper
term paperterm paper
term paper
 
Automatic rain-operated-wiper
Automatic rain-operated-wiperAutomatic rain-operated-wiper
Automatic rain-operated-wiper
 
Lecture 5 6 .ad hoc network
Lecture 5 6 .ad hoc networkLecture 5 6 .ad hoc network
Lecture 5 6 .ad hoc network
 
Compressed air car_full_seminar_report
Compressed air car_full_seminar_reportCompressed air car_full_seminar_report
Compressed air car_full_seminar_report
 
Hovercraft seminar report
Hovercraft seminar report Hovercraft seminar report
Hovercraft seminar report
 
Lifi Seminar Report Full
Lifi Seminar Report FullLifi Seminar Report Full
Lifi Seminar Report Full
 
Automatic Wiper System..
Automatic Wiper System..Automatic Wiper System..
Automatic Wiper System..
 
Tracxn Research - Smart Cars Landscape, January 2017
Tracxn Research - Smart Cars Landscape, January 2017Tracxn Research - Smart Cars Landscape, January 2017
Tracxn Research - Smart Cars Landscape, January 2017
 

Similaire à Developer Pitfalls & Strategies for Improving Mobile Web Developer Experience

The Mobile Web - HTML5 on mobile devices
The Mobile Web - HTML5 on mobile devicesThe Mobile Web - HTML5 on mobile devices
The Mobile Web - HTML5 on mobile devicesWesley Hales
 
SEE 2009: Improving Mobile Web Developer Experience
SEE 2009: Improving Mobile Web Developer ExperienceSEE 2009: Improving Mobile Web Developer Experience
SEE 2009: Improving Mobile Web Developer ExperienceTasneem Sayeed
 
Going Multi-Tenant with dotCMS
Going Multi-Tenant with dotCMSGoing Multi-Tenant with dotCMS
Going Multi-Tenant with dotCMSdotCMS
 
Women Who Code, Ground Floor
Women Who Code, Ground FloorWomen Who Code, Ground Floor
Women Who Code, Ground FloorKatie Weiss
 
W3C Mobile Web technologies
W3C Mobile Web technologiesW3C Mobile Web technologies
W3C Mobile Web technologiesRobin Berjon
 
Frameworks Galore: A Pragmatic Review
Frameworks Galore: A Pragmatic ReviewFrameworks Galore: A Pragmatic Review
Frameworks Galore: A Pragmatic Reviewnetc2012
 
Meetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech PeopleMeetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech PeopleIT Arena
 
Web Assembly Big Picture
Web Assembly Big PictureWeb Assembly Big Picture
Web Assembly Big PictureYousif Shalaby
 
The Kubernetes WebLogic revival (part 1)
The Kubernetes WebLogic revival (part 1)The Kubernetes WebLogic revival (part 1)
The Kubernetes WebLogic revival (part 1)Simon Haslam
 
20191201 kubernetes managed weblogic revival - part 1
20191201 kubernetes managed weblogic revival - part 120191201 kubernetes managed weblogic revival - part 1
20191201 kubernetes managed weblogic revival - part 1makker_nl
 
JavaOne 2011 - Going Mobile With Java Based Technologies Today
JavaOne 2011 - Going Mobile With Java Based Technologies TodayJavaOne 2011 - Going Mobile With Java Based Technologies Today
JavaOne 2011 - Going Mobile With Java Based Technologies TodayWesley Hales
 
Week 05 Web, App and Javascript_Brandon, S.H. Wu
Week 05 Web, App and Javascript_Brandon, S.H. WuWeek 05 Web, App and Javascript_Brandon, S.H. Wu
Week 05 Web, App and Javascript_Brandon, S.H. WuAppUniverz Org
 
The Mobile Development Landscape
The Mobile Development LandscapeThe Mobile Development Landscape
The Mobile Development LandscapeAmbert Ho
 
Webdev battacherjee
Webdev battacherjeeWebdev battacherjee
Webdev battacherjeeRavingTiger
 
Introduction To J Boss Seam
Introduction To J Boss SeamIntroduction To J Boss Seam
Introduction To J Boss Seamashishkulkarni
 
A Comprehensive Guide on Building Lightning-Fast Websites with React Static S...
A Comprehensive Guide on Building Lightning-Fast Websites with React Static S...A Comprehensive Guide on Building Lightning-Fast Websites with React Static S...
A Comprehensive Guide on Building Lightning-Fast Websites with React Static S...Inexture Solutions
 

Similaire à Developer Pitfalls & Strategies for Improving Mobile Web Developer Experience (20)

The Mobile Web - HTML5 on mobile devices
The Mobile Web - HTML5 on mobile devicesThe Mobile Web - HTML5 on mobile devices
The Mobile Web - HTML5 on mobile devices
 
SEE 2009: Improving Mobile Web Developer Experience
SEE 2009: Improving Mobile Web Developer ExperienceSEE 2009: Improving Mobile Web Developer Experience
SEE 2009: Improving Mobile Web Developer Experience
 
Going Multi-Tenant with dotCMS
Going Multi-Tenant with dotCMSGoing Multi-Tenant with dotCMS
Going Multi-Tenant with dotCMS
 
Women Who Code, Ground Floor
Women Who Code, Ground FloorWomen Who Code, Ground Floor
Women Who Code, Ground Floor
 
W3C Mobile Web technologies
W3C Mobile Web technologiesW3C Mobile Web technologies
W3C Mobile Web technologies
 
Frameworks Galore: A Pragmatic Review
Frameworks Galore: A Pragmatic ReviewFrameworks Galore: A Pragmatic Review
Frameworks Galore: A Pragmatic Review
 
Meetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech PeopleMeetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech People
 
20120802 timisoara
20120802 timisoara20120802 timisoara
20120802 timisoara
 
Web Assembly Big Picture
Web Assembly Big PictureWeb Assembly Big Picture
Web Assembly Big Picture
 
The Kubernetes WebLogic revival (part 1)
The Kubernetes WebLogic revival (part 1)The Kubernetes WebLogic revival (part 1)
The Kubernetes WebLogic revival (part 1)
 
20191201 kubernetes managed weblogic revival - part 1
20191201 kubernetes managed weblogic revival - part 120191201 kubernetes managed weblogic revival - part 1
20191201 kubernetes managed weblogic revival - part 1
 
JavaOne 2011 - Going Mobile With Java Based Technologies Today
JavaOne 2011 - Going Mobile With Java Based Technologies TodayJavaOne 2011 - Going Mobile With Java Based Technologies Today
JavaOne 2011 - Going Mobile With Java Based Technologies Today
 
Week 05 Web, App and Javascript_Brandon, S.H. Wu
Week 05 Web, App and Javascript_Brandon, S.H. WuWeek 05 Web, App and Javascript_Brandon, S.H. Wu
Week 05 Web, App and Javascript_Brandon, S.H. Wu
 
Spring Into the Cloud
Spring Into the CloudSpring Into the Cloud
Spring Into the Cloud
 
Building SPA’s (Single Page App) with Backbone.js
Building SPA’s (Single Page App) with Backbone.jsBuilding SPA’s (Single Page App) with Backbone.js
Building SPA’s (Single Page App) with Backbone.js
 
Javascript for Wep Apps
Javascript for Wep AppsJavascript for Wep Apps
Javascript for Wep Apps
 
The Mobile Development Landscape
The Mobile Development LandscapeThe Mobile Development Landscape
The Mobile Development Landscape
 
Webdev battacherjee
Webdev battacherjeeWebdev battacherjee
Webdev battacherjee
 
Introduction To J Boss Seam
Introduction To J Boss SeamIntroduction To J Boss Seam
Introduction To J Boss Seam
 
A Comprehensive Guide on Building Lightning-Fast Websites with React Static S...
A Comprehensive Guide on Building Lightning-Fast Websites with React Static S...A Comprehensive Guide on Building Lightning-Fast Websites with React Static S...
A Comprehensive Guide on Building Lightning-Fast Websites with React Static S...
 

Dernier

Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 

Dernier (20)

Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 

Developer Pitfalls & Strategies for Improving Mobile Web Developer Experience

  • 1. Mobile 2.0 Conference 2009 Developer Pitfalls and Strategies for Improving Mobile Web Developer Experience Tasneem Sayeed Mobile Technologist October 16, 2009
  • 2. Outline  Definition of Mobile Web  Mobile Device Constraints  Mobile Development Challenges  Tools and Trends  Performance Rules and Web Development Strategies  Bridging the Mobile Web Tools Gap  Conclusion Copyright © 2009 Symbian Foundation. 2
  • 3. Definition of the Mobile Web “Mobile Web”  W3C pushing the idea of “One Web”  Making the same information and services available to users irrespective of the device they are using  Does not mean exactly the same information is available in exactly the same representation across all devices  The context of mobile use, device capability variations, bandwidth issues and mobile network capabilities all affect the representation  Some services and information better suited for and targeted at particular user contexts Source: W3C Mobile best practices „One Web‟ page Copyright © 2009 Symbian Foundation. 3
  • 4. Mobile Device Constraints • Screen Size/Resolution • Keep Layout as simple and fluid as possible • Keep your page contents all in a single column stacked on top of each other so regardless of screen size/resolution, information simply wraps • Test with and without CSS and JavaScript Copyright © 2009 Symbian Foundation. 4
  • 5. Mobile Device Constraints • Limited Memory • Limits amount of processing that can be handled • Limited battery power • Limits implementations of JavaScript, Flash and other technologies • Drains battery • Creates a slower user experience • Increases the bandwidth (i.e. can be more costly to download web content) Copyright © 2009 Symbian Foundation. 5
  • 6. Mobile Web Development Challenges Copyright © 2009 Symbian Foundation. 6
  • 7. Mobile Web Development Challenges • “Code once, run anywhere” is a foreign concept • Many browser and device types to accommodate • Unresolved connectivity and caching issues to contend • On our 5th Generation of HTML with WML, XHTML, and cHTML still alive • Constellation of mobile platforms • Symbian (Symbian OS-based) • Java ME • BREW • Windows Mobile • Blackberry • iPhone (Objective-C based) • Linux-based Android • Palm Web OS • and more on the way! Copyright © 2009 Symbian Foundation. 7
  • 8. Tools and Trends Copyright © 2009 Symbian Foundation. 8
  • 9. Tools and Trends • Issues that are gradually finding resolution in the mobile Web world either via ingeniuty of the developer community or market drivers • Device and Platform Proliferation • Coding Standards • Testing Ubiquity • Caching Capabilities • Mobile Web development has more tools available today • J2ME Polish • .NET Compact Framework for Windows Mobile devices • PhoneGap (Cross platform mobile framework) • Rhomobile (open mobile framework) • Titanium Appcelerator and many others • Mobile Complete (remote handset testing) • iLoop (resolves device compatibility by doing heavy lifting for identifying device profile information to enable device detection and automatically serving the right data and format Copyright © 2009 Symbian Foundation. 9
  • 10. Tools and Trends • W3C Mobile Web initiative continues to drive best practices & standards • HTML5 • Web Forms 2.0, and is expected to be a game-changer in Web application development, making obsolete such plug-in based rich internet application (RIA) technologies such as Adobe Flash, Microsoft Silverlight and Sun JavaFX • New caching capabilities and so on Copyright © 2009 Symbian Foundation. 10
  • 11. Performance Rules Copyright © 2009 Symbian Foundation. 11
  • 12. 14 Performance Rules (Yahoo) content 1. Make Fewer HTTP Requests 2. Use a Content Delivery Network server server 3. Add an Expires Header (or Cache-control) server 4. GZip Components CSS 5. Put CSS (Stylesheets) at the Top javascript 6. Move Scripts to the Bottom (inline too) CSS 7. Avoid CSS Expressions CSS Javascript 8. Make JavaScript and CSS External content 9. Reduce DNS Lookups 10. Minify JavaScript and CSS (inline too) CSS Javascript 11. Avoid Redirects content Javascript 12. Remove Duplicate Scripts sserver 13. Configure ETags content 14. Make AJAX Cacheable  Source: http://developer.yahoo.com/performance/rules.html Copyright © 2009 Symbian Foundation. 12
  • 13. Performance Rules: Make Fewer HTTP Requests • Less components = fast page • HTTP Request overhead • Combine scripts • Combine CSS stylesheets • Combine images into CSS sprites Copyright © 2009 Symbian Foundation. 13
  • 14. Performance Rules: GZip Components • When you send zipped content over the internet, the browser unpacks it • Modern browsers understand compressed content • Request header Accept-Encoding:gzip,deflate • Response header Content-Encoding: gzip • All text components should be sent gzipped: html (php), js, css, xml, txt… Copyright © 2009 Symbian Foundation. 14
  • 15. Performance Rules: Put CSS at the Top • Firefox and IE will not render anything until the last piece of CSS reaches the wire • Place stylesheets as early as possible in the document <head> <title>Your page here</title> <link href=“styles.css” …> </head> <body> <!– content --> </body> Copyright © 2009 Symbian Foundation. 15
  • 16. Performance Rules: Move Scripts to the Bottom (inline too) • Scripts block downloads • Since the script can do location.href or document.write at any time, browser blocks rather than downloading possibly useless components • Inline scripts too <body> <!– content --> <script src=“script.js” …/> </body> </html> Copyright © 2009 Symbian Foundation. 16
  • 17. Performance Rules: Avoid CSS Expressions CSS expression #content { position: absolute; left: expression(document.body.offsetWidth + „px‟); } • In IE, this is the only way to have Javascript in CSS • CSS expressions tend to get executed more often than was intended, think about onmousemove • Smart expressions overwrite themselves Copyright © 2009 Symbian Foundation. 17
  • 18. Performance Rules: Make Javascript and CSS External • Helps with caching, “never expire” policy • Share with other pages • However, this is two more HTTP requests • May want to consider inlining for homepages Copyright © 2009 Symbian Foundation. 18
  • 19. Performance Rules: Minify JavaScript and CSS (inline too) • Minify, but still Gzip • JSMin (Written in Javascript, but has a PHP port) • YUI compressor – minifies CSS too • Inline styles and scripts should also be minified • Minification • Removes unnecessary characters from code to reduce its size, thus improving load times • When JS/CSS code is minified, all comments are usually removed as well as unnecessary “white space” characters like <space>, <newline>, and <tab> • With respect to JavaScript, this improves load time performance because the size of the file downloaded is often significantly reduced • Two Popular Tools for Minifying JavaScript code are: • JSMin • YUI Compressor To learn more on Minification tools, see MinifyJS.com and MinifyCSS.com Copyright © 2009 Symbian Foundation. 19
  • 20. Performance Rules • Avoid Redirects • A wasted HTTP Request • Causes a Restart • Remove Duplicate Scripts • IE may decide to download them again Copyright © 2009 Symbian Foundation. 20
  • 21. Performance Rules: Make AJAX Cacheable • Content returned from XMLHttpRequest is like any other component • Returned content must be Gzipped • Could be cached • Cache-control: max-age=? Copyright © 2009 Symbian Foundation. 21
  • 22. Newer Performance Rules Copyright © 2009 Symbian Foundation. 22
  • 23. 20 New Performance Rules for Faster Web Pages (Yahoo) 1. Flush the buffer early 2. Use GET for AJAX requests 3. Post-load components 4. Preload components 5. Reduce the number of DOM elements 6. Split components across domains 7. Minimize the number of iframes 8. No 404s 9. Reduce cookie size 10. Use cookie-free domains for components 11. Minimize DOM access 12. Develop smart event handlers 13. Choose <link> over @import 14. Avoid filters 15. Optimize images 16. Optimize CSS sprites 17. Don‟t scale images in HTML 18. Make favicon.ico small and cacheable 19. Keep components under 25K 20. Pack components into a multipart document Source: http://developer.yahoo.com/performance/rules.html Copyright © 2009 Symbian Foundation. 23
  • 24. Performance Rules:Use GET for AJAX Requests • GET is for retrieving data • POST is a two-step process (send headers, send data) • GET request is one TCP packet, except in the case you have a lot of cookies • Max URL length is 2K (because of IE) • POST without actually posting data is the same as GET Source: http://developer.yahoo.com/performance/rules.html Yahoo!Mail Research) Copyright © 2009 Symbian Foundation. 24
  • 25. Performance Rules: Post-Load Components • Determine the components absolutely required initially to render the page. • Rest of the components (i.e. drag and drop, animations, hidden content, images below the fold) can all wait • JavaScript is ideal candidate for splitting Source: http://developer.yahoo.com/performance/rules.html YUI Image Loader YUI Get Utility Copyright © 2009 Symbian Foundation. 25
  • 26. Performance Rules: Minimize DOM Access • DOM access is the slowest • Cache • Update nodes “offline” and then add them to the tree • Avoid fixing layout with JavaScript Source: http://developer.yahoo.com/performance/rules.html Copyright © 2009 Symbian Foundation. 26
  • 27. Performance Rules:Optimize Images • GIF – don‟t use a bigger palette than you will need • Use PNGs instead of GIFs • Use pngcrush tool (or optipng or pngoptimizer) • Remove gamma chunks which helps with cross- browser colors • Strip comments • jpegtran – lossless JPEG operations can be used to optimize and remove comments Copyright © 2009 Symbian Foundation. 27
  • 28. Performance Rules: Optimize CSS Sprites • Choose horizontal over vertical sprites whenever possible • Combine similar colors • Keep color count low (<256) to fit in a PNG8 • “Be mobile-friendly” – don‟t leave big gaps • Filesize doesn‟t increase much, but the image needs to be decompressed into a pixel map Copyright © 2009 Symbian Foundation. 28
  • 29. Performance Rules: Do not scale images in HTML • Scaling images in HTML downloads unnecessary bytes • If you need <img width=“200” height=“200” src=“myPic.jpg” /> • Better to just have myPic.jpg 200x200 not 1000x1000 Copyright © 2009 Symbian Foundation. 29
  • 30. Performance Rules: Keep components under 25K • Because mobile phones may generally not cache them • Uncompressed size under 25K • Minify HTML in addition to JavaScript and CSS Copyright © 2009 Symbian Foundation. 30
  • 31. Performance Rules: Pack components into a multipart document • For UAs that support it • For example, • Email with attachments • MMS Copyright © 2009 Symbian Foundation. 31
  • 32. Web Technologies for Symbian Copyright © 2009 Symbian Foundation. 32
  • 33. Web Technologies • Web Runtime (WRT) for S60 devices • A set of componenets based on the WebKit architecture that enables you to apply your skills at creating web content – to createfull mobile web applications that are simple, powerful and optimized for mobile devices • Widget development is simplified with plug-ins for Aptana Studio, Adobe Dreamweaver, and Microsoft Visual Studio • The plug-ins enable developers to create, edit, test, package and deploy widgets all from within their web development tool of their choice For more information:: http://www.forum.nokia.com/Technology_Topics/Web_Technologies/Web_Runtime/ / See Mobile 2.0 Developer Talk on “Developing Web Runtime Widgets with Aptana” Copyright © 2009 Symbian Foundation. 33
  • 34. Case Study: Twitter mobile client • Design methodologies • Prototype Twitter client for basic twitter functionality using standard Web Services • Download XAMPP (LAMP stack) • Configure Apache Server and PHP (.ini ) • Implement PHP script using cURL and test for • Getting tweets • Updating status • Download Prototype JavaScript standard-compliant library for enabling interactive Web 2.0 development • AJAX.Request() for „get‟ requests • AJAX.Updater() (to make an AJAX request and use the returned data to update a Form element) Due to security constraints, AJAX XMLHttpRequest API's usage is limited by the “same-origin” policy, which means that the hostname of the url you are sending the XMLHttpRequest cannot be different from the hostname of the web server. In order to bypass this AJAX llmitation was necessary to interpose a PHP proxy between the mobile twitter client and the Twitter Server XAMPP: http://www.apachefriends.org/en/xampp.html Prototype.js: http://www.prototypejs.org/ cURL: http://curl.haxx.se/ Copyright © 2009 Symbian Foundation. 34
  • 35. Case Study: Lessons Learned • Mobile Web Development Tools could be further enhanced to enable a better mobile Web development experience • Mobile Web UI challenges • AJAX cross-domain limitations • JSLint Plugin for JavaScript code validation is helpful • Better debugging capabilities needed Copyright © 2009 Symbian Foundation. 35
  • 36. Bridging the Mobile Web Tools Gap • Develop an Eclipse Plug-in for Web Development on Symbian to support Nokia‟s Web Runtime (WRT) • Open Source Eclipse Plug-in Alpha with the below features to enable tool developer collaboration by December 2009 • Based on JSDT (part of Eclipse Web Tools Project) • Incremental Project Builder • Creates built state based on project contents, and keeps it synchronized to project changes • Integrated Debugger with basic debugging capabilities Copyright © 2009 Symbian Foundation. 36
  • 37. Join the Symbian Community Silicon Valley Symbian Programming SIG http://www.meetup.com/Silicon-Valley-Symbian-Developers-Meetup/ Symbian SIG Mailing List Silicon-Valley-Symbian-Developers-Meetup-list@meetup.com Symbian Developer Group http://developer.symbian.org Symbian Exchange & Exposition (SEE 2009) (Oct 27-28), London, UK http://www.see2009.org/ Copyright © 2009 Symbian Foundation. 37
  • 38. Summary • Make the experience feel like a native application • Take advantage of the enhanced features • Don‟t simply release a hybrid version of the mobile web site • Optimize performance • Collaborate with the developer community to further enhance the mobile Web development experience! Copyright © 2009 Symbian Foundation. 38
  • 39. More Information My Blog http://mymobilecorner.blogspot.com Follow me on Twitter http://www.twitter.com/twitmymobile Symbian Developer Group http://developer.symbian.org Copyright © 2009 Symbian Foundation.