SlideShare una empresa de Scribd logo
1 de 51
Descargar para leer sin conexión
July 7th, 2007




  The iPhone:
 What We Know,
What We Don’t Know
                        Christopher Allen

                                            1
Christopher Allen
                    2
The iPhone:
What we Know

               3
The
iPhone:
What We
  Know

                Essential Reading
          <http://developer.apple.com/iphone/>

                                                 4
The
iPhone:
What We
  Know

               Essential Reading
          <http://www.iPhoneWebDev.com/>

                                           5
The
iPhone:
What We
  Know

          Use Web Standards

                              6
The iPhone:
                What We Know
Use Web Standards
  HTML 4.01
  XHTML 1.0
  CSS 2.1 and partial CSS 3.xx
  JavaScript 1.4, including DOM
  support
  AJAX technologies, including
    XMLHTTPRequest
  PDF
  Quicktime



                                  7
The iPhone:
                  What We Know
Things to Avoid
  Flash
  SVG
  Java applets
  Plug-in installation
  Embedded Video
  Custom x.509 certificates




                                 8
The iPhone:
                      What We Know
Follow Web Best Practices
  Separate HTML, CSS and Javascript
  Use well-structured and valid HTML
  Use columns and blocks
    no wide columns or text across page
  Avoid framesets
    Use CSS or iframes
  Size graphic elements appropriately
    don’t rely on browser scaling!
  Use small background images
    tile the pieces
  Don’t send unneeded data
    no 50K javascript where 10% is used


                                          9
The iPhone:
                   What We Know
The Finger is Not a Mouse
  Fingers are bigger and blunter
    Links and buttons need to be larger
    Select 80px by 80px, with
    20px of free space between




                                          10
The iPhone:
                       What We Know
The Finger is Not a Mouse
  Fingers are bigger and blunter
    Links and buttons need to be larger
    Select 80px by 80px, with
    20px of free space between
  Fingers can do more...
    Double tap
    Zoom in and center a block
    Touch and hold
    Display an information bubble
    One or Two-finder Drag
    Move the viewport or pan
    Flick
    Scroll up or down
    Pinch
    Zoom in or out



                                          11
The
iPhone:
What We
  Know

          Design for Size
                            12
The
iPhone:
What We
  Know

          Be careful during user input
                                         13
The
iPhone:
What We
  Know

          Use Columns

                        14
The
iPhone:
What We
  Know

          Use Small Blocks

                             15
The
iPhone:
What We
  Know

          Orientation a Problem
                                  16
The
iPhone:
What We
  Know

          NY Times Portrait

                              17
The
iPhone:
What We
  Know

          NY Times Landscape

                               18
The
iPhone:
What We
  Know

          Viewports, not Windows
                                   19
The iPhone:
                     What We Know
Viewports not Windows
 Use <meta                       Meta Tag
             name=quot;viewportquot;/>
   defaults to width=quot;480quot;
      may look good on NY Times, but
      probably not on your site
   simple (twice portrait)
   width=quot;640quot;
   native portrait
   width=quot;320quot;; initial-scale=”1.0”;
   maximum-scale=”1.0”; minimum-
   scale=”1.0”; user-scalable=”false”
   useful
   width=quot;480quot;; maximum-scale=”0.6667”;
   your mileage may vary—try, try again!



                                            20
The
iPhone:
What We
  Know
          <body style=quot;-webkit-text-size-adjust:nonequot;>
          <body style=quot;-webkit-text-size-adjust:autoquot;>
          <div style=quot;-webkit-text-size-adjust:200%quot;>


                                                         21
The
iPhone:
What We
  Know
            Use tel:, mailto: &
          maps.google.com/maps?
                                  22
The
iPhone:
What We
  Know

          PDF works

                      23
The
iPhone:
What We
  Know

          H.264 with AAC
                           24
The
iPhone:
What We
  Know

          Use Reference Movies
                                 25
The iPhone:
                  What We Know
