SlideShare a Scribd company logo
iPad Web Development
A magical and revolutionary presentation
December 13, 2010

By Abraham Velazquez &
Alex Zelenskiy
© 2010 Critical Mass, Inc. All Rights Reserved
Native App                      vs.      Web App

Objective C + APIs/Backend               HTML5/CSS3/JS + Backend

Higher Cost ≈ 3-5x                       Considerably lower cost
                                         because they are more common
Native does more, it's faster/smoother   languages

App Store Promotion                      Instant updates

Update require apple approval            Native does more, is faster/smoother

Native sits on the device                Deployed online and viewed via safari
                                         or pulled into application wrapper
Native is best when you need to
cache/store a lot of content that does   No internet, no app. There are some
not change.                              caching options, but limited.

Access to all iOS APIs                   Access to Limited APIs
Web Apps on iPad vs. iPhone vs. Android

All 3 use webkit... but!
iPad                   iPhone                 Android
                       320x480                240x640
1024x768               640x960                360x640
APIs: Location,                               320x480
Orientation,                                  480x800
Accelerometer, Tap     APIs: Location,        600x1024 (Tab)
Targets and swipes     Orientation,
                       Accelerometer, Tap     APIs: Location,
Video, Local Storage   Targets and swipes     Orientation,
                                              Accelerometer,
CSS3 Fonts             Video, Local Storage   Camera

                       CSS3 Fonts             Video, Local Storage

                                              Flash! (Kinda)

                                              Poor Font Support
iDevices: stop worrying about this stuff!


   Reliable Layouts (IE6 is dead)

   Great CSS3 Support because it's the almighty WebKit

   Flash mobile is dead (Kinda)

   Mobile Video is standard and reliable

   Hover events, there is no hover for touch.
Start worrying about this, though.

 1. Animation/transition performance
      Transitions are possible, but use wisely.
      To many will cause poor performance

 2. Slow Internet speed
      Don't overload with high-res images or non-optimized video.
      Use progressive downloading

 3. No fixed positioning
      No toolbars at top of pages, unless you use a library

 4. Need to pay attention how content is being served
      Web view and mobile safari do not fire the same events, for example.

 6. Two screen orientations
      Design for landscape and portrait
      How will content re-flow based on position.
      Headers shrink down, Sidebars become footers
Best Practices: Design

  Your finger is 30 pixels wide! (60pixels on iPhone 4)

   Give tappable elements in your app a target area of at
  least 44 x 44 pixels.

  Keep 12ish pixels between navigation elements (double
  on iPhone 4).

  Stick to native styles where ever possible

  Keep it simple! What are the bare essentials?

  Test both, in Simulator and load JPG on Device
Best Practices 3: UI

Keep in mind where users hands are going to be:

iPhone uses a bottom nav



iPad uses split view
Examples
Side Navigation
Best Practices: Development

  Keep requests down (5-10 per page)

  No Faux CSS Elements :before or :after

  Anything that causes dom redraws is bad

  Use classes for everything
  (Turn then on/off when you need them)

  CSS3 is good, but go easy on it

  Optimize all your images

  Use CSS/Image sprites, wisely

  Canvas and SVG elements are pretty good
HTML 5

Video tags are good.

Some of the new HTML form attributes will trigger the alternate screen
keyboards on mobile devices. This is really handy.
CSS3

background-color: rgba(180, 180, 144, 0.6);

opacity: .5;

text-shadow: 1px 1px 3px #888;

