iPhone Development: Web or SDK? (eComm 2009)
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

iPhone Development: Web or SDK? (eComm 2009)

on

  • 9,808 views

The shorter version of my presentation on "iPhone Development: Web or SDK?" that I presented at eComm 2009. There is a video of this talk at ...

The shorter version of my presentation on "iPhone Development: Web or SDK?" that I presented at eComm 2009. There is a video of this talk at http://fora.tv/2009/03/03/Christopher_Allen_iPhone_Web_Development_or_SDK

Statistics

Views

Total Views
9,808
Views on SlideShare
9,646
Embed Views
162

Actions

Likes
25
Downloads
599
Comments
0

7 Embeds 162

http://www.stile.ch 67
http://www.slideshare.net 61
http://notizen.video-flash.de 24
http://minhyungko.blogspot.com 7
http://www.pointx.cz 1
http://stile.ch 1
http://www.linkedin.com 1
More...

Accessibility

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • <br />
  • 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. <br />
  • 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 <br />
  • <br />
  • Today many of you are asking the question, “Do I develop for the iPhone using the Web, or create a native application using the SDK”? <br />
  • Developing on the web leverages all the internet technologies... <br />
  • ...but using the SDK leverages the full power of the iPhone and years of Apple’s development experience. <br />
  • I’m sure that you are already familiar with the list of features in iPhone’s Mobile Safari: All the things you need to create a sophisticated desktop class AJAX web application. <br />
  • However, you may not be aware of some of these additional Mobile Safari features: <br /> <br />
  • Webkit specific CSS transforms, with additional border types, rounded boxes, scaling, rotation, and other transformations... <br />
  • Canvas, a scalable vector graphics toolkit that allow for simple SVG-style graphics and animations... <br />
  • Support of HTML 5’s client-side database that allows for local SQLite storage... <br />
  • iPhone specific JavaScript events, such as touchStart, gestureChange, current orientation, etc. <br />
  • Finally, you have the ability to hide Mobile Safari’s chrome, allowing you utilize the full size of the iPhone screen. <br />
  • 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... <br /> <br />
  • ...most of the same Core Services as the Macintosh.... <br /> <br />
  • Much of the functionality offered by Apple’s own iPhone apps <br />
  • including the object oriented CocoaTouch and UIKit <br /> <br />
  • the ability to create applications using Objective C or C++ <br />
  • ...and great tools like Interface Builder... <br />
  • ...and all the debugging and profiling tools that have been available to Macintosh application developers for years. <br />
  • So what are the advantages of developing for the iPhone on the Web? <br />
  • All the same advantages that Steve Jobs spoke of in 2007 on the release of the iPhone. <br />
  • First off, Simplicity. <br />
  • Frankly, web development is simpler than using a low-level programming language like C. <br />
  • The programming languages of the web are dynamic, which offer a lot of advantages. <br />
  • You don’t usually have to worry about things like memory management or even (for the most part) object modeling. <br />
  • If you’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’s tables and other data outputs. <br />
  • Beyond that, when you’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). <br />
  • It’s also a lot simpler for users who are used to working with the web. They’re much more likely to view your web page than to pay to purchase your SDK program from the iTunes store, and thus it’s a great way to attract many more users. <br />
  • The next advantage is Dynamism. <br />
  • You can literally update your program at any time. You don’t have to worry about when or how your users will get a new program. <br />
  • You just change your server’s source code, and the next time your users access the page, they’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’s view of data changes whenever you update it. This starts to shade into the next strength … <br /> <br />
  • 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’s view of data changes whenever you update it. This starts to shade into the next strength … <br /> <br />
  • The third advantage is that web-based apps are Globalized. <br />
  • 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. <br />
  • 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’s data that they want to access (or even update) from both their desktop and their iPhone. <br />
  • 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. <br />
  • It’s also a lot easier for your users to interact with other users, which might be particularly important for chats or multiplayer games. <br />
  • 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. <br />
  • So what are the advantages of using the SDK? Sophistication. <br />
  • Just as web programs are a lot easier to develop and deploy, the flipside is that SDK programs allow for improved depth of functionality. <br /> <br />
  • The SDK development environment is a wonder of error reporting, complemented by well-integrated documentation and a built-in profiling package. <br />
  • In addition, this depth shows up in the frameworks that you’ll have access to when you use the SDK. They’ll give you much deeper access to the iPhone’s internals than any web page could. <br />
  • 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. <br />
  • You can also access better graphics with the SDK — particularly if you want to work with animation or games. <br />
  • Another SDK advantage is Accessibility. <br />
  • 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’s likely only a percentage of users will take advantage of it. <br />
  • 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’s not available—but a native program will be. <br />
  • Even an occasionally-connected application might benefit from being native to the iPhone, as they can provide constant access to older cached data. <br />
  • This goes hand-in-hand with the fact that the applications will always be running at iPhone speed, not constrained by the internet. <br />
  • 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. <br />
  • For many of you, a big advantage of the SDK is Monetization. <br />
  • Though I don’t want to be entirely mercenary, I think it’s important to note that Apple is making it very easy to sell your iPhone SDK programs through their iPhone store. <br />
  • Certainly you could depend upon advertisements or even subscriptions for a web developed program, but you don’t have to worry about any of that if you write a program using the SDK. <br />
  • 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. <br />
  • 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. <br />
  • 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. <br />
  • I’d also like to talk with you about options you have to combine both approaches and thus play to their strengths. They are • Mirrored Development, •Mixed Development and •Client-Server Development. <br />
  • I’d also like to talk with you about options you have to combine both approaches and thus play to their strengths. They are • Mirrored Development, •Mixed Development and •Client-Server Development. <br />
  • I’d also like to talk with you about options you have to combine both approaches and thus play to their strengths. They are • Mirrored Development, •Mixed Development and •Client-Server Development. <br />
  • I’d also like to talk with you about options you have to combine both approaches and thus play to their strengths. They are • Mirrored Development, •Mixed Development and •Client-Server Development. <br />
  • I’d also like to talk with you about options you have to combine both approaches and thus play to their strengths. They are • Mirrored Development, •Mixed Development and •Client-Server Development. <br />
  • It’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 “freemium” being the latest buzzword. There are two ways you could create a freemium model for your software. <br /> 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’ve highlighted the economic reasons for this sort of mirrored development, it’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’ll have a clear delineation between what the programs include: the SDK will uniquely include those features that weren’t available through the web, like location-aware and orientation-aware data. <br /> <br />
  • It’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 “freemium” being the latest buzzword. There are two ways you could create a freemium model for your software. <br /> 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’ve highlighted the economic reasons for this sort of mirrored development, it’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’ll have a clear delineation between what the programs include: the SDK will uniquely include those features that weren’t available through the web, like location-aware and orientation-aware data. <br /> <br />
  • <br />
  • In a mixed development environment, instead of making the web a subset of your SDK work, you’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’re managing some data project. The data input methods used by your administrators don’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’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’s strengths without much redundancy. <br />
  • In a mixed development environment, instead of making the web a subset of your SDK work, you’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’re managing some data project. The data input methods used by your administrators don’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’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’s strengths without much redundancy. <br />
  • <br />
  • The final type of integrated iPhone development is the most powerful—and also one that’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’s unique capabilities. On the one hand, you don’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’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. <br />
  • The final type of integrated iPhone development is the most powerful—and also one that’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’s unique capabilities. On the one hand, you don’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’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. <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • 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. <br />
  • 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. <br />
  • 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. <br />
  • 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. <br />
  • 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. <br />
  • 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. <br />
  • 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. <br />
  • 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. <br />
  • 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. <br />
  • 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. <br />
  • 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. <br />
  • 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. <br />
  • 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. <br />
  • 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. <br />
  • 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. <br />
  • 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. <br />
  • 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. <br />
  • 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. <br />
  • 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. <br />
  • 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. <br />
  • 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. <br />
  • <br />
  • This website detail’s the new HTML 5 client-side storage features of Mobile Safari. <br />
  • One under promoted web development resource is Apple’s Dashcode, which is included with the iPhone SDK. <br />
  • It allows you to create websites using templates similar to the SDK’s Interface Builder. <br />
  • <br />
  • 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. <br />
  • <br />

iPhone Development: Web or SDK? (eComm 2009) Presentation Transcript

  • 1. March 2009 iPhone in Action: Web Development or SDK? Christopher Allen
  • 2. Christopher Allen
  • 3. manning.com/callen
  • 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
  • 81. Resources
  • 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
  • 108. <mailto:ChristopherA@manning.com>