SlideShare a Scribd company logo
1 of 108
March 2009




iPhone in Action:
 Web Development
     or SDK?
                   Christopher Allen
Christopher Allen
manning.com/callen
iPhone in Action:
Web Development
    or SDK?
iPhone in Action:
Web Development or SDK?
iPhone in Action:
 Web Development or SDK?
There are two ways that you can
program for the iPhone, using web
development tools and using the
SDK
iPhone in Action:
 Web Development or SDK?
There are two ways that you can
program for the iPhone, using web
development tools and using the
SDK
  Web development leverages
  internet technologies
iPhone in Action:
 Web Development or SDK?
There are two ways that you can
program for the iPhone, using web
development tools and using the
SDK
  Web development leverages
  internet technologies
  The iPhone SDK leverage the full
  power of the iPhone and years of
  Apple’s development experience
iPhone in Action:
Web Development or SDK?
iPhone in Action:
 Web Development or SDK?
The iPhone’s Mobile Safari features:
  HTML 4.01 and XHTML 1.0
  CSS 2.1 and some CSS 3
  Full DOM
  Javascript 1.4
  XMLHttpRequest
     thus support for AJAX
  Canvas
  PDF & Quicktime
  Up to 8 “tabs”
  Many custom WebKit functions
iPhone in Action:
 Web Development or SDK?
Additional Mobile Safari features:
turning it into a wackybox class:
             -webkit-transform: rotate(30deg) translate(5%,5%);

  iPhone in Action:
        The result is that your news article appears at an angle, moved somewhat off the
        Figure 4.2 shows this change, which you can compare to the nontransformed new

 Web Development or SDK?
        that appears a few pages back as figure 4.1. This particular transform isn’t that
        you want people to read it, but it could be
        a nice background for a news site or
        something similar. There are many other
Additional Mobile Safarido with transforms,
        things that you can features:
  Webkit CSS Transforms
        such as setting up banners, printing text
        at a variety of sizes, and making similar
        changes on static web pages. Some will be
        gimmicks, but others can have func-
        tional benefits.
            Before we leave transforms behind,
        we’ll note that they support one other
        property, –webkit-transform-origin,
        which can be used to move the origin for
        scales and skews away from the center of
        the object.
            Although you can do quite a bit with
        transforms all on their own, their real
        power appears when you start working
Discussions on this topic are scattered across the internet, alongside individuals’
                     solutions for them. At the time of writing, none of the library solutions were compre-
                     hensive enough for us to recommend them here, but take a look around if you need
                     text in your Canvas object and you don’t want to write the routines yourself.


  iPhone in Action:
                         With that disappointment behind us, we’re going to finish our look at Canvas by
                     seeing how to put it all together.

               6.8   Putting it together

 Web Development or SDK?
                     Having shown lots of stand-alone Canvas methods, we’ll now show how a variety of
                     shapes can be painted onto a single Canvas object. Figure 6.9 includes a pair of
                     screenshots that show off most of the Canvas functionality that we’ve discussed.




Additional Mobile Safari features:
  Webkit CSS Transforms
  Canvas - Scalable Vector Graphics




                     Figure 6.9   Canvas allows for a wide variety of shapes to be created from a small set of primitives, as
iPhone in Action:
     Web Development or SDK?                                69
                         Recognizing touches and gestures


    The results are shown in figure 4.4, which as you
can Additional Mobile Safari the WebKit CSS ele-
    see make good use of some of features:
ments that we highlighted earlier, showing off the great
       Webkit CSS Transforms
functionality that the WebKit provides you with.
   The JavaScript Scalable Vector Graphics
       Canvas - database is the last WebKit element
that you can make use of on SQLite Storagecan also
       Database - Local the iPhone, but it
be used more broadly. The last couple of items that
we’ll discuss are instead iPhone specific.

Adjusting the chrome
In the previous chapter we showed you some simple
methods for dealing with the iPhone chrome. We
explained how to scroll the URL bar and noted that the
status bar and the bottom bar could not be changed.
Using the WebKit, you have slightly more control over
things, provided that your user is using iPhone OS 2.1
or higher. All you need to do is enter a new metatag on
iPhone in Action:
 Web Development or SDK?
                                          touchStart
Additional Mobile Safari features:
                                           touchMove
  Webkit CSS Transforms
                                            touchEnd
  Canvas - Scalable Vector Graphics      touchCancel
  Database - Local SQLite Storage       gestureStart
  Touch Events                         gestureChange
                                          gestureEnd
                                      changedTouches
                                       targetTouches
                                             touches
                                         orientation
                                            rotation
                                              scale
iPhone in Action:
     Web Development or SDK?                                69
                         Recognizing touches and gestures


    The results are shown in figure 4.4, which as you
can Additional Mobile Safari the WebKit CSS ele-
    see make good use of some of features:
ments that we highlighted earlier, showing off the great
       Webkit CSS Transforms
functionality that the WebKit provides you with.
   The JavaScript Scalable Vector Graphics
       Canvas - database is the last WebKit element
that you can make use of on SQLite Storagecan also
       Database - Local the iPhone, but it
be used more broadly. The last couple of items that
       Touch Events
we’ll discuss are instead iPhone specific.
      Hide Mobile Safari’s Chrome
Adjusting the chrome
In the previous chapter we showed you some simple
methods for dealing with the iPhone chrome. We
explained how to scroll the URL bar and noted that the
status bar and the bottom bar could not be changed.
Using the WebKit, you have slightly more control over
things, provided that your user is using iPhone OS 2.1
or higher. All you need to do is enter a new metatag on
iPhone in Action:
 Web Development or SDK?
The iPhone SDK features:
  Same Mach kernel and Core OS as
    Macintosh
iPhone in Action:
 Web Development or SDK?
The iPhone SDK features:
  Same Mach kernel and Core OS as
    Macintosh
  Most of the same Core Services as
    Macintosh
iPhone in Action:
 Web Development or SDK?
The iPhone SDK features:
  Same Mach kernel and Core OS as
    Macintosh
  Most of the same Core Services as
    Macintosh
  Most of functionality available to
    Apple’s iPhone apps
iPhone in Action:
 Web Development or SDK?
The iPhone SDK features:
  Same Mach kernel and Core OS as
    Macintosh
  Most of the same Core Services as
    Macintosh
  Most of functionality available to
    Apple’s iPhone apps
  Cocoa Touch with UIKit
iPhone in Action:
 Web Development or SDK?
The iPhone SDK features:
  Same Mach kernel and Core OS as
    Macintosh
  Most of the same Core Services as
    Macintosh
  Most of functionality available to
    Apple’s iPhone apps
  Cocoa Touch with UIKit
  Objective C and C++ compiler
iPhone in Action:
 Web Development or SDK?
The iPhone SDK features:
  Same Mach kernel and Core OS as
     Macintosh
  Most of the same Core Services as
     Macintosh
  Most of functionality available to
     Apple’s iPhone apps
  Cocoa Touch with UIKit
  Objective C and C++ compiler
  Interface Builder with UIKit
     templates
iPhone in Action:
 Web Development or SDK?
The iPhone SDK features:
  Same Mach kernel and Core OS as
     Macintosh
  Most of the same Core Services as
     Macintosh
  Most of functionality available to
     Apple’s iPhone apps
  Cocoa Touch with UIKit
  Objective C and C++ compiler
  Interface Builder with UIKit
     templates
  Great debugging and profiling
iPhone in Action:
Web Development or SDK?
iPhone in Action:
Web Development or SDK?
Web Development Advantages
iPhone in
  Action:
   Web
Development
  or SDK?

              Same Advantages as in 2007
iPhone in Action:
Web Development or SDK?
Web Development Advantages
  Simplicity
iPhone in Action:
Web Development or SDK?
Web Development Advantages
  Simplicity
    Easier then using low-level C
iPhone in Action:
Web Development or SDK?
Web Development Advantages
  Simplicity
    Easier then using low-level C
    Languages are dynamic
iPhone in Action:
Web Development or SDK?
Web Development Advantages
  Simplicity
    Easier then using low-level C
    Languages are dynamic
    No memory management
iPhone in Action:
Web Development or SDK?
Web Development Advantages
  Simplicity
    Easier then using low-level C
    Languages are dynamic
    No memory management
    Display of data is easy
iPhone in Action:
Web Development or SDK?
Web Development Advantages
  Simplicity
    Easier then using low-level C
    Languages are dynamic
    No memory management
    Display of data is easy
    Deployment is an upload
iPhone in Action:
Web Development or SDK?
Web Development Advantages
  Simplicity
    Easier then using low-level C
    Languages are dynamic
    No memory management
    Display of data is easy
    Deployment is an upload
    Easy to use
iPhone in Action:
Web Development or SDK?
Web Development Advantages
  Simplicity
  Dynamism
iPhone in Action:
Web Development or SDK?
Web Development Advantages
  Simplicity
  Dynamism
    Update functionality anytime