background-image: -webkit-gradient(linear,left top,left
bottom,color-stop(0, #444444),color-stop(1, #999999));

-webkit-border-radius: 12px;

-webkit-box-shadow: 0px 0px 4px #ffffff;
-webkit-transition: all 1s ease-in-out;
-webkit-transition-property: opacity, left;
-webkit-transition-duration: 2s, 4s;

transform:skew(35deg);
transform:scale(1,0.5);
transform:rotate(45deg);
transform:translate(10px, 20px);
CSS3

       You can do this...




           but don'!
Font Support - Use it!

iosfonts.com list of native fonts on iPad and iPhone
Typekit works on everything
Google font directory now works on everything.

Use something like fontsquirrel.com to generate fonts in the
correct formats.

Check font licenses before including them.

Older iOS versions are at a (50%) risk of crashing when you
bind different @font-face weights to the same typeface.
Mobile Webkit vs. Webkit

Mobile webkit is a lot like desktop webkit, except it runs on slower
hardware, tries to scale everything to a tiny screen*, and does not
remember what position:fixed is.

*unless you tell it not to through the use of meta tags:




<meta name="viewport" content="width=device-width, initial-scale=1.0;
maximum-scale=1.0;">
Tricks

There are some undocumented features of webkit that produce
desired effects.

For example, translate3d can be exploited for smoother rendering:
-webkit-transform: translate3d(0,0,0)

Unfortunately, stuff like this is not a feature and could be "fixed" by
apple at any time.
CSS Media Queries


<link rel="stylesheet" media="all and (orientation:
portrait)" href="portrait.css">

<link rel="stylesheet" media="all and (orientation:
landscape)" href="landscape.css">

@media only screen and (max-device-width: 1024px) and
(orientation:portrait) {

}
@media only screen and (max-device-width: 1024px) and
(orientation:landscape) {

}
Meta Viewport Tag
Javascript

Mobile browsers have device-specific javascript events that you are
able to hook into:
    device rotation
    touch (different from click)

Caveat: these are not consistent between mobile safari and webview
in iOS apps.

window.addEventListener('orientationchange' in window ?
'orientationchange' : 'resize', foo, false);

document.body.className =
  orientation % 180 == 0 ? 'vertical' : 'horizontal';
Javascript

Don't use JS libraries, unless you really need to.
Standard JS is reliable.
iScroll JS if you have to to use custom scrolling
RapahelJS for SVG and graphics

Mobile browsers have device-specific JavaScript events that you are
able to hook into:
    device rotation
    touch (different from click)
Backend / AJAX

The back end is going to be pretty much identical.

All of the dynamic data, whether you have a web or native
app, is likely going to be piped over http.
DEPLOY!
Questions?

More Related Content

KEY
Native Device vs. Mobile Web Applications
PPTX
Mobile Best Practices
PDF
Hooray Icon Fonts! Artifact Conference
PDF
Hooray Icon Fonts workshop
PDF
The Mobile Platform World
PDF
All The Screens: Cross Platform Design Strategies
KEY
Responsive Design & Mobile First
PPTX
Information Architecture in Mobile
Native Device vs. Mobile Web Applications
Mobile Best Practices
Hooray Icon Fonts! Artifact Conference
Hooray Icon Fonts workshop
The Mobile Platform World
All The Screens: Cross Platform Design Strategies
Responsive Design & Mobile First
Information Architecture in Mobile

What's hot (20)