Identifying the iPhone
  Use CSS if possible
    iPhone <link media=quot;only  screen and
    (max-device-width: 480px)quot;
    href=quot;iPhone.cssquot;
    type=quot;text/cssquot; rel=quot;stylesheetquot; />
    not-iPhone <link  media=quot;screenquot;
    href=quot;fancy.cssquot; type=quot;text/cssquot;
    rel=quot;stylesheetquot; />
    bug: apple suggested doesn’t work
    on IE - workaround in progress
  Use user-agent only as need
    if(navigator.userAgent.indexOf
    ('iPhone') != -1)




                                           26
The iPhone:
                     What We Know
Working events
    window.onload
    formfield.onfocus
    formfield.onclick
    formfield.onblur
    formfield.onchange
    formfield.onmouseout
    formfield.onmouseover
    formfield.onmousedown *
    formfield.onmouseup
    form.onreset
      * triggered but not as expected
  Others of these may work oddly!




                                        27
The iPhone:
                   What We Know
Non-functional events
    window.oncontextmenu
    window.onresize * (partial, buggy)
    window.onscroll
    window.onerror
    formfield.ondblclick
    formfield.onselect
    formfield.onkeydown
    formfield.onkeypress
    formfield.onkeyup
    form.onsubmit
    formfield.onmouseenter
    formfield.onmouseleave
    formfield.onmousemove
    document.onkeydown
    document.onkeypress
    document.onkeyup


                                         28
The iPhone:
                 What We Know
Be aware, also no...
  window.showModalDialog()
  hover styles
  tool tips
  mousedown, instead happens
    right before mouseup




                                29
The iPhone:
                    What We Know
Limit sizes
    HTML, CSS, Javascript <10MB
    don’t send unneeded Javascript
    Javascript execution <5 sec
    GIF, PNG, and TIFF up to 8 MB
    i.e width * height * 4 < 8 MB
    Animated GIF <2MB
    or only first frame shown
    JPG up to 128MB
    will be subsampled internally
    Non-streamed media <10MB




                                     30
The iPhone:
What we’ve Learned

                     31
The
iPhone:
What We’ve
 Learned

                         Examples
             <http://www.iPhoneWebDev.com/examples/>


                                                       32
The iPhone:
           What We’ve Learned
Examples
 viewport samples
 view source bookmarklet
 selecting di!erent keypads
 changing CSS on orientation change
 hiding the URL bar onload
 mailto: with arguments
 iPhone user-agent detection
 event testing



                                      33
The iPhone:
            What We’ve Learned
Exemplars
  gasapp.com
  Joe Hewitt’s navigation demo
     movie.app (in 5 hours o! of nav)
  telemoose
  tada lists
Soon to be Exemplars
  iPhone dragging




                                        34
The iPhone:
              What We’ve Learned
Bugs & Workarounds
 viewportwindow.pageYO!set always 0
   no workaround
 window.resize event irregular
   but there is hack around based on width
 second text entry fails to invoke
    keyboard
   hack using javascript
 tel: tags do not conform to RFC for p
     and w characters
   use non-conforming comma ,
 bare images in safari render on 980px
   use new page




                                             35
The iPhone:
              What We’ve Learned
Discussions
  Four kinds of iPhone web pages
    compatible, friendly, optimized, and web app
  Standard for an iPhone friendly icon
     for directory apps
  What qualities does an exemplar
     iPhone web app have?
  Two finger scrolling
  Development libraries
  Sound in iPhone web games
  Implementing the back button
  Type faces, type sizes
  Debugging javascript, FireBug
  Alpha/Beta testing new web apps


                                                   36
The
iPhone:
What We’ve
 Learned

                         Examples
             <http://www.iPhoneWebDev/examples.com/>


                                                       37
The iPhone:
What we Don’t Know

                     38
The
iPhone:
What We
Don’t Know

                      Open Questions
             <http://barcamp.org/iPhoneDevCampOpenQuestions>


                                                               39