iPhone in Action:
Web Development or SDK?
Web Development Advantages
  Simplicity
  Dynamism
    Update functionality anytime
    Easy to fix bugs
iPhone in Action:
Web Development or SDK?
Web Development Advantages
  Simplicity
  Dynamism
    Update functionality anytime
    Easy to fix bugs
    Give users the latest data
iPhone in Action:
Web Development or SDK?
Web Development Advantages
  Simplicity
  Dynamism
  Globalized
iPhone in Action:
Web Development or SDK?
Web Development Advantages
  Simplicity
  Dynamism
  Globalized
    Part of global network
iPhone in Action:
Web Development or SDK?
Web Development Advantages
  Simplicity
  Dynamism
  Globalized
    Part of global network
    One program for iPhone and
    desktop
iPhone in Action:
Web Development or SDK?
Web Development Advantages
  Simplicity
  Dynamism
  Globalized
    Part of global network
    One program for iPhone and
    desktop
    Access to rest of web
iPhone in Action:
Web Development or SDK?
Web Development Advantages
  Simplicity
  Dynamism
  Globalized
    Part of global network
    One program for iPhone and
    desktop
    Access to rest of web
    Connected to everyone
iPhone in
  Action:
   Web
Development
  or SDK?

              Multiple Platforms
iPhone in Action:
Web Development or SDK?
SDK Development Advantages
  Sophistication
iPhone in Action:
Web Development or SDK?
SDK Development Advantages
  Sophistication
    Great depth of functionality
iPhone in Action:
Web Development or SDK?
SDK Development Advantages
  Sophistication
    Great depth of functionality
    Superior development
    environment
iPhone in Action:
Web Development or SDK?
SDK Development Advantages
  Sophistication
    Great depth of functionality
    Superior development
    environment
    Deeper access to internals
iPhone in Action:
Web Development or SDK?
SDK Development Advantages
  Sophistication
    Great depth of functionality
    Superior development
    environment
    Deeper access to internals
      Camera, accelerometers, GPS,
      gestures, contacts, photos
iPhone in Action:
Web Development or SDK?
SDK Development Advantages
  Sophistication
    Great depth of functionality
    Superior development
    environment
    Deeper access to internals
      Camera, accelerometers, GPS,
      gestures, contacts, photos
    Better graphics and 3D
iPhone in Action:
Web Development or SDK?
SDK Development Advantages
  Sophistication
  Accessibility
iPhone in Action:
Web Development or SDK?
SDK Development Advantages
  Sophistication
  Accessibility
    Always available
iPhone in Action:
Web Development or SDK?
SDK Development Advantages
  Sophistication
  Accessibility
    Always available
    Functions without net
iPhone in Action:
Web Development or SDK?
SDK Development Advantages
  Sophistication
  Accessibility
    Always available
    Functions without net
    Cache data
iPhone in Action:
Web Development or SDK?
SDK Development Advantages
  Sophistication
  Accessibility
    Always available
    Functions without net
    Cache data
    Native speed
iPhone in Action:
Web Development or SDK?
SDK Development Advantages
  Sophistication
  Accessibility
    Always available
    Functions without net
    Cache data
    Native speed
    Private
iPhone in Action:
Web Development or SDK?
SDK Development Advantages
  Sophistication
  Accessibility
  Monetization
iPhone in Action:
Web Development or SDK?
SDK Development Advantages
  Sophistication
  Accessibility
  Monetization
    Easy to sell through App Store
iPhone in Action:
Web Development or SDK?
SDK Development Advantages
  Sophistication
  Accessibility
  Monetization
    Easy to sell through App Store
    Does not depend on
    advertisements or subscriptions
iPhone in Action:
Web Development or SDK?
iPhone in Action:
 Web Development or SDK?
Both development approaches have
their advantages.
iPhone in Action:
 Web Development or SDK?
Both development approaches have
their advantages.
You want to take advantage of each
programming methods strengths and
use it when appropriate.
iPhone in Action:
 Web Development or SDK?
Both development approaches have
their advantages.
You want to take advantage of each
programming methods strengths and
use it when appropriate.
Don’t blindly just use the SDK or the
Web because you're more
comfortable with it.
iPhone in Action:
Web Development or SDK?
iPhone in Action:
 Web Development or SDK?
There are options to combine both
approaches and thus play to their
strengths
iPhone in Action:
 Web Development or SDK?
There are options to combine both
approaches and thus play to their
strengths
  Mirrored Development
iPhone in Action:
 Web Development or SDK?
There are options to combine both
approaches and thus play to their
strengths
  Mirrored Development
  Mixed Development
iPhone in Action:
 Web Development or SDK?
There are options to combine both
approaches and thus play to their
strengths
  Mirrored Development
  Mixed Development
  Client-Server Development
iPhone in Action:
 Web Development or SDK?
There are options to combine both
approaches and thus play to their
strengths
  Mirrored Development
  Mixed Development
  Client-Server Development
  Hybrid Development
iPhone in Action:
Web Development or SDK?
iPhone in Action:
 Web Development or SDK?
Mirrored Development
  Write a free web version as well a
  more fully featured SDK version
iPhone in
  Action:
   Web
Development
  or SDK?

               Mirrored Development
              apnews.com & Mobile News App
iPhone in Action:
Web Development or SDK?
iPhone in Action:
Web Development or SDK?
Mixed Development
  Write different parts of a program
  suite via different means
iPhone in
  Action:
   Web
Development
  or SDK?

                 Mixed Development
              google.com/reader & Maps App
iPhone in Action:
Web Development or SDK?
iPhone in Action:
 Web Development or SDK?
Client-Server Development
  Link in to web software through
  the SDK
iPhone in
  Action:
   Web
Development
  or SDK?

              Client-Server Development
              Showtimes App & Gifts App
iPhone in Action:
Web Development or SDK?
iPhone in Action:
Web Development or SDK?
Hybrid Development
  Use PhoneGap plus native-looking
  iPhone Javascript libraries
  Result is app that can be submitted
  to iPhone AppStore
  You can now charge for your
  webapp
  Cross-Platform for Android,
  Blackberry, more to come
  http://phonegap.com/
iPhone in
  Action:
   Web
Development
  or SDK?

                  Hybrid Development
              Inside Trader & It’s On My iPhone
Resources
iPhone in Action:
Web Development or SDK?
iPhone in Action:
 Web Development or SDK?
iPhone In Action:
Introduction to Web & SDK Development
   manning.com/iphoneinaction
iPhone in Action:
 Web Development or SDK?
iPhone In Action:
Introduction to Web & SDK Development
   manning.com/iphoneinaction
  Oriented for web developers
iPhone in Action:
 Web Development or SDK?
iPhone In Action:
Introduction to Web & SDK Development
   manning.com/iphoneinaction
  Oriented for web developers
  Topics:
    Creating web apps optimized for the
       iPhone with Canvas, WebKit, and iUI
iPhone in Action:
 Web Development or SDK?
iPhone In Action:
Introduction to Web & SDK Development
   manning.com/iphoneinaction
  Oriented for web developers
  Topics:
    Creating web apps optimized for the
       iPhone with Canvas, WebKit, and iUI
    Learning about the iPhone native SDK
iPhone in Action:
 Web Development or SDK?
iPhone In Action:
Introduction to Web & SDK Development
   manning.com/iphoneinaction
  Oriented for web developers
  Topics:
    Creating web apps optimized for the
       iPhone with Canvas, WebKit, and iUI
    Learning about the iPhone native SDK
    Programming with Cocoa Touch's UIKit
iPhone in Action:
 Web Development or SDK?
iPhone In Action:
Introduction to Web & SDK Development
   manning.com/iphoneinaction
  Oriented for web developers
  Topics:
    Creating web apps optimized for the
        iPhone with Canvas, WebKit, and iUI
    Learning about the iPhone native SDK
    Programming with Cocoa Touch's UIKit
    Building apps that delve into the iPhone's
        toolbox
iPhone in Action:
 Web Development or SDK?
iPhone In Action:
Introduction to Web & SDK Development
   manning.com/iphoneinaction
  Oriented for web developers
  Topics:
    Creating web apps optimized for the
        iPhone with Canvas, WebKit, and iUI
    Learning about the iPhone native SDK
    Programming with Cocoa Touch's UIKit
    Building apps that delve into the iPhone's
        toolbox
    Blending web & iPhone SDK development
iPhone in Action:
 Web Development or SDK?
iPhone In Action:
Introduction to Web & SDK Development
   manning.com/iphoneinaction
  Oriented for web developers
  Topics:
    Creating web apps optimized for the
        iPhone with Canvas, WebKit, and iUI
    Learning about the iPhone native SDK
    Programming with Cocoa Touch's UIKit
    Building apps that delve into the iPhone's
        toolbox
    Blending web & iPhone SDK development
  Available Now in Print & PDF
iPhone in Action:
 Web Development or SDK?
