SlideShare a Scribd company logo
1 of 23
Download to read offline
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

What's hot

CSS3 Media Queries: Mobile Elixir or CSS Snake Oil
CSS3 Media Queries: Mobile Elixir or CSS Snake OilCSS3 Media Queries: Mobile Elixir or CSS Snake Oil
CSS3 Media Queries: Mobile Elixir or CSS Snake Oiljameswillweb
 
Consider Starting Small
Consider Starting SmallConsider Starting Small
Consider Starting SmallAndrew Smith
 
The Future of HTML5 Motion Design
The Future of HTML5 Motion DesignThe Future of HTML5 Motion Design
The Future of HTML5 Motion DesignTerry Ryan
 
Jason.O Keefe.Genuitec.Presentation.Final
Jason.O Keefe.Genuitec.Presentation.FinalJason.O Keefe.Genuitec.Presentation.Final
Jason.O Keefe.Genuitec.Presentation.FinalAjax Experience 2009
 
Going native - Taking desktop applications to mobile devices
Going native - Taking desktop applications to mobile devicesGoing native - Taking desktop applications to mobile devices
Going native - Taking desktop applications to mobile devicesTanzer Consulting
 
SimpleK12 Webinar - You Got an iPad, Now What? 031312
SimpleK12 Webinar - You Got an iPad, Now What? 031312SimpleK12 Webinar - You Got an iPad, Now What? 031312
SimpleK12 Webinar - You Got an iPad, Now What? 031312Christopher Casal
 
Creating mobile apps without native code
Creating mobile apps without native codeCreating mobile apps without native code
Creating mobile apps without native codeJoakim Kemeny
 
Mobile First Responsive Design
Mobile First Responsive DesignMobile First Responsive Design
Mobile First Responsive DesignJason Grigsby
 
Why front-end matters in 2019
Why front-end matters in 2019Why front-end matters in 2019
Why front-end matters in 2019Timmy Kokke
 
Getting Familiar with Adobe Edge Tools and Services
Getting Familiar with Adobe Edge Tools and ServicesGetting Familiar with Adobe Edge Tools and Services
Getting Familiar with Adobe Edge Tools and ServicesJoseph Labrecque
 
Adobe and Modern Web Development
Adobe and Modern Web DevelopmentAdobe and Modern Web Development
Adobe and Modern Web DevelopmentTerry Ryan
 
移动端Web app开发
移动端Web app开发移动端Web app开发
移动端Web app开发Zhang Xiaoxue
 
Mobile Information Architecture
Mobile Information ArchitectureMobile Information Architecture
Mobile Information ArchitectureChristian Crumlish
 
Wave training
Wave trainingWave training
Wave trainingSean Yo
 