The iPhone:
          What We Don’t Know
Open Questions
 What is the list CSS3 and how
 should we use it?
 What Canvas support is available
 and how much can we do?
 How do we get the URL input panel?
 Are background pages executing?
 Do we know when the browser is
 interrupted by phone call?
 How do we get/set scaling ratio?
 A CSS3 media query that doesn’t
    break IE?
 Persistent storage - can we rely on
    cookies? Any Google Gears?


                                       40
The iPhone:
                What We Don’t Know
Open Questions (continued)
  Without many events, how do we
  make ui widgets
  How do we make two-finger
     scrolling widgets
  How to do animations faster
    size, direction, tricks?
  What does iSafari do when...
    opening .lnk, .web archives
  What does mail do when...
    receiving .vcf (vCard), .m3u, .url .lnk or .web archives
  How best to use PDF and .doc
  OpenID for iPhone?




                                                               41
The
iPhone:
What We
Don’t Know

                      Open Questions
             <http://barcamp.org/iPhoneDevCampOpenQuestions>


                                                               42
iPhoneDevCamp
   Hack-a-Thon

                 43
iPhone
DevCamp
Hack-a-Thon


              MacHack
              (b:1985 d:2003)

                                44
iPhoneDevCamp
               Hack-a-thon
Values
  Contribution
    assisting the commons
    o!ering value
    usefuless
  Sharing
    helping others
    source code available
  Openness
    good questions
    open to people and ideas
    free or open source
  Fun & Cool!
    but we value simplicity & elegance



                                         45
iPhoneDevCamp
              Hack-a-thon
We may give out tickets or smaller
prizes for...
  best question on Open Questions
  best answer on Open Questions
  travelled furthest
  most useless hack
  best looking
  worst looking
  best docs
  most fun




                                     46
iPhoneDevCamp
              Hack-a-thon
Diverse Teams
  Client coders (javascript)
  Server coders (PHP, Perl, Ruby,
  etc.)
  CSS/DHTML
  Artists
  User Interface/Experience
  Testing
  Documentation
  Hardware


                                    47
iPhone
DevCamp
Hack-a-Thon


              Signup by 1pm Sunday
                 <http://barcamp.pbwiki.com/
                   iPhoneDevCampHackAThon>

                                               48
iPhone
DevCamp
Hack-a-Thon



              5 minutes!
                           49
iPhone
DevCamp
Hack-a-Thon           x2        x3



                Hack-a-Thon Demo &
              Contest, Sunday 2pm-5pm
                                        50
<mailto:ChristopherA@iPhoneWebDev.com>


                                         51

Más contenido relacionado

Destacado (20)

Administrativo
AdministrativoAdministrativo
Administrativo
 
E & y
E & yE & y
E & y
 
Mario Benedetti
Mario BenedettiMario Benedetti
Mario Benedetti
 
Untitled Presentation
Untitled PresentationUntitled Presentation
Untitled Presentation
 
Barberen i Sevilla
Barberen i SevillaBarberen i Sevilla
Barberen i Sevilla
 
Taulukko väestöstä 3
Taulukko väestöstä 3Taulukko väestöstä 3
Taulukko väestöstä 3
 
Astley re kelly study
Astley re kelly studyAstley re kelly study
Astley re kelly study
 
Finding the Right Information Governance Solution for IT
Finding the Right Information Governance Solution for ITFinding the Right Information Governance Solution for IT
Finding the Right Information Governance Solution for IT
 
Turbó fokozat
Turbó fokozatTurbó fokozat
Turbó fokozat
 
The annual best EMail
The  annual best EMailThe  annual best EMail
The annual best EMail
 
Baheya hospital - Lasheenstst
Baheya hospital - LasheenststBaheya hospital - Lasheenstst
Baheya hospital - Lasheenstst
 
Do an mini
Do an miniDo an mini
Do an mini
 