iPhone In Action:
Introduction to Web & SDK Development
   manning.com/iphoneinaction
  Oriented for web developers
  Topics:
    Creating web apps optimized for the
        iPhone with Canvas, WebKit, and iUI
    Learning about the iPhone native SDK
    Programming with Cocoa Touch's UIKit
    Building apps that delve into the iPhone's
        toolbox
    Blending web & iPhone SDK development
  Available Now in Print & PDF
  Updates and Blog at
     iphoneinaction.manning.com
iPhone in
  Action:
   Web
Development
  or SDK?

                iPhoneWebDev
              iPhoneWebDev.com
iPhone in Action:
Web Development or SDK?
iPhone in Action:
Web Development or SDK?
iUI Framework
  iui.googlecode.com
iPhone in Action:
Web Development or SDK?
iUI Framework
  iui.googlecode.com
 Navigation windows from JSON
   objects
iPhone in Action:
Web Development or SDK?
iUI Framework
  iui.googlecode.com
 Navigation windows from JSON
   objects
 Navigational objects using canvas UI
   tags for speed
iPhone in Action:
Web Development or SDK?
iUI Framework
  iui.googlecode.com
 Navigation windows from JSON
   objects
 Navigational objects using canvas UI
   tags for speed
 Handles phone rotation events
iPhone in Action:
Web Development or SDK?
iUI Framework
  iui.googlecode.com
 Navigation windows from JSON
   objects
 Navigational objects using canvas UI
   tags for speed
 Handles phone rotation events
 Supports XmlHttpRequest
iPhone in Action:
Web Development or SDK?
iUI Framework
  iui.googlecode.com
 Navigation windows from JSON
   objects
 Navigational objects using canvas UI
   tags for speed
 Handles phone rotation events
 Supports XmlHttpRequest
 A great iPhone user experience
iPhone in Action:
Web Development or SDK?
iUI Framework
  iui.googlecode.com
 Navigation windows from JSON
   objects
 Navigational objects using canvas UI
   tags for speed
 Handles phone rotation events
 Supports XmlHttpRequest
 A great iPhone user experience
 1.8KB with gzip and Dojo shrinksafe
iPhone in Action:
Web Development or SDK?
iUI Framework
  iui.googlecode.com
 Navigation windows from JSON
   objects
 Navigational objects using canvas UI
   tags for speed
 Handles phone rotation events
 Supports XmlHttpRequest
 A great iPhone user experience
 1.8KB with gzip and Dojo shrinksafe
 Moviesapp.com written in 5 hours...
iPhone in
  Action:
   Web
Development
  or SDK?


              moviesapp.com using iUI
iPhone in
  Action:
   Web
Development
  or SDK?

                    SQLite Safari
              tinyurl.com/sqlitesafari
iPhone in
  Action:
   Web
Development
  or SDK?


              DashCode
iPhone in
  Action:
   Web
Development
  or SDK?


              Dashcode Development
iPhone in
  Action:
   Web
Development
  or SDK?

               PhoneGap
              phonegap.com
iPhone in
  Action:
   Web
Development
  or SDK?

              TouchCode (json,xml,rss,...)
              touchcode.googlecode.com
<mailto:ChristopherA@manning.com>

More Related Content

Viewers also liked

The History of SEO
The History of SEOThe History of SEO
The History of SEOHubSpot
 
How People Really Hold and Touch (their Phones)
How People Really Hold and Touch (their Phones)How People Really Hold and Touch (their Phones)
How People Really Hold and Touch (their Phones)Steven Hoober
 
Five Killer Ways to Design The Same Slide
Five Killer Ways to Design The Same SlideFive Killer Ways to Design The Same Slide
Five Killer Ways to Design The Same SlideCrispy Presentations
 
How I got 2.5 Million views on Slideshare (by @nickdemey - Board of Innovation)
How I got 2.5 Million views on Slideshare (by @nickdemey - Board of Innovation)How I got 2.5 Million views on Slideshare (by @nickdemey - Board of Innovation)
How I got 2.5 Million views on Slideshare (by @nickdemey - Board of Innovation)Board of Innovation
 
Upworthy: 10 Ways To Win The Internets
Upworthy: 10 Ways To Win The InternetsUpworthy: 10 Ways To Win The Internets
Upworthy: 10 Ways To Win The InternetsUpworthy
 
The Seven Deadly Social Media Sins
The Seven Deadly Social Media SinsThe Seven Deadly Social Media Sins
The Seven Deadly Social Media SinsXPLAIN
 
The What If Technique presented by Motivate Design
The What If Technique presented by Motivate DesignThe What If Technique presented by Motivate Design
The What If Technique presented by Motivate DesignMotivate Design
 
10 Powerful Body Language Tips for your next Presentation
10 Powerful Body Language Tips for your next Presentation10 Powerful Body Language Tips for your next Presentation
10 Powerful Body Language Tips for your next PresentationSOAP Presentations
 
How To (Really) Get Into Marketing
How To (Really) Get Into MarketingHow To (Really) Get Into Marketing
How To (Really) Get Into MarketingEd Fry
 

Viewers also liked (12)

The Minimum Loveable Product
The Minimum Loveable ProductThe Minimum Loveable Product
The Minimum Loveable Product
 
The History of SEO
The History of SEOThe History of SEO
The History of SEO
 
How People Really Hold and Touch (their Phones)
How People Really Hold and Touch (their Phones)How People Really Hold and Touch (their Phones)
How People Really Hold and Touch (their Phones)
 
Displaying Data
Displaying DataDisplaying Data
Displaying Data
 
Five Killer Ways to Design The Same Slide
Five Killer Ways to Design The Same SlideFive Killer Ways to Design The Same Slide
Five Killer Ways to Design The Same Slide
 
How I got 2.5 Million views on Slideshare (by @nickdemey - Board of Innovation)
How I got 2.5 Million views on Slideshare (by @nickdemey - Board of Innovation)How I got 2.5 Million views on Slideshare (by @nickdemey - Board of Innovation)
How I got 2.5 Million views on Slideshare (by @nickdemey - Board of Innovation)
 
Design Your Career 2018
Design Your Career 2018Design Your Career 2018
Design Your Career 2018
 
Upworthy: 10 Ways To Win The Internets
Upworthy: 10 Ways To Win The InternetsUpworthy: 10 Ways To Win The Internets
Upworthy: 10 Ways To Win The Internets
 
The Seven Deadly Social Media Sins
The Seven Deadly Social Media SinsThe Seven Deadly Social Media Sins
The Seven Deadly Social Media Sins
 
The What If Technique presented by Motivate Design
The What If Technique presented by Motivate DesignThe What If Technique presented by Motivate Design
The What If Technique presented by Motivate Design
 
10 Powerful Body Language Tips for your next Presentation
10 Powerful Body Language Tips for your next Presentation10 Powerful Body Language Tips for your next Presentation
10 Powerful Body Language Tips for your next Presentation
 
How To (Really) Get Into Marketing
How To (Really) Get Into MarketingHow To (Really) Get Into Marketing
How To (Really) Get Into Marketing
 

More from Christopher Allen

Smart Signatures—Experiments in Authentication (Stanford BPASE 2018 final)
Smart Signatures—Experiments in Authentication (Stanford BPASE 2018 final)Smart Signatures—Experiments in Authentication (Stanford BPASE 2018 final)
Smart Signatures—Experiments in Authentication (Stanford BPASE 2018 final)Christopher Allen
 
Collection of Economic Freedom Quotes (Curated by Christopher Allen)
Collection of Economic Freedom Quotes (Curated by Christopher Allen)Collection of Economic Freedom Quotes (Curated by Christopher Allen)
Collection of Economic Freedom Quotes (Curated by Christopher Allen)Christopher Allen
 
Forging Self-Sovereign Identity in the Age of the Blockchain - Christopher Al...
Forging Self-Sovereign Identity in the Age of the Blockchain - Christopher Al...Forging Self-Sovereign Identity in the Age of the Blockchain - Christopher Al...
Forging Self-Sovereign Identity in the Age of the Blockchain - Christopher Al...Christopher Allen
 
Identity of the Blockchain: Perils and Promise
Identity of the Blockchain: Perils and PromiseIdentity of the Blockchain: Perils and Promise
Identity of the Blockchain: Perils and PromiseChristopher Allen
 
My Hybrid Flipped Learning Environment
My Hybrid Flipped Learning EnvironmentMy Hybrid Flipped Learning Environment
My Hybrid Flipped Learning EnvironmentChristopher Allen
 
Bitcoin Keys, Addresses & Wallets
Bitcoin Keys, Addresses & WalletsBitcoin Keys, Addresses & Wallets
Bitcoin Keys, Addresses & WalletsChristopher Allen
 
Bitcoin & the Blockchain—an Introduction
Bitcoin & the Blockchain—an IntroductionBitcoin & the Blockchain—an Introduction
Bitcoin & the Blockchain—an IntroductionChristopher Allen
 
Brainstorming by Creating a Game
Brainstorming by Creating a GameBrainstorming by Creating a Game
Brainstorming by Creating a GameChristopher Allen
 