PDF
CSS3 Media Queries: Mobile Elixir or CSS Snake Oil
PPTX
Consider Starting Small
PPTX
WebDU Keynote
PPTX
The Future of HTML5 Motion Design
PPT
Jason.O Keefe.Genuitec.Presentation.Final
PPTX
Going native - Taking desktop applications to mobile devices
KEY
SimpleK12 Webinar - You Got an iPad, Now What? 031312
PDF
Creating mobile apps without native code
PDF
Mobile First Responsive Design
PPTX
Why front-end matters in 2019
KEY
Adobe and Modern Web Development
PDF
移动端Web app开发
PPT
Mobile Information Architecture
PPTX
iPad App-Citement!
PPTX
Wave training
PPTX
JavaScript
PPSX
Curling up with your kindle fire (fire
KEY
HTML5 로 iPhone App 만들기
PPSX
Getting Comfortable With Your iPad
PDF
Responsive Web Design & Workflows for Todays Web (THE UX-MEN at The Hive, Hon...
CSS3 Media Queries: Mobile Elixir or CSS Snake Oil
Consider Starting Small
WebDU Keynote
The Future of HTML5 Motion Design
Jason.O Keefe.Genuitec.Presentation.Final
Going native - Taking desktop applications to mobile devices
SimpleK12 Webinar - You Got an iPad, Now What? 031312
Creating mobile apps without native code
Mobile First Responsive Design
Why front-end matters in 2019
Adobe and Modern Web Development
移动端Web app开发
Mobile Information Architecture
iPad App-Citement!
Wave training
JavaScript
Curling up with your kindle fire (fire
HTML5 로 iPhone App 만들기
Getting Comfortable With Your iPad
Responsive Web Design & Workflows for Todays Web (THE UX-MEN at The Hive, Hon...
Ad

Viewers also liked (20)

PPTX
Método de Ensino para criatividade
PPTX
Iv'2012 brand map
PPT
zadacha3
PDF
Sf Caching Techniques
PPT
Dispositivas
PPT
Arachnid
PPT
Busi Anthonyclags Final2003
PDF
Trg B2B and Social Media
ODP
Dexma project plm
PDF
Your Skin Is Not The Edge Of You
PDF
Kshitij Jewels Fashion Earrings
PPT
XI UEEF
PDF
Listening for a living
PPTX
#edutech: de les eines a la perspectiva PLE
PPTX
Pesquisa e Ensino na Era Digital
PPTX
El sexenni democràtic
PPT
Learning analytics MBO Onderwijs
PDF
Franquias 2011 web
PDF
Branding for a Cause
PPTX
Comparing US and Spanish student teachers' perceptions on Social Media
Método de Ensino para criatividade
Iv'2012 brand map
zadacha3
Sf Caching Techniques
Dispositivas
Arachnid
Busi Anthonyclags Final2003
Trg B2B and Social Media
Dexma project plm
Your Skin Is Not The Edge Of You
Kshitij Jewels Fashion Earrings
XI UEEF
Listening for a living
#edutech: de les eines a la perspectiva PLE
Pesquisa e Ensino na Era Digital
El sexenni democràtic
Learning analytics MBO Onderwijs
Franquias 2011 web
Branding for a Cause
Comparing US and Spanish student teachers' perceptions on Social Media
Ad

Similar to Cm i padwebdev_lunch_learn (20)

PPTX
Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...
PDF
Dreamweaver CS6, jQuery, PhoneGap, mobile design
PPTX
An introduction to html5 by Devs
PPT
Responsive web design & mobile web development - a technical and business app...
PPT
Skill Session - Web Multi Device
PDF
Angular js mobile jsday 2014 - Verona 14 may
KEY
Fake it 'til you make it
KEY
Philly ete-2011
PDF
Simple mobile Websites
KEY
How to build a mobile website with Drupal?
KEY
HTML5 apps for iOS (and probably beyond)
PPTX
3 Approaches to Mobile - An A to Z Primer.
PDF
An introduction to Titanium
PDF
Cordova and PhoneGap Insights
PPSX
Responsive Web Design: Tips and Tricks
PPTX
Building a Simple Mobile-optimized Web App Using the jQuery Mobile Framework
KEY
Mobile html5 v2
KEY
Introduction to Flex Hero for Mobile Devices
PDF
Mobile App Development
PPTX
Top Ten Tips for HTML5/Mobile Web Development
Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...
Dreamweaver CS6, jQuery, PhoneGap, mobile design
An introduction to html5 by Devs
Responsive web design & mobile web development - a technical and business app...
Skill Session - Web Multi Device
Angular js mobile jsday 2014 - Verona 14 may
Fake it 'til you make it
Philly ete-2011
Simple mobile Websites
How to build a mobile website with Drupal?
HTML5 apps for iOS (and probably beyond)
3 Approaches to Mobile - An A to Z Primer.
An introduction to Titanium
Cordova and PhoneGap Insights
Responsive Web Design: Tips and Tricks
Building a Simple Mobile-optimized Web App Using the jQuery Mobile Framework
Mobile html5 v2
Introduction to Flex Hero for Mobile Devices
Mobile App Development
Top Ten Tips for HTML5/Mobile Web Development

More from Critical Mass (20)

PPTX
CES Tech 2014: Opportunities & Challenges
PDF
#STORYTOOLKIT: Hollywood's Storytelling Tips & Tricks Revealed
PDF
Campaigns to Commitment: Social Media, Brands & Long Ideas
PDF
LinkedIn: An Evolving Platform for Big Brands
PDF
Cultural Impact on Digital Design
PDF
Google+ For Brands in 2013
PDF
Social Matters: What Your Brand Needs to Know About Facebook's Latest Tweaks
PDF
The Future of Retail: Shopping Mobilized
PDF
Big Data KPIs
PDF
Adaptive Brands
PDF
How to create a first-class content audit: What Lara Croft and the Super Mari...
PDF
Social Storytelling: Creating and Curating Content Strategies That Work
PPTX
Connecting with the Fluid Consumer: iStrategy 2012
PPTX
A Do-It-Yourself Guide toMultichannel Consumer ExperiencesFrom DIY to DIWT (D...
PPT
Social Currency
KEY
Nissan + CM Mobile Strategy, Mobile University 2011
PPT
Getting to social roi
PDF
Marketers guide to digital publishing
PDF
3 Web Measurement Problems, Solved
PPT
SEO- Obstacles, Opportunities & the Future
CES Tech 2014: Opportunities & Challenges
#STORYTOOLKIT: Hollywood's Storytelling Tips & Tricks Revealed
Campaigns to Commitment: Social Media, Brands & Long Ideas
LinkedIn: An Evolving Platform for Big Brands
Cultural Impact on Digital Design
Google+ For Brands in 2013
Social Matters: What Your Brand Needs to Know About Facebook's Latest Tweaks
The Future of Retail: Shopping Mobilized
Big Data KPIs
Adaptive Brands
How to create a first-class content audit: What Lara Croft and the Super Mari...
Social Storytelling: Creating and Curating Content Strategies That Work
Connecting with the Fluid Consumer: iStrategy 2012
A Do-It-Yourself Guide toMultichannel Consumer ExperiencesFrom DIY to DIWT (D...
Social Currency
Nissan + CM Mobile Strategy, Mobile University 2011
Getting to social roi
Marketers guide to digital publishing
3 Web Measurement Problems, Solved
SEO- Obstacles, Opportunities & the Future

Cm i padwebdev_lunch_learn

  • 1. iPad Web Development A magical and revolutionary presentation December 13, 2010 By Abraham Velazquez & Alex Zelenskiy © 2010 Critical Mass, Inc. All Rights Reserved
  • 2. Native App vs. Web App Objective C + APIs/Backend HTML5/CSS3/JS + Backend Higher Cost ≈ 3-5x Considerably lower cost because they are more common Native does more, it's faster/smoother languages App Store Promotion Instant updates Update require apple approval Native does more, is faster/smoother Native sits on the device Deployed online and viewed via safari or pulled into application wrapper Native is best when you need to cache/store a lot of content that does No internet, no app. There are some not change. caching options, but limited. Access to all iOS APIs Access to Limited APIs
  • 3. Web Apps on iPad vs. iPhone vs. Android All 3 use webkit... but! iPad iPhone Android 320x480 240x640 1024x768 640x960 360x640 APIs: Location, 320x480 Orientation, 480x800 Accelerometer, Tap APIs: Location, 600x1024 (Tab) Targets and swipes Orientation, Accelerometer, Tap APIs: Location, Video, Local Storage Targets and swipes Orientation, Accelerometer, CSS3 Fonts Video, Local Storage Camera CSS3 Fonts Video, Local Storage Flash! (Kinda) Poor Font Support
  • 4. iDevices: stop worrying about this stuff! Reliable Layouts (IE6 is dead) Great CSS3 Support because it's the almighty WebKit Flash mobile is dead (Kinda) Mobile Video is standard and reliable Hover events, there is no hover for touch.
  • 5. Start worrying about this, though. 1. Animation/transition performance Transitions are possible, but use wisely. To many will cause poor performance 2. Slow Internet speed Don't overload with high-res images or non-optimized video. Use progressive downloading 3. No fixed positioning No toolbars at top of pages, unless you use a library 4. Need to pay attention how content is being served Web view and mobile safari do not fire the same events, for example. 6. Two screen orientations Design for landscape and portrait How will content re-flow based on position. Headers shrink down, Sidebars become footers
  • 6. Best Practices: Design Your finger is 30 pixels wide! (60pixels on iPhone 4) Give tappable elements in your app a target area of at least 44 x 44 pixels. Keep 12ish pixels between navigation elements (double on iPhone 4). Stick to native styles where ever possible Keep it simple! What are the bare essentials? Test both, in Simulator and load JPG on Device
  • 7. Best Practices 3: UI Keep in mind where users hands are going to be: iPhone uses a bottom nav iPad uses split view
  • 10. Best Practices: Development Keep requests down (5-10 per page) No Faux CSS Elements :before or :after Anything that causes dom redraws is bad Use classes for everything (Turn then on/off when you need them) CSS3 is good, but go easy on it Optimize all your images Use CSS/Image sprites, wisely Canvas and SVG elements are pretty good
  • 11. HTML 5 Video tags are good. Some of the new HTML form attributes will trigger the alternate screen keyboards on mobile devices. This is really handy.
  • 12. CSS3 background-color: rgba(180, 180, 144, 0.6); opacity: .5; text-shadow: 1px 1px 3px #888; background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #444444),color-stop(1, #999999)); -webkit-border-radius: 12px; -webkit-box-shadow: 0px 0px 4px #ffffff; -webkit-transition: all 1s ease-in-out; -webkit-transition-property: opacity, left; -webkit-transition-duration: 2s, 4s; transform:skew(35deg); transform:scale(1,0.5); transform:rotate(45deg); transform:translate(10px, 20px);
  • 13. CSS3 You can do this... but don'!
  • 14. Font Support - Use it! iosfonts.com list of native fonts on iPad and iPhone Typekit works on everything Google font directory now works on everything. Use something like fontsquirrel.com to generate fonts in the correct formats. Check font licenses before including them. Older iOS versions are at a (50%) risk of crashing when you bind different @font-face weights to the same typeface.
  • 15. Mobile Webkit vs. Webkit Mobile webkit is a lot like desktop webkit, except it runs on slower hardware, tries to scale everything to a tiny screen*, and does not remember what position:fixed is. *unless you tell it not to through the use of meta tags: <meta name="viewport" content="width=device-width, initial-scale=1.0; maximum-scale=1.0;">
  • 16. Tricks There are some undocumented features of webkit that produce desired effects. For example, translate3d can be exploited for smoother rendering: -webkit-transform: translate3d(0,0,0) Unfortunately, stuff like this is not a feature and could be "fixed" by apple at any time.
  • 17. CSS Media Queries <link rel="stylesheet" media="all and (orientation: portrait)" href="portrait.css"> <link rel="stylesheet" media="all and (orientation: landscape)" href="landscape.css"> @media only screen and (max-device-width: 1024px) and (orientation:portrait) { } @media only screen and (max-device-width: 1024px) and (orientation:landscape) { }
  • 19. Javascript Mobile browsers have device-specific javascript events that you are able to hook into: device rotation touch (different from click) Caveat: these are not consistent between mobile safari and webview in iOS apps. window.addEventListener('orientationchange' in window ? 'orientationchange' : 'resize', foo, false); document.body.className = orientation % 180 == 0 ? 'vertical' : 'horizontal';
  • 20. Javascript Don't use JS libraries, unless you really need to. Standard JS is reliable. iScroll JS if you have to to use custom scrolling RapahelJS for SVG and graphics Mobile browsers have device-specific JavaScript events that you are able to hook into: device rotation touch (different from click)
  • 21. Backend / AJAX The back end is going to be pretty much identical. All of the dynamic data, whether you have a web or native app, is likely going to be piped over http.