D. Ballanti - La definizione dei Fabbisogni Standard
D. Ballanti - La definizione dei Fabbisogni StandardD. Ballanti - La definizione dei Fabbisogni Standard
D. Ballanti - La definizione dei Fabbisogni Standard
 
AREL for discussions
AREL for discussionsAREL for discussions
AREL for discussions
 
Bechtel LeadeR++
Bechtel LeadeR++Bechtel LeadeR++
Bechtel LeadeR++
 
Biplab mandal's birthday ppt.
Biplab mandal's birthday ppt.Biplab mandal's birthday ppt.
Biplab mandal's birthday ppt.
 
Ailyn
AilynAilyn
Ailyn
 
Class 2 Elements of the Universe
Class 2   Elements of the UniverseClass 2   Elements of the Universe
Class 2 Elements of the Universe
 
Avinash-Whawal_Resume
Avinash-Whawal_ResumeAvinash-Whawal_Resume
Avinash-Whawal_Resume
 
Doubters
DoubtersDoubters
Doubters
 

Similar a iPhone Dev Camp Keynote

Developer's got talent iPhone
Developer's got talent iPhoneDeveloper's got talent iPhone
Developer's got talent iPhonePiTechnologies
 
I Phone Developer Introduction By Eschipul
I Phone Developer Introduction By EschipulI Phone Developer Introduction By Eschipul
I Phone Developer Introduction By EschipulEd Schipul
 
SmartPhone Design and Delivery
SmartPhone Design and DeliverySmartPhone Design and Delivery
SmartPhone Design and DeliveryJason Diehl
 
&lt;img src="../i/r_14.png" />
&lt;img src="../i/r_14.png" />&lt;img src="../i/r_14.png" />
&lt;img src="../i/r_14.png" />tutorialsruby
 
wexarts.org iPhone Project: Developer Documentation
wexarts.org iPhone Project: Developer Documentationwexarts.org iPhone Project: Developer Documentation
wexarts.org iPhone Project: Developer Documentationtutorialsruby
 
Vancouver iPhone Meetup 2010 - Touch Interface Design - Kevin Kimmett
Vancouver iPhone Meetup 2010 - Touch Interface Design - Kevin KimmettVancouver iPhone Meetup 2010 - Touch Interface Design - Kevin Kimmett
Vancouver iPhone Meetup 2010 - Touch Interface Design - Kevin KimmettKevin Kimmett
 
Mobile Application Design & Development
Mobile Application Design & DevelopmentMobile Application Design & Development
Mobile Application Design & DevelopmentRonnie Liew
 
Smartphone Reporting Done Smarter
Smartphone Reporting Done SmarterSmartphone Reporting Done Smarter
Smartphone Reporting Done SmarterVictor Hernandez
 
Leverage web technology in a mobile world
Leverage web technology in a mobile worldLeverage web technology in a mobile world
Leverage web technology in a mobile worldDieter Blomme
 
打造你的第一個iPhone APP
打造你的第一個iPhone APP打造你的第一個iPhone APP
打造你的第一個iPhone APP彼得潘 Pan
 
HTML5 로 iPhone App 만들기
HTML5 로 iPhone App 만들기HTML5 로 iPhone App 만들기
HTML5 로 iPhone App 만들기JungHyuk Kwon
 
Introduction to PhoneGap
Introduction to PhoneGapIntroduction to PhoneGap
Introduction to PhoneGapRaymond Camden
 
I phone app develoment ppt
I phone app develoment   pptI phone app develoment   ppt
I phone app develoment pptsagaroceanic11
 
I phone app develoment ppt
I phone app develoment   pptI phone app develoment   ppt
I phone app develoment pptsagaroceanic11
 
iPhone App Dev Overview - Mobile Dev Camp Vietnam 1
iPhone App Dev Overview - Mobile Dev Camp Vietnam 1iPhone App Dev Overview - Mobile Dev Camp Vietnam 1
iPhone App Dev Overview - Mobile Dev Camp Vietnam 1huyzing
 