Discussion Activities with Moodle
Discussion Activities with MoodleDiscussion Activities with Moodle
Discussion Activities with MoodleChristopher Allen
 
Cooperative gaming—tabletop lessons for online games
Cooperative gaming—tabletop lessons for online gamesCooperative gaming—tabletop lessons for online games
Cooperative gaming—tabletop lessons for online gamesChristopher Allen
 
Interview with Markos Moulitsas Zúniga
Interview with Markos Moulitsas ZúnigaInterview with Markos Moulitsas Zúniga
Interview with Markos Moulitsas ZúnigaChristopher Allen
 
Designing Elluminate Sessions for Interactivity
Designing Elluminate Sessions for InteractivityDesigning Elluminate Sessions for Interactivity
Designing Elluminate Sessions for InteractivityChristopher Allen
 
Raph Koster — The Core of Fun
Raph Koster — The Core of FunRaph Koster — The Core of Fun
Raph Koster — The Core of FunChristopher Allen
 
Fair Use & Copyright (Excerpt from Summer A/V Workshop)
Fair Use & Copyright (Excerpt from Summer A/V Workshop)Fair Use & Copyright (Excerpt from Summer A/V Workshop)
Fair Use & Copyright (Excerpt from Summer A/V Workshop)Christopher Allen
 
Filtering BGIedu Channel posts
Filtering BGIedu Channel postsFiltering BGIedu Channel posts
Filtering BGIedu Channel postsChristopher Allen
 

More from Christopher Allen (20)

Smart Signatures—Experiments in Authentication (Stanford BPASE 2018 final)
Smart Signatures—Experiments in Authentication (Stanford BPASE 2018 final)Smart Signatures—Experiments in Authentication (Stanford BPASE 2018 final)
Smart Signatures—Experiments in Authentication (Stanford BPASE 2018 final)
 
Collection of Economic Freedom Quotes (Curated by Christopher Allen)
Collection of Economic Freedom Quotes (Curated by Christopher Allen)Collection of Economic Freedom Quotes (Curated by Christopher Allen)
Collection of Economic Freedom Quotes (Curated by Christopher Allen)
 
Forging Self-Sovereign Identity in the Age of the Blockchain - Christopher Al...
Forging Self-Sovereign Identity in the Age of the Blockchain - Christopher Al...Forging Self-Sovereign Identity in the Age of the Blockchain - Christopher Al...
Forging Self-Sovereign Identity in the Age of the Blockchain - Christopher Al...
 
Identity of the Blockchain: Perils and Promise
Identity of the Blockchain: Perils and PromiseIdentity of the Blockchain: Perils and Promise
Identity of the Blockchain: Perils and Promise
 
My Hybrid Flipped Learning Environment
My Hybrid Flipped Learning EnvironmentMy Hybrid Flipped Learning Environment
My Hybrid Flipped Learning Environment
 
Bitcoin Keys, Addresses & Wallets
Bitcoin Keys, Addresses & WalletsBitcoin Keys, Addresses & Wallets
Bitcoin Keys, Addresses & Wallets
 
Bitcoin & the Blockchain—an Introduction
Bitcoin & the Blockchain—an IntroductionBitcoin & the Blockchain—an Introduction
Bitcoin & the Blockchain—an Introduction
 
The Proficiency Ladder
The Proficiency LadderThe Proficiency Ladder
The Proficiency Ladder
 
Brainstorming by Creating a Game
Brainstorming by Creating a GameBrainstorming by Creating a Game
Brainstorming by Creating a Game
 
Discussion Activities with Moodle
Discussion Activities with MoodleDiscussion Activities with Moodle
Discussion Activities with Moodle
 
Cooperative gaming—tabletop lessons for online games
Cooperative gaming—tabletop lessons for online gamesCooperative gaming—tabletop lessons for online games
Cooperative gaming—tabletop lessons for online games
 
Interview with Markos Moulitsas Zúniga
Interview with Markos Moulitsas ZúnigaInterview with Markos Moulitsas Zúniga
Interview with Markos Moulitsas Zúniga
 
Memes & Memetics
Memes & MemeticsMemes & Memetics
Memes & Memetics
 
Designing Elluminate Sessions for Interactivity
Designing Elluminate Sessions for InteractivityDesigning Elluminate Sessions for Interactivity
Designing Elluminate Sessions for Interactivity
 
Raph Koster — The Core of Fun
Raph Koster — The Core of FunRaph Koster — The Core of Fun
Raph Koster — The Core of Fun
 
Ambient vs immersive
Ambient vs immersiveAmbient vs immersive
Ambient vs immersive
 
Ambient immersive
Ambient immersiveAmbient immersive
Ambient immersive
 
Fair Use & Copyright (Excerpt from Summer A/V Workshop)
Fair Use & Copyright (Excerpt from Summer A/V Workshop)Fair Use & Copyright (Excerpt from Summer A/V Workshop)
Fair Use & Copyright (Excerpt from Summer A/V Workshop)
 
Social Networking
Social NetworkingSocial Networking
Social Networking
 
Filtering BGIedu Channel posts
Filtering BGIedu Channel postsFiltering BGIedu Channel posts
Filtering BGIedu Channel posts
 

Recently uploaded

Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfjimielynbastida
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
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
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 

Recently uploaded (20)

Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
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
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 