Curling up with your kindle fire (fire
Curling up with your kindle fire (fireCurling up with your kindle fire (fire
Curling up with your kindle fire (fireKathy Petlewski
 
HTML5 로 iPhone App 만들기
HTML5 로 iPhone App 만들기HTML5 로 iPhone App 만들기
HTML5 로 iPhone App 만들기JungHyuk Kwon
 
Getting Comfortable With Your iPad
Getting Comfortable With Your iPadGetting Comfortable With Your iPad
Getting Comfortable With Your iPadKathy Petlewski
 

What's hot (20)

CSS3 Media Queries: Mobile Elixir or CSS Snake Oil
CSS3 Media Queries: Mobile Elixir or CSS Snake OilCSS3 Media Queries: Mobile Elixir or CSS Snake Oil
CSS3 Media Queries: Mobile Elixir or CSS Snake Oil
 
Consider Starting Small
Consider Starting SmallConsider Starting Small
Consider Starting Small
 
WebDU Keynote
WebDU KeynoteWebDU Keynote
WebDU Keynote
 
The Future of HTML5 Motion Design
The Future of HTML5 Motion DesignThe Future of HTML5 Motion Design
The Future of HTML5 Motion Design
 
Jason.O Keefe.Genuitec.Presentation.Final
Jason.O Keefe.Genuitec.Presentation.FinalJason.O Keefe.Genuitec.Presentation.Final
Jason.O Keefe.Genuitec.Presentation.Final
 
Going native - Taking desktop applications to mobile devices
Going native - Taking desktop applications to mobile devicesGoing native - Taking desktop applications to mobile devices
Going native - Taking desktop applications to mobile devices
 
SimpleK12 Webinar - You Got an iPad, Now What? 031312
SimpleK12 Webinar - You Got an iPad, Now What? 031312SimpleK12 Webinar - You Got an iPad, Now What? 031312
SimpleK12 Webinar - You Got an iPad, Now What? 031312
 
Creating mobile apps without native code
Creating mobile apps without native codeCreating mobile apps without native code
Creating mobile apps without native code
 
Mobile First Responsive Design
Mobile First Responsive DesignMobile First Responsive Design
Mobile First Responsive Design
 
Why front-end matters in 2019
Why front-end matters in 2019Why front-end matters in 2019
Why front-end matters in 2019
 
Getting Familiar with Adobe Edge Tools and Services
Getting Familiar with Adobe Edge Tools and ServicesGetting Familiar with Adobe Edge Tools and Services
Getting Familiar with Adobe Edge Tools and Services
 
Adobe and Modern Web Development
Adobe and Modern Web DevelopmentAdobe and Modern Web Development
Adobe and Modern Web Development
 
移动端Web app开发
移动端Web app开发移动端Web app开发
移动端Web app开发
 
Mobile Information Architecture
Mobile Information ArchitectureMobile Information Architecture
Mobile Information Architecture
 
iPad App-Citement!
iPad App-Citement!iPad App-Citement!
iPad App-Citement!
 
Wave training
Wave trainingWave training
Wave training
 
JavaScript
JavaScriptJavaScript
JavaScript
 
Curling up with your kindle fire (fire
Curling up with your kindle fire (fireCurling up with your kindle fire (fire
Curling up with your kindle fire (fire
 
HTML5 로 iPhone App 만들기
HTML5 로 iPhone App 만들기HTML5 로 iPhone App 만들기
HTML5 로 iPhone App 만들기
 
Getting Comfortable With Your iPad
Getting Comfortable With Your iPadGetting Comfortable With Your iPad
Getting Comfortable With Your iPad
 

Viewers also liked

UBD - Użytkowanie baz danych wprowadzenie cz.1
UBD - Użytkowanie baz danych wprowadzenie cz.1UBD - Użytkowanie baz danych wprowadzenie cz.1
UBD - Użytkowanie baz danych wprowadzenie cz.1EwaB
 
Technologia Informacyjna - cwiczenia, internet-poczta
Technologia Informacyjna - cwiczenia, internet-pocztaTechnologia Informacyjna - cwiczenia, internet-poczta
Technologia Informacyjna - cwiczenia, internet-pocztaEwaB
 
Método de Ensino para criatividade
Método de Ensino para criatividadeMétodo de Ensino para criatividade
Método de Ensino para criatividadeUFPE
 
Maria - kwiaty
Maria - kwiatyMaria - kwiaty
Maria - kwiatyEwaB
 
Iv'2012 brand map
Iv'2012 brand mapIv'2012 brand map
Iv'2012 brand mapUFPE
 
Sf Caching Techniques
Sf Caching TechniquesSf Caching Techniques
Sf Caching Techniquesguest08ead4
 
Dispositivas
DispositivasDispositivas
Dispositivastamara17
 
Busi Anthonyclags Final2003
Busi Anthonyclags Final2003Busi Anthonyclags Final2003
Busi Anthonyclags Final2003glbtalms
 
Trg B2B and Social Media
Trg B2B and Social MediaTrg B2B and Social Media
Trg B2B and Social MediaJaci Russo
 
Dexma project plm
Dexma project plmDexma project plm
Dexma project plmDEXMA Labs
 
Your Skin Is Not The Edge Of You
Your Skin Is Not The Edge Of YouYour Skin Is Not The Edge Of You
Your Skin Is Not The Edge Of YouRichard Sandford
 
Kshitij Jewels Fashion Earrings
Kshitij Jewels Fashion EarringsKshitij Jewels Fashion Earrings
Kshitij Jewels Fashion Earringsrachanasalvi
 
Tydzień z Internetem 2016
Tydzień z Internetem 2016Tydzień z Internetem 2016
Tydzień z Internetem 2016EwaB
 
Listening for a living
Listening for a livingListening for a living
Listening for a livingRod Nicolson
 
#edutech: de les eines a la perspectiva PLE
#edutech: de les eines a la perspectiva PLE#edutech: de les eines a la perspectiva PLE
#edutech: de les eines a la perspectiva PLEGemma Tur
 
Pesquisa e Ensino na Era Digital
Pesquisa e Ensino na Era DigitalPesquisa e Ensino na Era Digital
Pesquisa e Ensino na Era DigitalUFPE
 

Viewers also liked (20)

UBD - Użytkowanie baz danych wprowadzenie cz.1
UBD - Użytkowanie baz danych wprowadzenie cz.1UBD - Użytkowanie baz danych wprowadzenie cz.1
UBD - Użytkowanie baz danych wprowadzenie cz.1
 
Technologia Informacyjna - cwiczenia, internet-poczta
Technologia Informacyjna - cwiczenia, internet-pocztaTechnologia Informacyjna - cwiczenia, internet-poczta
Technologia Informacyjna - cwiczenia, internet-poczta
 
Método de Ensino para criatividade
Método de Ensino para criatividadeMétodo de Ensino para criatividade
Método de Ensino para criatividade
 
Maria - kwiaty
Maria - kwiatyMaria - kwiaty
Maria - kwiaty
 
Iv'2012 brand map
Iv'2012 brand mapIv'2012 brand map
Iv'2012 brand map
 
zadacha3
zadacha3zadacha3
zadacha3
 
Sf Caching Techniques
Sf Caching TechniquesSf Caching Techniques
Sf Caching Techniques
 
Dispositivas
DispositivasDispositivas
Dispositivas
 
Arachnid
ArachnidArachnid
Arachnid
 
Busi Anthonyclags Final2003
Busi Anthonyclags Final2003Busi Anthonyclags Final2003
Busi Anthonyclags Final2003
 
Trg B2B and Social Media
Trg B2B and Social MediaTrg B2B and Social Media
Trg B2B and Social Media
 
Dexma project plm
Dexma project plmDexma project plm
Dexma project plm
 
Your Skin Is Not The Edge Of You
Your Skin Is Not The Edge Of YouYour Skin Is Not The Edge Of You
Your Skin Is Not The Edge Of You
 
Kshitij Jewels Fashion Earrings
Kshitij Jewels Fashion EarringsKshitij Jewels Fashion Earrings
Kshitij Jewels Fashion Earrings
 
XI UEEF
XI UEEFXI UEEF
XI UEEF
 
Tydzień z Internetem 2016
Tydzień z Internetem 2016Tydzień z Internetem 2016
Tydzień z Internetem 2016
 
Listening for a living
Listening for a livingListening for a living
Listening for a living
 
#edutech: de les eines a la perspectiva PLE
#edutech: de les eines a la perspectiva PLE#edutech: de les eines a la perspectiva PLE
#edutech: de les eines a la perspectiva PLE
 
Pesquisa e Ensino na Era Digital
Pesquisa e Ensino na Era DigitalPesquisa e Ensino na Era Digital
Pesquisa e Ensino na Era Digital
 
El sexenni democràtic
El sexenni democràticEl sexenni democràtic
El sexenni democràtic
 

Similar to Cm i padwebdev_lunch_learn

Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...
Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...
Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...Esri Nederland
 
Dreamweaver CS6, jQuery, PhoneGap, mobile design
Dreamweaver CS6, jQuery, PhoneGap, mobile designDreamweaver CS6, jQuery, PhoneGap, mobile design
Dreamweaver CS6, jQuery, PhoneGap, mobile designDee Sadler
 
An introduction to html5 by Devs
An introduction to html5 by DevsAn introduction to html5 by Devs
An introduction to html5 by DevsDebidatta Satapathy
 
Responsive web design & mobile web development - a technical and business app...
Responsive web design & mobile web development - a technical and business app...Responsive web design & mobile web development - a technical and business app...
Responsive web design & mobile web development - a technical and business app...Atos_Worldline
 
Skill Session - Web Multi Device
Skill Session - Web Multi DeviceSkill Session - Web Multi Device
Skill Session - Web Multi Devicefilirom1
 
Angular js mobile jsday 2014 - Verona 14 may
Angular js mobile   jsday 2014 - Verona 14 mayAngular js mobile   jsday 2014 - Verona 14 may
Angular js mobile jsday 2014 - Verona 14 mayLuciano Amodio
 
Fake it 'til you make it
Fake it 'til you make itFake it 'til you make it
Fake it 'til you make itJonathan Snook
 
Philly ete-2011
Philly ete-2011Philly ete-2011
Philly ete-2011davyjones
 
How to build a mobile website with Drupal?
How to build a mobile website with Drupal?How to build a mobile website with Drupal?
How to build a mobile website with Drupal?LEKTUM
 
HTML5 apps for iOS (and probably beyond)
HTML5 apps for iOS (and probably beyond)HTML5 apps for iOS (and probably beyond)
HTML5 apps for iOS (and probably beyond)Andi Farr
 
3 Approaches to Mobile - An A to Z Primer.
3 Approaches to Mobile - An A to Z Primer.3 Approaches to Mobile - An A to Z Primer.
3 Approaches to Mobile - An A to Z Primer.agup2009
 
An introduction to Titanium
An introduction to TitaniumAn introduction to Titanium
An introduction to TitaniumGraham Weldon
 
Cordova and PhoneGap Insights
Cordova and PhoneGap InsightsCordova and PhoneGap Insights
Cordova and PhoneGap InsightsMonaca
 
Responsive Web Design: Tips and Tricks
Responsive Web Design: Tips and TricksResponsive Web Design: Tips and Tricks
Responsive Web Design: Tips and TricksGautam Krishnan
 
Building a Simple Mobile-optimized Web App Using the jQuery Mobile Framework
Building a Simple Mobile-optimized Web App Using the jQuery Mobile FrameworkBuilding a Simple Mobile-optimized Web App Using the jQuery Mobile Framework
Building a Simple Mobile-optimized Web App Using the jQuery Mobile FrameworkSt. Petersburg College
 
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
 
Mobile App Development
Mobile App DevelopmentMobile App Development
Mobile App DevelopmentChris Morrell
 
Top Ten Tips for HTML5/Mobile Web Development
Top Ten Tips for HTML5/Mobile Web DevelopmentTop Ten Tips for HTML5/Mobile Web Development
Top Ten Tips for HTML5/Mobile Web DevelopmentSimon Guest
 

Similar to Cm i padwebdev_lunch_learn (20)

Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...
Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...
Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...
 
Dreamweaver CS6, jQuery, PhoneGap, mobile design
Dreamweaver CS6, jQuery, PhoneGap, mobile designDreamweaver CS6, jQuery, PhoneGap, mobile design
Dreamweaver CS6, jQuery, PhoneGap, mobile design
 
An introduction to html5 by Devs
An introduction to html5 by DevsAn introduction to html5 by Devs
An introduction to html5 by Devs
 
Responsive web design & mobile web development - a technical and business app...
Responsive web design & mobile web development - a technical and business app...Responsive web design & mobile web development - a technical and business app...
Responsive web design & mobile web development - a technical and business app...
 
Skill Session - Web Multi Device
Skill Session - Web Multi DeviceSkill Session - Web Multi Device
Skill Session - Web Multi Device
 
Angular js mobile jsday 2014 - Verona 14 may
Angular js mobile   jsday 2014 - Verona 14 mayAngular js mobile   jsday 2014 - Verona 14 may
Angular js mobile jsday 2014 - Verona 14 may
 
Fake it 'til you make it
Fake it 'til you make itFake it 'til you make it
Fake it 'til you make it
 
Philly ete-2011
Philly ete-2011Philly ete-2011
Philly ete-2011
 
Simple mobile Websites
Simple mobile WebsitesSimple mobile Websites
Simple mobile Websites
 
How to build a mobile website with Drupal?
How to build a mobile website with Drupal?How to build a mobile website with Drupal?
How to build a mobile website with Drupal?
 
HTML5 apps for iOS (and probably beyond)
HTML5 apps for iOS (and probably beyond)HTML5 apps for iOS (and probably beyond)
HTML5 apps for iOS (and probably beyond)
 
3 Approaches to Mobile - An A to Z Primer.
3 Approaches to Mobile - An A to Z Primer.3 Approaches to Mobile - An A to Z Primer.
3 Approaches to Mobile - An A to Z Primer.
 
An introduction to Titanium
An introduction to TitaniumAn introduction to Titanium
An introduction to Titanium
 
Cordova and PhoneGap Insights
Cordova and PhoneGap InsightsCordova and PhoneGap Insights
Cordova and PhoneGap Insights
 
Responsive Web Design: Tips and Tricks
Responsive Web Design: Tips and TricksResponsive Web Design: Tips and Tricks
Responsive Web Design: Tips and Tricks
 
Building a Simple Mobile-optimized Web App Using the jQuery Mobile Framework
Building a Simple Mobile-optimized Web App Using the jQuery Mobile FrameworkBuilding a Simple Mobile-optimized Web App Using the jQuery Mobile Framework
Building a Simple Mobile-optimized Web App Using the jQuery Mobile Framework
 
Mobile html5 v2
Mobile html5 v2Mobile html5 v2
Mobile html5 v2
 
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
 
Mobile App Development
Mobile App DevelopmentMobile App Development
Mobile App Development
 
Top Ten Tips for HTML5/Mobile Web Development
Top Ten Tips for HTML5/Mobile Web DevelopmentTop Ten Tips for HTML5/Mobile Web Development
Top Ten Tips for HTML5/Mobile Web Development
 

More from Critical Mass

CES Tech 2014: Opportunities & Challenges
CES Tech 2014: Opportunities & Challenges CES Tech 2014: Opportunities & Challenges
CES Tech 2014: Opportunities & Challenges Critical Mass
 
#STORYTOOLKIT: Hollywood's Storytelling Tips & Tricks Revealed
#STORYTOOLKIT: Hollywood's Storytelling Tips & Tricks Revealed #STORYTOOLKIT: Hollywood's Storytelling Tips & Tricks Revealed
#STORYTOOLKIT: Hollywood's Storytelling Tips & Tricks Revealed Critical Mass
 
Campaigns to Commitment: Social Media, Brands & Long Ideas
Campaigns to Commitment: Social Media, Brands & Long IdeasCampaigns to Commitment: Social Media, Brands & Long Ideas
Campaigns to Commitment: Social Media, Brands & Long IdeasCritical Mass
 
LinkedIn: An Evolving Platform for Big Brands
LinkedIn:  An Evolving Platform for Big BrandsLinkedIn:  An Evolving Platform for Big Brands
LinkedIn: An Evolving Platform for Big BrandsCritical Mass
 
Cultural Impact on Digital Design
Cultural Impact on Digital DesignCultural Impact on Digital Design
Cultural Impact on Digital DesignCritical Mass
 
Google+ For Brands in 2013
Google+ For Brands in 2013Google+ For Brands in 2013
Google+ For Brands in 2013Critical Mass
 
Social Matters: What Your Brand Needs to Know About Facebook's Latest Tweaks
Social Matters: What Your Brand Needs to Know About Facebook's Latest TweaksSocial Matters: What Your Brand Needs to Know About Facebook's Latest Tweaks
Social Matters: What Your Brand Needs to Know About Facebook's Latest TweaksCritical Mass
 
The Future of Retail: Shopping Mobilized
The Future of Retail: Shopping MobilizedThe Future of Retail: Shopping Mobilized
The Future of Retail: Shopping MobilizedCritical Mass
 
How to create a first-class content audit: What Lara Croft and the Super Mari...
How to create a first-class content audit: What Lara Croft and the Super Mari...How to create a first-class content audit: What Lara Croft and the Super Mari...
How to create a first-class content audit: What Lara Croft and the Super Mari...Critical Mass
 
Social Storytelling: Creating and Curating Content Strategies That Work
Social Storytelling: Creating and Curating Content Strategies That WorkSocial Storytelling: Creating and Curating Content Strategies That Work
Social Storytelling: Creating and Curating Content Strategies That WorkCritical Mass
 
Connecting with the Fluid Consumer: iStrategy 2012
Connecting with the Fluid Consumer: iStrategy 2012Connecting with the Fluid Consumer: iStrategy 2012
Connecting with the Fluid Consumer: iStrategy 2012Critical Mass
 
A Do-It-Yourself Guide toMultichannel Consumer ExperiencesFrom DIY to DIWT (D...
A Do-It-Yourself Guide toMultichannel Consumer ExperiencesFrom DIY to DIWT (D...A Do-It-Yourself Guide toMultichannel Consumer ExperiencesFrom DIY to DIWT (D...
A Do-It-Yourself Guide toMultichannel Consumer ExperiencesFrom DIY to DIWT (D...Critical Mass
 
Nissan + CM Mobile Strategy, Mobile University 2011
Nissan + CM Mobile Strategy, Mobile University 2011Nissan + CM Mobile Strategy, Mobile University 2011
Nissan + CM Mobile Strategy, Mobile University 2011Critical Mass
 
Getting to social roi
Getting to social roiGetting to social roi
Getting to social roiCritical Mass
 
Marketers guide to digital publishing
Marketers guide to digital publishingMarketers guide to digital publishing
Marketers guide to digital publishingCritical Mass
 
3 Web Measurement Problems, Solved
3 Web Measurement Problems, Solved3 Web Measurement Problems, Solved
3 Web Measurement Problems, SolvedCritical Mass
 
SEO- Obstacles, Opportunities & the Future
SEO- Obstacles, Opportunities & the FutureSEO- Obstacles, Opportunities & the Future
SEO- Obstacles, Opportunities & the FutureCritical Mass
 

More from Critical Mass (20)

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