Similar a iPhone Dev Camp Keynote (20)

Developer's got talent iPhone
Developer's got talent iPhoneDeveloper's got talent iPhone
Developer's got talent iPhone
 
I Phone Developer Introduction By Eschipul
I Phone Developer Introduction By EschipulI Phone Developer Introduction By Eschipul
I Phone Developer Introduction By Eschipul
 
SmartPhone Design and Delivery
SmartPhone Design and DeliverySmartPhone Design and Delivery
SmartPhone Design and Delivery
 
&lt;img src="../i/r_14.png" />
&lt;img src="../i/r_14.png" />&lt;img src="../i/r_14.png" />
&lt;img src="../i/r_14.png" />
 
wexarts.org iPhone Project: Developer Documentation
wexarts.org iPhone Project: Developer Documentationwexarts.org iPhone Project: Developer Documentation
wexarts.org iPhone Project: Developer Documentation
 
Vancouver iPhone Meetup 2010 - Touch Interface Design - Kevin Kimmett
Vancouver iPhone Meetup 2010 - Touch Interface Design - Kevin KimmettVancouver iPhone Meetup 2010 - Touch Interface Design - Kevin Kimmett
Vancouver iPhone Meetup 2010 - Touch Interface Design - Kevin Kimmett
 
The future is hybrid
The future is hybridThe future is hybrid
The future is hybrid
 
Doran-C4L2010
Doran-C4L2010Doran-C4L2010
Doran-C4L2010
 
iPad Academy 2014
iPad Academy 2014iPad Academy 2014
iPad Academy 2014
 
Mobile Application Design & Development
Mobile Application Design & DevelopmentMobile Application Design & Development
Mobile Application Design & Development
 
Smartphone Reporting Done Smarter
Smartphone Reporting Done SmarterSmartphone Reporting Done Smarter
Smartphone Reporting Done Smarter
 
Leverage web technology in a mobile world
Leverage web technology in a mobile worldLeverage web technology in a mobile world
Leverage web technology in a mobile world
 
打造你的第一個iPhone APP
打造你的第一個iPhone APP打造你的第一個iPhone APP
打造你的第一個iPhone APP
 
HTML5 로 iPhone App 만들기
HTML5 로 iPhone App 만들기HTML5 로 iPhone App 만들기
HTML5 로 iPhone App 만들기
 
Web app
Web appWeb app
Web app
 
Web app
Web appWeb app
Web app
 
Introduction to PhoneGap
Introduction to PhoneGapIntroduction to PhoneGap
Introduction to PhoneGap
 
I phone app develoment ppt
I phone app develoment   pptI phone app develoment   ppt
I phone app develoment ppt
 
I phone app develoment ppt
I phone app develoment   pptI phone app develoment   ppt
I phone app develoment ppt
 
iPhone App Dev Overview - Mobile Dev Camp Vietnam 1
iPhone App Dev Overview - Mobile Dev Camp Vietnam 1iPhone App Dev Overview - Mobile Dev Camp Vietnam 1
iPhone App Dev Overview - Mobile Dev Camp Vietnam 1
 

Último

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 