iPhone Development: Web or SDK? (eComm 2009)

  • 1. March 2009 iPhone in Action: Web Development or SDK? Christopher Allen
  • 4. iPhone in Action: Web Development or SDK?
  • 5. iPhone in Action: Web Development or SDK?
  • 6. iPhone in Action: Web Development or SDK? There are two ways that you can program for the iPhone, using web development tools and using the SDK
  • 7. iPhone in Action: Web Development or SDK? There are two ways that you can program for the iPhone, using web development tools and using the SDK Web development leverages internet technologies
  • 8. iPhone in Action: Web Development or SDK? There are two ways that you can program for the iPhone, using web development tools and using the SDK Web development leverages internet technologies The iPhone SDK leverage the full power of the iPhone and years of Apple’s development experience
  • 9. iPhone in Action: Web Development or SDK?
  • 10. iPhone in Action: Web Development or SDK? The iPhone’s Mobile Safari features: HTML 4.01 and XHTML 1.0 CSS 2.1 and some CSS 3 Full DOM Javascript 1.4 XMLHttpRequest thus support for AJAX Canvas PDF & Quicktime Up to 8 “tabs” Many custom WebKit functions
  • 11. iPhone in Action: Web Development or SDK? Additional Mobile Safari features:
  • 12. turning it into a wackybox class: -webkit-transform: rotate(30deg) translate(5%,5%); iPhone in Action: The result is that your news article appears at an angle, moved somewhat off the Figure 4.2 shows this change, which you can compare to the nontransformed new Web Development or SDK? that appears a few pages back as figure 4.1. This particular transform isn’t that you want people to read it, but it could be a nice background for a news site or something similar. There are many other Additional Mobile Safarido with transforms, things that you can features: Webkit CSS Transforms such as setting up banners, printing text at a variety of sizes, and making similar changes on static web pages. Some will be gimmicks, but others can have func- tional benefits. Before we leave transforms behind, we’ll note that they support one other property, –webkit-transform-origin, which can be used to move the origin for scales and skews away from the center of the object. Although you can do quite a bit with transforms all on their own, their real power appears when you start working
  • 13. Discussions on this topic are scattered across the internet, alongside individuals’ solutions for them. At the time of writing, none of the library solutions were compre- hensive enough for us to recommend them here, but take a look around if you need text in your Canvas object and you don’t want to write the routines yourself. iPhone in Action: With that disappointment behind us, we’re going to finish our look at Canvas by seeing how to put it all together. 6.8 Putting it together Web Development or SDK? Having shown lots of stand-alone Canvas methods, we’ll now show how a variety of shapes can be painted onto a single Canvas object. Figure 6.9 includes a pair of screenshots that show off most of the Canvas functionality that we’ve discussed. Additional Mobile Safari features: Webkit CSS Transforms Canvas - Scalable Vector Graphics Figure 6.9 Canvas allows for a wide variety of shapes to be created from a small set of primitives, as
  • 14. iPhone in Action: Web Development or SDK? 69 Recognizing touches and gestures The results are shown in figure 4.4, which as you can Additional Mobile Safari the WebKit CSS ele- see make good use of some of features: ments that we highlighted earlier, showing off the great Webkit CSS Transforms functionality that the WebKit provides you with. The JavaScript Scalable Vector Graphics Canvas - database is the last WebKit element that you can make use of on SQLite Storagecan also Database - Local the iPhone, but it be used more broadly. The last couple of items that we’ll discuss are instead iPhone specific. Adjusting the chrome In the previous chapter we showed you some simple methods for dealing with the iPhone chrome. We explained how to scroll the URL bar and noted that the status bar and the bottom bar could not be changed. Using the WebKit, you have slightly more control over things, provided that your user is using iPhone OS 2.1 or higher. All you need to do is enter a new metatag on
  • 15. iPhone in Action: Web Development or SDK? touchStart Additional Mobile Safari features: touchMove Webkit CSS Transforms touchEnd Canvas - Scalable Vector Graphics touchCancel Database - Local SQLite Storage gestureStart Touch Events gestureChange gestureEnd changedTouches targetTouches touches orientation rotation scale
  • 16. iPhone in Action: Web Development or SDK? 69 Recognizing touches and gestures The results are shown in figure 4.4, which as you can Additional Mobile Safari the WebKit CSS ele- see make good use of some of features: ments that we highlighted earlier, showing off the great Webkit CSS Transforms functionality that the WebKit provides you with. The JavaScript Scalable Vector Graphics Canvas - database is the last WebKit element that you can make use of on SQLite Storagecan also Database - Local the iPhone, but it be used more broadly. The last couple of items that Touch Events we’ll discuss are instead iPhone specific. Hide Mobile Safari’s Chrome Adjusting the chrome In the previous chapter we showed you some simple methods for dealing with the iPhone chrome. We explained how to scroll the URL bar and noted that the status bar and the bottom bar could not be changed. Using the WebKit, you have slightly more control over things, provided that your user is using iPhone OS 2.1 or higher. All you need to do is enter a new metatag on
  • 17. iPhone in Action: Web Development or SDK? The iPhone SDK features: Same Mach kernel and Core OS as Macintosh
  • 18. iPhone in Action: Web Development or SDK? The iPhone SDK features: Same Mach kernel and Core OS as Macintosh Most of the same Core Services as Macintosh
  • 19. iPhone in Action: Web Development or SDK? The iPhone SDK features: Same Mach kernel and Core OS as Macintosh Most of the same Core Services as Macintosh Most of functionality available to Apple’s iPhone apps
  • 20. iPhone in Action: Web Development or SDK? The iPhone SDK features: Same Mach kernel and Core OS as Macintosh Most of the same Core Services as Macintosh Most of functionality available to Apple’s iPhone apps Cocoa Touch with UIKit
  • 21. iPhone in Action: Web Development or SDK? The iPhone SDK features: Same Mach kernel and Core OS as Macintosh Most of the same Core Services as Macintosh Most of functionality available to Apple’s iPhone apps Cocoa Touch with UIKit Objective C and C++ compiler
  • 22. iPhone in Action: Web Development or SDK? The iPhone SDK features: Same Mach kernel and Core OS as Macintosh Most of the same Core Services as Macintosh Most of functionality available to Apple’s iPhone apps Cocoa Touch with UIKit Objective C and C++ compiler Interface Builder with UIKit templates
  • 23. iPhone in Action: Web Development or SDK? The iPhone SDK features: Same Mach kernel and Core OS as Macintosh Most of the same Core Services as Macintosh Most of functionality available to Apple’s iPhone apps Cocoa Touch with UIKit Objective C and C++ compiler Interface Builder with UIKit templates Great debugging and profiling
  • 24. iPhone in Action: Web Development or SDK?
  • 25. iPhone in Action: Web Development or SDK? Web Development Advantages
  • 26. iPhone in Action: Web Development or SDK? Same Advantages as in 2007
  • 27. iPhone in Action: Web Development or SDK? Web Development Advantages Simplicity
  • 28. iPhone in Action: Web Development or SDK? Web Development Advantages Simplicity Easier then using low-level C
  • 29. iPhone in Action: Web Development or SDK? Web Development Advantages Simplicity Easier then using low-level C Languages are dynamic
  • 30. iPhone in Action: Web Development or SDK? Web Development Advantages Simplicity Easier then using low-level C Languages are dynamic No memory management
  • 31. iPhone in Action: Web Development or SDK? Web Development Advantages Simplicity Easier then using low-level C Languages are dynamic No memory management Display of data is easy
  • 32. iPhone in Action: Web Development or SDK? Web Development Advantages Simplicity Easier then using low-level C Languages are dynamic No memory management Display of data is easy Deployment is an upload
  • 33. iPhone in Action: Web Development or SDK? Web Development Advantages Simplicity Easier then using low-level C Languages are dynamic No memory management Display of data is easy Deployment is an upload Easy to use
  • 34. iPhone in Action: Web Development or SDK? Web Development Advantages Simplicity Dynamism
  • 35. iPhone in Action: Web Development or SDK? Web Development Advantages Simplicity Dynamism Update functionality anytime
  • 36. iPhone in Action: Web Development or SDK? Web Development Advantages Simplicity Dynamism Update functionality anytime Easy to fix bugs
  • 37. iPhone in Action: Web Development or SDK? Web Development Advantages Simplicity Dynamism Update functionality anytime Easy to fix bugs Give users the latest data
  • 38. iPhone in Action: Web Development or SDK? Web Development Advantages Simplicity Dynamism Globalized
  • 39. iPhone in Action: Web Development or SDK? Web Development Advantages Simplicity Dynamism Globalized Part of global network
  • 40. iPhone in Action: Web Development or SDK? Web Development Advantages Simplicity Dynamism Globalized Part of global network One program for iPhone and desktop
  • 41. iPhone in Action: Web Development or SDK? Web Development Advantages Simplicity Dynamism Globalized Part of global network One program for iPhone and desktop Access to rest of web
  • 42. iPhone in Action: Web Development or SDK? Web Development Advantages Simplicity Dynamism Globalized Part of global network One program for iPhone and desktop Access to rest of web Connected to everyone
  • 43. iPhone in Action: Web Development or SDK? Multiple Platforms
  • 44. iPhone in Action: Web Development or SDK? SDK Development Advantages Sophistication
  • 45. iPhone in Action: Web Development or SDK? SDK Development Advantages Sophistication Great depth of functionality
  • 46. iPhone in Action: Web Development or SDK? SDK Development Advantages Sophistication Great depth of functionality Superior development environment
  • 47. iPhone in Action: Web Development or SDK? SDK Development Advantages Sophistication Great depth of functionality Superior development environment Deeper access to internals
  • 48. iPhone in Action: Web Development or SDK? SDK Development Advantages Sophistication Great depth of functionality Superior development environment Deeper access to internals Camera, accelerometers, GPS, gestures, contacts, photos
  • 49. iPhone in Action: Web Development or SDK? SDK Development Advantages Sophistication Great depth of functionality Superior development environment Deeper access to internals Camera, accelerometers, GPS, gestures, contacts, photos Better graphics and 3D
  • 50. iPhone in Action: Web Development or SDK? SDK Development Advantages Sophistication Accessibility
  • 51. iPhone in Action: Web Development or SDK? SDK Development Advantages Sophistication Accessibility Always available
  • 52. iPhone in Action: Web Development or SDK? SDK Development Advantages Sophistication Accessibility Always available Functions without net
  • 53. iPhone in Action: Web Development or SDK? SDK Development Advantages Sophistication Accessibility Always available Functions without net Cache data
  • 54. iPhone in Action: Web Development or SDK? SDK Development Advantages Sophistication Accessibility Always available Functions without net Cache data Native speed
  • 55. iPhone in Action: Web Development or SDK? SDK Development Advantages Sophistication Accessibility Always available Functions without net Cache data Native speed Private
  • 56. iPhone in Action: Web Development or SDK? SDK Development Advantages Sophistication Accessibility Monetization
  • 57. iPhone in Action: Web Development or SDK? SDK Development Advantages Sophistication Accessibility Monetization Easy to sell through App Store
  • 58. iPhone in Action: Web Development or SDK? SDK Development Advantages Sophistication Accessibility Monetization Easy to sell through App Store Does not depend on advertisements or subscriptions
  • 59. iPhone in Action: Web Development or SDK?
  • 60. iPhone in Action: Web Development or SDK? Both development approaches have their advantages.
  • 61. iPhone in Action: Web Development or SDK? Both development approaches have their advantages. You want to take advantage of each programming methods strengths and use it when appropriate.
  • 62. iPhone in Action: Web Development or SDK? Both development approaches have their advantages. You want to take advantage of each programming methods strengths and use it when appropriate. Don’t blindly just use the SDK or the Web because you're more comfortable with it.
  • 63. iPhone in Action: Web Development or SDK?
  • 64. iPhone in Action: Web Development or SDK? There are options to combine both approaches and thus play to their strengths
  • 65. iPhone in Action: Web Development or SDK? There are options to combine both approaches and thus play to their strengths Mirrored Development
  • 66. iPhone in Action: Web Development or SDK? There are options to combine both approaches and thus play to their strengths Mirrored Development Mixed Development
  • 67. iPhone in Action: Web Development or SDK? There are options to combine both approaches and thus play to their strengths Mirrored Development Mixed Development Client-Server Development
  • 68. iPhone in Action: Web Development or SDK? There are options to combine both approaches and thus play to their strengths Mirrored Development Mixed Development Client-Server Development Hybrid Development
  • 69. iPhone in Action: Web Development or SDK?
  • 70. iPhone in Action: Web Development or SDK? Mirrored Development Write a free web version as well a more fully featured SDK version
  • 71. iPhone in Action: Web Development or SDK? Mirrored Development apnews.com & Mobile News App
  • 72. iPhone in Action: Web Development or SDK?
  • 73. iPhone in Action: Web Development or SDK? Mixed Development Write different parts of a program suite via different means
  • 74. iPhone in Action: Web Development or SDK? Mixed Development google.com/reader & Maps App
  • 75. iPhone in Action: Web Development or SDK?
  • 76. iPhone in Action: Web Development or SDK? Client-Server Development Link in to web software through the SDK
  • 77. iPhone in Action: Web Development or SDK? Client-Server Development Showtimes App & Gifts App
  • 78. iPhone in Action: Web Development or SDK?
  • 79. iPhone in Action: Web Development or SDK? Hybrid Development Use PhoneGap plus native-looking iPhone Javascript libraries Result is app that can be submitted to iPhone AppStore You can now charge for your webapp Cross-Platform for Android, Blackberry, more to come http://phonegap.com/
  • 80. iPhone in Action: Web Development or SDK? Hybrid Development Inside Trader & It’s On My iPhone
  • 82. iPhone in Action: Web Development or SDK?
  • 83. iPhone in Action: Web Development or SDK? iPhone In Action: Introduction to Web & SDK Development manning.com/iphoneinaction
  • 84. iPhone in Action: Web Development or SDK? iPhone In Action: Introduction to Web & SDK Development manning.com/iphoneinaction Oriented for web developers
  • 85. iPhone in Action: Web Development or SDK? iPhone In Action: Introduction to Web & SDK Development manning.com/iphoneinaction Oriented for web developers Topics: Creating web apps optimized for the iPhone with Canvas, WebKit, and iUI
  • 86. iPhone in Action: Web Development or SDK? iPhone In Action: Introduction to Web & SDK Development manning.com/iphoneinaction Oriented for web developers Topics: Creating web apps optimized for the iPhone with Canvas, WebKit, and iUI Learning about the iPhone native SDK
  • 87. iPhone in Action: Web Development or SDK? iPhone In Action: Introduction to Web & SDK Development manning.com/iphoneinaction Oriented for web developers Topics: Creating web apps optimized for the iPhone with Canvas, WebKit, and iUI Learning about the iPhone native SDK Programming with Cocoa Touch's UIKit
  • 88. iPhone in Action: Web Development or SDK? iPhone In Action: Introduction to Web & SDK Development manning.com/iphoneinaction Oriented for web developers Topics: Creating web apps optimized for the iPhone with Canvas, WebKit, and iUI Learning about the iPhone native SDK Programming with Cocoa Touch's UIKit Building apps that delve into the iPhone's toolbox
  • 89. iPhone in Action: Web Development or SDK? iPhone In Action: Introduction to Web & SDK Development manning.com/iphoneinaction Oriented for web developers Topics: Creating web apps optimized for the iPhone with Canvas, WebKit, and iUI Learning about the iPhone native SDK Programming with Cocoa Touch's UIKit Building apps that delve into the iPhone's toolbox Blending web & iPhone SDK development
  • 90. iPhone in Action: Web Development or SDK? iPhone In Action: Introduction to Web & SDK Development manning.com/iphoneinaction Oriented for web developers Topics: Creating web apps optimized for the iPhone with Canvas, WebKit, and iUI Learning about the iPhone native SDK Programming with Cocoa Touch's UIKit Building apps that delve into the iPhone's toolbox Blending web & iPhone SDK development Available Now in Print & PDF
  • 91. iPhone in Action: Web Development or SDK? iPhone In Action: Introduction to Web & SDK Development manning.com/iphoneinaction Oriented for web developers Topics: Creating web apps optimized for the iPhone with Canvas, WebKit, and iUI Learning about the iPhone native SDK Programming with Cocoa Touch's UIKit Building apps that delve into the iPhone's toolbox Blending web & iPhone SDK development Available Now in Print & PDF Updates and Blog at iphoneinaction.manning.com
  • 92. iPhone in Action: Web Development or SDK? iPhoneWebDev iPhoneWebDev.com
  • 93. iPhone in Action: Web Development or SDK?
  • 94. iPhone in Action: Web Development or SDK? iUI Framework iui.googlecode.com
  • 95. iPhone in Action: Web Development or SDK? iUI Framework iui.googlecode.com Navigation windows from JSON objects
  • 96. iPhone in Action: Web Development or SDK? iUI Framework iui.googlecode.com Navigation windows from JSON objects Navigational objects using canvas UI tags for speed
  • 97. iPhone in Action: Web Development or SDK? iUI Framework iui.googlecode.com Navigation windows from JSON objects Navigational objects using canvas UI tags for speed Handles phone rotation events
  • 98. iPhone in Action: Web Development or SDK? iUI Framework iui.googlecode.com Navigation windows from JSON objects Navigational objects using canvas UI tags for speed Handles phone rotation events Supports XmlHttpRequest
  • 99. iPhone in Action: Web Development or SDK? iUI Framework iui.googlecode.com Navigation windows from JSON objects Navigational objects using canvas UI tags for speed Handles phone rotation events Supports XmlHttpRequest A great iPhone user experience
  • 100. iPhone in Action: Web Development or SDK? iUI Framework iui.googlecode.com Navigation windows from JSON objects Navigational objects using canvas UI tags for speed Handles phone rotation events Supports XmlHttpRequest A great iPhone user experience 1.8KB with gzip and Dojo shrinksafe
  • 101. iPhone in Action: Web Development or SDK? iUI Framework iui.googlecode.com Navigation windows from JSON objects Navigational objects using canvas UI tags for speed Handles phone rotation events Supports XmlHttpRequest A great iPhone user experience 1.8KB with gzip and Dojo shrinksafe Moviesapp.com written in 5 hours...
  • 102. iPhone in Action: Web Development or SDK? moviesapp.com using iUI
  • 103. iPhone in Action: Web Development or SDK? SQLite Safari tinyurl.com/sqlitesafari
  • 104. iPhone in Action: Web Development or SDK? DashCode
  • 105. iPhone in Action: Web Development or SDK? Dashcode Development
  • 106. iPhone in Action: Web Development or SDK? PhoneGap phonegap.com
  • 107. iPhone in Action: Web Development or SDK? TouchCode (json,xml,rss,...) touchcode.googlecode.com