Último (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 

iPhone Dev Camp Keynote

  • 1. July 7th, 2007 The iPhone: What We Know, What We Don’t Know Christopher Allen 1
  • 4. The iPhone: What We Know Essential Reading <http://developer.apple.com/iphone/> 4
  • 5. The iPhone: What We Know Essential Reading <http://www.iPhoneWebDev.com/> 5
  • 6. The iPhone: What We Know Use Web Standards 6
  • 7. The iPhone: What We Know Use Web Standards HTML 4.01 XHTML 1.0 CSS 2.1 and partial CSS 3.xx JavaScript 1.4, including DOM support AJAX technologies, including XMLHTTPRequest PDF Quicktime 7
  • 8. The iPhone: What We Know Things to Avoid Flash SVG Java applets Plug-in installation Embedded Video Custom x.509 certificates 8
  • 9. The iPhone: What We Know Follow Web Best Practices Separate HTML, CSS and Javascript Use well-structured and valid HTML Use columns and blocks no wide columns or text across page Avoid framesets Use CSS or iframes Size graphic elements appropriately don’t rely on browser scaling! Use small background images tile the pieces Don’t send unneeded data no 50K javascript where 10% is used 9
  • 10. The iPhone: What We Know The Finger is Not a Mouse Fingers are bigger and blunter Links and buttons need to be larger Select 80px by 80px, with 20px of free space between 10
  • 11. The iPhone: What We Know The Finger is Not a Mouse Fingers are bigger and blunter Links and buttons need to be larger Select 80px by 80px, with 20px of free space between Fingers can do more... Double tap Zoom in and center a block Touch and hold Display an information bubble One or Two-finder Drag Move the viewport or pan Flick Scroll up or down Pinch Zoom in or out 11
  • 12. The iPhone: What We Know Design for Size 12
  • 13. The iPhone: What We Know Be careful during user input 13
  • 14. The iPhone: What We Know Use Columns 14
  • 15. The iPhone: What We Know Use Small Blocks 15
  • 16. The iPhone: What We Know Orientation a Problem 16
  • 17. The iPhone: What We Know NY Times Portrait 17
  • 18. The iPhone: What We Know NY Times Landscape 18
  • 19. The iPhone: What We Know Viewports, not Windows 19
  • 20. The iPhone: What We Know Viewports not Windows Use <meta Meta Tag name=quot;viewportquot;/> defaults to width=quot;480quot; may look good on NY Times, but probably not on your site simple (twice portrait) width=quot;640quot; native portrait width=quot;320quot;; initial-scale=”1.0”; maximum-scale=”1.0”; minimum- scale=”1.0”; user-scalable=”false” useful width=quot;480quot;; maximum-scale=”0.6667”; your mileage may vary—try, try again! 20
  • 21. The iPhone: What We Know <body style=quot;-webkit-text-size-adjust:nonequot;> <body style=quot;-webkit-text-size-adjust:autoquot;> <div style=quot;-webkit-text-size-adjust:200%quot;> 21
  • 22. The iPhone: What We Know Use tel:, mailto: & maps.google.com/maps? 22
  • 23. The iPhone: What We Know PDF works 23
  • 24. The iPhone: What We Know H.264 with AAC 24
  • 25. The iPhone: What We Know Use Reference Movies 25
  • 26. The iPhone: What We Know Identifying the iPhone Use CSS if possible iPhone <link media=quot;only screen and (max-device-width: 480px)quot; href=quot;iPhone.cssquot; type=quot;text/cssquot; rel=quot;stylesheetquot; /> not-iPhone <link media=quot;screenquot; href=quot;fancy.cssquot; type=quot;text/cssquot; rel=quot;stylesheetquot; /> bug: apple suggested doesn’t work on IE - workaround in progress Use user-agent only as need if(navigator.userAgent.indexOf ('iPhone') != -1) 26
  • 27. The iPhone: What We Know Working events window.onload formfield.onfocus formfield.onclick formfield.onblur formfield.onchange formfield.onmouseout formfield.onmouseover formfield.onmousedown * formfield.onmouseup form.onreset * triggered but not as expected Others of these may work oddly! 27
  • 28. The iPhone: What We Know Non-functional events window.oncontextmenu window.onresize * (partial, buggy) window.onscroll window.onerror formfield.ondblclick formfield.onselect formfield.onkeydown formfield.onkeypress formfield.onkeyup form.onsubmit formfield.onmouseenter formfield.onmouseleave formfield.onmousemove document.onkeydown document.onkeypress document.onkeyup 28
  • 29. The iPhone: What We Know Be aware, also no... window.showModalDialog() hover styles tool tips mousedown, instead happens right before mouseup 29
  • 30. The iPhone: What We Know Limit sizes HTML, CSS, Javascript <10MB don’t send unneeded Javascript Javascript execution <5 sec GIF, PNG, and TIFF up to 8 MB i.e width * height * 4 < 8 MB Animated GIF <2MB or only first frame shown JPG up to 128MB will be subsampled internally Non-streamed media <10MB 30
  • 32. The iPhone: What We’ve Learned Examples <http://www.iPhoneWebDev.com/examples/> 32
  • 33. The iPhone: What We’ve Learned Examples viewport samples view source bookmarklet selecting di!erent keypads changing CSS on orientation change hiding the URL bar onload mailto: with arguments iPhone user-agent detection event testing 33
  • 34. The iPhone: What We’ve Learned Exemplars gasapp.com Joe Hewitt’s navigation demo movie.app (in 5 hours o! of nav) telemoose tada lists Soon to be Exemplars iPhone dragging 34
  • 35. The iPhone: What We’ve Learned Bugs & Workarounds viewportwindow.pageYO!set always 0 no workaround window.resize event irregular but there is hack around based on width second text entry fails to invoke keyboard hack using javascript tel: tags do not conform to RFC for p and w characters use non-conforming comma , bare images in safari render on 980px use new page 35
  • 36. The iPhone: What We’ve Learned Discussions Four kinds of iPhone web pages compatible, friendly, optimized, and web app Standard for an iPhone friendly icon for directory apps What qualities does an exemplar iPhone web app have? Two finger scrolling Development libraries Sound in iPhone web games Implementing the back button Type faces, type sizes Debugging javascript, FireBug Alpha/Beta testing new web apps 36
  • 37. The iPhone: What We’ve Learned Examples <http://www.iPhoneWebDev/examples.com/> 37
  • 38. The iPhone: What we Don’t Know 38
  • 39. The iPhone: What We Don’t Know Open Questions <http://barcamp.org/iPhoneDevCampOpenQuestions> 39
  • 40. The iPhone: What We Don’t Know Open Questions What is the list CSS3 and how should we use it? What Canvas support is available and how much can we do? How do we get the URL input panel? Are background pages executing? Do we know when the browser is interrupted by phone call? How do we get/set scaling ratio? A CSS3 media query that doesn’t break IE? Persistent storage - can we rely on cookies? Any Google Gears? 40
  • 41. The iPhone: What We Don’t Know Open Questions (continued) Without many events, how do we make ui widgets How do we make two-finger scrolling widgets How to do animations faster size, direction, tricks? What does iSafari do when... opening .lnk, .web archives What does mail do when... receiving .vcf (vCard), .m3u, .url .lnk or .web archives How best to use PDF and .doc OpenID for iPhone? 41
  • 42. The iPhone: What We Don’t Know Open Questions <http://barcamp.org/iPhoneDevCampOpenQuestions> 42
  • 43. iPhoneDevCamp Hack-a-Thon 43
  • 44. iPhone DevCamp Hack-a-Thon MacHack (b:1985 d:2003) 44
  • 45. iPhoneDevCamp Hack-a-thon Values Contribution assisting the commons o!ering value usefuless Sharing helping others source code available Openness good questions open to people and ideas free or open source Fun & Cool! but we value simplicity & elegance 45
  • 46. iPhoneDevCamp Hack-a-thon We may give out tickets or smaller prizes for... best question on Open Questions best answer on Open Questions travelled furthest most useless hack best looking worst looking best docs most fun 46
  • 47. iPhoneDevCamp Hack-a-thon Diverse Teams Client coders (javascript) Server coders (PHP, Perl, Ruby, etc.) CSS/DHTML Artists User Interface/Experience Testing Documentation Hardware 47
  • 48. iPhone DevCamp Hack-a-Thon Signup by 1pm Sunday <http://barcamp.pbwiki.com/ iPhoneDevCampHackAThon> 48
  • 50. iPhone DevCamp Hack-a-Thon x2 x3 Hack-a-Thon Demo & Contest, Sunday 2pm-5pm 50