Editor's Notes

  1. Welcome. My name is Christopher Allen, and I am a long time blogger on Life With Alacrity, I am host of the larger iPhone Web Developer community iPhoneWebDev, and co-founder and master of ceremonies of the iPhoneDevCamp hackathon.
  2. I am also the co-author of iPhone in Action: Introduction to Web and SDK Development, being released by Manning Publications at manning.com/callen
  3. Today many of you are asking the question, &#x201C;Do I develop for the iPhone using the Web, or create a native application using the SDK&#x201D;?
  4. Developing on the web leverages all the internet technologies...
  5. ...but using the SDK leverages the full power of the iPhone and years of Apple&#x2019;s development experience.
  6. I&#x2019;m sure that you are already familiar with the list of features in iPhone&#x2019;s Mobile Safari: All the things you need to create a sophisticated desktop class AJAX web application.
  7. However, you may not be aware of some of these additional Mobile Safari features:
  8. Webkit specific CSS transforms, with additional border types, rounded boxes, scaling, rotation, and other transformations...
  9. Canvas, a scalable vector graphics toolkit that allow for simple SVG-style graphics and animations...
  10. Support of HTML 5&#x2019;s client-side database that allows for local SQLite storage...
  11. iPhone specific JavaScript events, such as touchStart, gestureChange, current orientation, etc.
  12. Finally, you have the ability to hide Mobile Safari&#x2019;s chrome, allowing you utilize the full size of the iPhone screen.
  13. The iPhone SDK offers a number of features: the same Mach kernel and Core operating system that has been used by Apple since OS X was released in 2001...
  14. ...most of the same Core Services as the Macintosh....
  15. Much of the functionality offered by Apple&#x2019;s own iPhone apps
  16. including the object oriented CocoaTouch and UIKit
  17. the ability to create applications using Objective C or C++
  18. ...and great tools like Interface Builder...
  19. ...and all the debugging and profiling tools that have been available to Macintosh application developers for years.
  20. So what are the advantages of developing for the iPhone on the Web?
  21. All the same advantages that Steve Jobs spoke of in 2007 on the release of the iPhone.
  22. First off, Simplicity.
  23. Frankly, web development is simpler than using a low-level programming language like C.
  24. The programming languages of the web are dynamic, which offer a lot of advantages.
  25. You don&#x2019;t usually have to worry about things like memory management or even (for the most part) object modeling.
  26. If you&#x2019;re just outputting plain data, the ease factor in web development goes up by a factor of at least 10x when compared to doing the same thing using the SDK&#x2019;s tables and other data outputs.
  27. Beyond that, when you&#x2019;re done developing a web program, all you need to do is upload your pages to your server. There are no hoops to jump through (other than those that your individual company might impose).
  28. It&#x2019;s also a lot simpler for users who are used to working with the web. They&#x2019;re much more likely to view your web page than to pay to purchase your SDK program from the iTunes store, and thus it&#x2019;s a great way to attract many more users.
  29. The next advantage is Dynamism.
  30. You can literally update your program at any time. You don&#x2019;t have to worry about when or how your users will get a new program.
  31. You just change your server&#x2019;s source code, and the next time your users access the page, they&#x2019;ll see all your bug fixes and other changes. Similarly, you can constantly give users access to your newest data. Whereas data stored within an SDK program is static, for a web program a user&#x2019;s view of data changes whenever you update it. This starts to shade into the next strength &#x2026;
  32. Similarly, you can constantly give users access to your newest data. Whereas data stored within an SDK program is static, for a web program a user&#x2019;s view of data changes whenever you update it. This starts to shade into the next strength &#x2026;
  33. The third advantage is that web-based apps are Globalized.
  34. When you create a web-based iPhone program, you become part of a global network that starts at your own server. This has a bunch of advantages.
  35. First, it means you can just create one program for use by both iPhone and desktop users. This will improve usability for your users if there&#x2019;s data that they want to access (or even update) from both their desktop and their iPhone.
  36. Third, it gives you rapid access to the rest of the Web through XML, URLs, RSS feeds, and other data links. Granted, these advantages could be mimicked using web access from the SDK.
  37. It&#x2019;s also a lot easier for your users to interact with other users, which might be particularly important for chats or multiplayer games.
  38. Finally, there are now a number of additional platforms for web-based mobile apps: All the Google Android phones including the T-Mobile G1, the Nokia S60 and S90 series phones, and announced last week, the Palm Pre. All of these use Webkit, the same mobile browser used by the iPhone.
  39. So what are the advantages of using the SDK? Sophistication.
  40. Just as web programs are a lot easier to develop and deploy, the flipside is that SDK programs allow for improved depth of functionality.
  41. The SDK development environment is a wonder of error reporting, complemented by well-integrated documentation and a built-in profiling package.
  42. In addition, this depth shows up in the frameworks that you&#x2019;ll have access to when you use the SDK. They&#x2019;ll give you much deeper access to the iPhone&#x2019;s internals than any web page could.
  43. Though Apple has made some unique events, like orientation change, and some gestures available to web developments through the WebKit, if you want to use the address book or GPS or want to take a deeper look at the accelerometers, you have to use the SDK.
  44. You can also access better graphics with the SDK &#x2014; particularly if you want to work with animation or games.
  45. Another SDK advantage is Accessibility.
  46. Once a user buys a program, it is always available on his iPhone. Though a similar function is available for saving web applications into Safari bookmarks, it&#x2019;s likely only a percentage of users will take advantage of it.
  47. An SDK program is usable wherever a user is, whether that be inside a subway tunnel or in a cell-phone dead zone. Though the iPhone has an always-on internet, there are inevitably times and places when it&#x2019;s not available&#x2014;but a native program will be.
  48. Even an occasionally-connected application might benefit from being native to the iPhone, as they can provide constant access to older cached data.
  49. This goes hand-in-hand with the fact that the applications will always be running at iPhone speed, not constrained by the internet.
  50. Because the program is sitting on his iPhone, your user might feel more comfortable about using it to save his personal records than he would be if he knew the data was going out to the internet, and thus potentially vulnerable.
  51. For many of you, a big advantage of the SDK is Monetization.
  52. Though I don&#x2019;t want to be entirely mercenary, I think it&#x2019;s important to note that Apple is making it very easy to sell your iPhone SDK programs through their iPhone store.
  53. Certainly you could depend upon advertisements or even subscriptions for a web developed program, but you don&#x2019;t have to worry about any of that if you write a program using the SDK.
  54. Both development approaches have their advantages. &#x2022;You want to take advantage of each programming methods strengths and use it when appropriate. &#x2022;Don&#x2019;t blindly just use the SDK or the Web because you're more comfortable with it.
  55. Both development approaches have their advantages. &#x2022;You want to take advantage of each programming methods strengths and use it when appropriate. &#x2022;Don&#x2019;t blindly just use the SDK or the Web because you're more comfortable with it.
  56. Both development approaches have their advantages. &#x2022;You want to take advantage of each programming methods strengths and use it when appropriate. &#x2022;Don&#x2019;t blindly just use the SDK or the Web because you're more comfortable with it.
  57. I&#x2019;d also like to talk with you about options you have to combine both approaches and thus play to their strengths. They are &#x2022; Mirrored Development, &#x2022;Mixed Development and &#x2022;Client-Server Development.
  58. I&#x2019;d also like to talk with you about options you have to combine both approaches and thus play to their strengths. They are &#x2022; Mirrored Development, &#x2022;Mixed Development and &#x2022;Client-Server Development.
  59. I&#x2019;d also like to talk with you about options you have to combine both approaches and thus play to their strengths. They are &#x2022; Mirrored Development, &#x2022;Mixed Development and &#x2022;Client-Server Development.
  60. I&#x2019;d also like to talk with you about options you have to combine both approaches and thus play to their strengths. They are &#x2022; Mirrored Development, &#x2022;Mixed Development and &#x2022;Client-Server Development.
  61. I&#x2019;d also like to talk with you about options you have to combine both approaches and thus play to their strengths. They are &#x2022; Mirrored Development, &#x2022;Mixed Development and &#x2022;Client-Server Development.
  62. It&#x2019;s obviously easier to get a user to try out a free but limited version of your software than it is to get them to purchase a more complete version. The business model of upgrading users from free to premium versions of software has been used extensively, with &#x201C;freemium&#x201D; being the latest buzzword. There are two ways you could create a freemium model for your software. First, you could do what a lot of developers are already doing and offer a free trial version of your software on the iPhone store. This has the advantage of putting the software in the place that people are looking for software, but has the disadvantage that your application could get lost amidst the hurly burly of the store. Second, you could create a version of your software for the web, using Web App technologies. I think this model is particularly useful for those of you that have existing web pages that might already be drawing users to them in more highly targeted ways than the Apps Store could. Thus after releasing a limited version of your application over the web using techniques like the WebKit, iUI, and Canvas, you also release a feature-complete version of your application through the Apps Store using the SDK. Though we&#x2019;ve highlighted the economic reasons for this sort of mirrored development, it&#x2019;s possible that web sites might decide to extend existing Web Apps to include features not available in their web-based application. If so then you&#x2019;ll have a clear delineation between what the programs include: the SDK will uniquely include those features that weren&#x2019;t available through the web, like location-aware and orientation-aware data.
  63. It&#x2019;s obviously easier to get a user to try out a free but limited version of your software than it is to get them to purchase a more complete version. The business model of upgrading users from free to premium versions of software has been used extensively, with &#x201C;freemium&#x201D; being the latest buzzword. There are two ways you could create a freemium model for your software. First, you could do what a lot of developers are already doing and offer a free trial version of your software on the iPhone store. This has the advantage of putting the software in the place that people are looking for software, but has the disadvantage that your application could get lost amidst the hurly burly of the store. Second, you could create a version of your software for the web, using Web App technologies. I think this model is particularly useful for those of you that have existing web pages that might already be drawing users to them in more highly targeted ways than the Apps Store could. Thus after releasing a limited version of your application over the web using techniques like the WebKit, iUI, and Canvas, you also release a feature-complete version of your application through the Apps Store using the SDK. Though we&#x2019;ve highlighted the economic reasons for this sort of mirrored development, it&#x2019;s possible that web sites might decide to extend existing Web Apps to include features not available in their web-based application. If so then you&#x2019;ll have a clear delineation between what the programs include: the SDK will uniquely include those features that weren&#x2019;t available through the web, like location-aware and orientation-aware data.
  64. In a mixed development environment, instead of making the web a subset of your SDK work, you&#x2019;re looking at an overall project and deciding to program some of it using the web and some of it using the SDK. This can be a chaotic methodology if not managed carefully, but it gives you the best opportunity to really use the strengths of each sort of development. I find it most likely to work when you have two classes of users or two classes of programmers. On the user side, a good example might be a situation where you have administrative users and end users. Assume you&#x2019;re managing some data project. The data input methods used by your administrators don&#x2019;t necessarily have to look great. You can develop them very quickly using the web and then your administrators can choose whether to input data from their iPhones or from their desktops. Conversely, you want to provide a great user experience for your end-users, so you take advantage of the iPhone&#x2019;s native graphical and animation features to output your data in interesting ways. On the programmer side, you might simply have developers who are more comfortable in either the web or Objective-C arena. A mixed development project allows you to not only use the strengths of the individual programming methods but also the strengths of your individual programmers as well. The exact way in which you do mixed development will very much depend upon the specifics of your project, but there should be real opportunities to take advantage of each programming style&#x2019;s strengths without much redundancy.
  65. In a mixed development environment, instead of making the web a subset of your SDK work, you&#x2019;re looking at an overall project and deciding to program some of it using the web and some of it using the SDK. This can be a chaotic methodology if not managed carefully, but it gives you the best opportunity to really use the strengths of each sort of development. I find it most likely to work when you have two classes of users or two classes of programmers. On the user side, a good example might be a situation where you have administrative users and end users. Assume you&#x2019;re managing some data project. The data input methods used by your administrators don&#x2019;t necessarily have to look great. You can develop them very quickly using the web and then your administrators can choose whether to input data from their iPhones or from their desktops. Conversely, you want to provide a great user experience for your end-users, so you take advantage of the iPhone&#x2019;s native graphical and animation features to output your data in interesting ways. On the programmer side, you might simply have developers who are more comfortable in either the web or Objective-C arena. A mixed development project allows you to not only use the strengths of the individual programming methods but also the strengths of your individual programmers as well. The exact way in which you do mixed development will very much depend upon the specifics of your project, but there should be real opportunities to take advantage of each programming style&#x2019;s strengths without much redundancy.
  66. The final type of integrated iPhone development is the most powerful&#x2014;and also one that&#x2019;s already in use on your iPhone, whether you know it or not. Client-server development combines back-end web development and front-end SDK development in a fairly typical client-server model. This is effectively what is done by existing iPhone programs such as Maps, Stocks, and YouTube, all of which pull data from the internet and display it in attractive ways while also taking advantage of the iPhone&#x2019;s unique capabilities. On the one hand, you don&#x2019;t need a lot of the details of web development as presented in this book to create a data back-end. Instead you can depend on your existing Perl, PHP, or Ruby on Rails code and use it to kick out RSS or some other data feed which your SDK software can easily pick up. On the other hand, if you&#x2019;re already doing that much development on the web side of things, creating a second web-based interface for iPhone users should be trivial. Thus, a client-server development environment can give you the excuse to use either of the other integrated development strategies that I suggested.
  67. The final type of integrated iPhone development is the most powerful&#x2014;and also one that&#x2019;s already in use on your iPhone, whether you know it or not. Client-server development combines back-end web development and front-end SDK development in a fairly typical client-server model. This is effectively what is done by existing iPhone programs such as Maps, Stocks, and YouTube, all of which pull data from the internet and display it in attractive ways while also taking advantage of the iPhone&#x2019;s unique capabilities. On the one hand, you don&#x2019;t need a lot of the details of web development as presented in this book to create a data back-end. Instead you can depend on your existing Perl, PHP, or Ruby on Rails code and use it to kick out RSS or some other data feed which your SDK software can easily pick up. On the other hand, if you&#x2019;re already doing that much development on the web side of things, creating a second web-based interface for iPhone users should be trivial. Thus, a client-server development environment can give you the excuse to use either of the other integrated development strategies that I suggested.
  68. An of course, I encourage you to take a look at my book, iPhone in Action, at manning.com/callen -- it was written specifically for web developers who wish to better understand both web development for the iPhone as well as how to create simple iPhone SDK applications. An advance edition PDF is available now from the website, and the printed book should be out by early January.
  69. An of course, I encourage you to take a look at my book, iPhone in Action, at manning.com/callen -- it was written specifically for web developers who wish to better understand both web development for the iPhone as well as how to create simple iPhone SDK applications. An advance edition PDF is available now from the website, and the printed book should be out by early January.
  70. An of course, I encourage you to take a look at my book, iPhone in Action, at manning.com/callen -- it was written specifically for web developers who wish to better understand both web development for the iPhone as well as how to create simple iPhone SDK applications. An advance edition PDF is available now from the website, and the printed book should be out by early January.
  71. An of course, I encourage you to take a look at my book, iPhone in Action, at manning.com/callen -- it was written specifically for web developers who wish to better understand both web development for the iPhone as well as how to create simple iPhone SDK applications. An advance edition PDF is available now from the website, and the printed book should be out by early January.
  72. An of course, I encourage you to take a look at my book, iPhone in Action, at manning.com/callen -- it was written specifically for web developers who wish to better understand both web development for the iPhone as well as how to create simple iPhone SDK applications. An advance edition PDF is available now from the website, and the printed book should be out by early January.
  73. An of course, I encourage you to take a look at my book, iPhone in Action, at manning.com/callen -- it was written specifically for web developers who wish to better understand both web development for the iPhone as well as how to create simple iPhone SDK applications. An advance edition PDF is available now from the website, and the printed book should be out by early January.
  74. An of course, I encourage you to take a look at my book, iPhone in Action, at manning.com/callen -- it was written specifically for web developers who wish to better understand both web development for the iPhone as well as how to create simple iPhone SDK applications. An advance edition PDF is available now from the website, and the printed book should be out by early January.
  75. An of course, I encourage you to take a look at my book, iPhone in Action, at manning.com/callen -- it was written specifically for web developers who wish to better understand both web development for the iPhone as well as how to create simple iPhone SDK applications. An advance edition PDF is available now from the website, and the printed book should be out by early January.
  76. An of course, I encourage you to take a look at my book, iPhone in Action, at manning.com/callen -- it was written specifically for web developers who wish to better understand both web development for the iPhone as well as how to create simple iPhone SDK applications. An advance edition PDF is available now from the website, and the printed book should be out by early January.
  77. An of course, I encourage you to take a look at my book, iPhone in Action, at manning.com/callen -- it was written specifically for web developers who wish to better understand both web development for the iPhone as well as how to create simple iPhone SDK applications. An advance edition PDF is available now from the website, and the printed book should be out by early January.
  78. An of course, I encourage you to take a look at my book, iPhone in Action, at manning.com/callen -- it was written specifically for web developers who wish to better understand both web development for the iPhone as well as how to create simple iPhone SDK applications. An advance edition PDF is available now from the website, and the printed book should be out by early January.
  79. If you are developing iPhone web apps or iPhone optimized websites, the iPhoneWebDev developer community is the largest community of web developers helping other web developers. It is great place for solving problems.
  80. A great place to start in creating an iPhone webapp is by using the iUI javascript library, at iui.googlecode.com. It allows you to quickly create a powerful iPhone web app experience for your users. The author of Moviesapp.com said that he was able to release his iPhone movie website in less then 5 hours to win an award at last years iPhoneDevCamp.
  81. A great place to start in creating an iPhone webapp is by using the iUI javascript library, at iui.googlecode.com. It allows you to quickly create a powerful iPhone web app experience for your users. The author of Moviesapp.com said that he was able to release his iPhone movie website in less then 5 hours to win an award at last years iPhoneDevCamp.
  82. A great place to start in creating an iPhone webapp is by using the iUI javascript library, at iui.googlecode.com. It allows you to quickly create a powerful iPhone web app experience for your users. The author of Moviesapp.com said that he was able to release his iPhone movie website in less then 5 hours to win an award at last years iPhoneDevCamp.
  83. A great place to start in creating an iPhone webapp is by using the iUI javascript library, at iui.googlecode.com. It allows you to quickly create a powerful iPhone web app experience for your users. The author of Moviesapp.com said that he was able to release his iPhone movie website in less then 5 hours to win an award at last years iPhoneDevCamp.
  84. A great place to start in creating an iPhone webapp is by using the iUI javascript library, at iui.googlecode.com. It allows you to quickly create a powerful iPhone web app experience for your users. The author of Moviesapp.com said that he was able to release his iPhone movie website in less then 5 hours to win an award at last years iPhoneDevCamp.
  85. A great place to start in creating an iPhone webapp is by using the iUI javascript library, at iui.googlecode.com. It allows you to quickly create a powerful iPhone web app experience for your users. The author of Moviesapp.com said that he was able to release his iPhone movie website in less then 5 hours to win an award at last years iPhoneDevCamp.
  86. A great place to start in creating an iPhone webapp is by using the iUI javascript library, at iui.googlecode.com. It allows you to quickly create a powerful iPhone web app experience for your users. The author of Moviesapp.com said that he was able to release his iPhone movie website in less then 5 hours to win an award at last years iPhoneDevCamp.
  87. A great place to start in creating an iPhone webapp is by using the iUI javascript library, at iui.googlecode.com. It allows you to quickly create a powerful iPhone web app experience for your users. The author of Moviesapp.com said that he was able to release his iPhone movie website in less then 5 hours to win an award at last years iPhoneDevCamp.
  88. A great place to start in creating an iPhone webapp is by using the iUI javascript library, at iui.googlecode.com. It allows you to quickly create a powerful iPhone web app experience for your users. The author of Moviesapp.com said that he was able to release his iPhone movie website in less then 5 hours to win an award at last years iPhoneDevCamp.
  89. This website detail&#x2019;s the new HTML 5 client-side storage features of Mobile Safari.
  90. One under promoted web development resource is Apple&#x2019;s Dashcode, which is included with the iPhone SDK.
  91. It allows you to create websites using templates similar to the SDK&#x2019;s Interface Builder.
  92. TouchCode is a resource for SDK developers wishing to have more compatibility with web protocols. The TouchCode open source project at touchcode.googlecode.com offers Objective-C libraries for reading and writing json, xml, rss, etc.