So Steve Jobs has finally announced the availability of the iPhone SDK. It will be available sometime in February of 2008. First, before I go on, I want to counter a lot of the press and blog comments stating that the release of the SDK is a reversal or some kind of about face. If anybody had done their homework, they would know that Steve Jobs himself stated that he wanted to create an environment that supported native 3rd party app development, but that they didn't have it "right" just yet, and that he wanted people to be patient. Obviously, he didn't remember that patience is one quality few techies (including myself) possess.

So where are we now? Does the announcement of the native, Cocoa-based SDK mean that web development for the iPhone and iPod touch are dead? Absolutely not. There are still a truckload of advantages to doing iPhone web development. To me, there is a clear dividing line between the types of apps you want as web apps, and the types of apps you need to be native.

Why Build Web Applications for the iPhone and iPod Touch?

There are a lot of compelling reasons to build web applications for the iPhone. If you're already thinking of an application then you might have an idea of whether it should be web-based or SDK-based. Web applications have a lot going for them, including:

No certification required. Though nothing has been set in stone or disclosed publicly, it's a pretty widely held belief that native iPhone applications will require a certification process that could be extremely cost-prohibitive for hobbyist developers and small businesses.

No device deployment. This makes it very easy for you to get your application into the hands of iPhone / iPod touch users. The only deployment necessary is navigating to the application's URL.

Server-controlled infrastructure.

Very simple development model - HTML and JavaScript. If you need data-driven back-end you can choose from one of many, including Rails, ASP.NET, PHP, etc.

Rapid development. Time to build a web application that supports the iPhone will probably be far less time consuming than building a native application.

Larger resources - A web application sitting on a server has access to far more data than can be stored locally on an iPhone. This may or may not be an issue for you depending on the kind of app you want to build.

Ease of maintenance - if you need to push a patch, you push it to your server.

Basically you can use all of the typical arguments for web-based deployment to argue in favor of web-based application development for mobile OS X devices like the iPhone and iPod touch. This also implies that many of the downsides of web development are included in the list of downsides to web development for the iPhone.

Why Build Native Applications for the iPhone / iPod Touch?

So why would you build native applications for the iPhone? It will probably take you longer to build, and take longer to test, and involve a vastly more complex deployment model - so why do it? Because depending on what kind of application you plan on building, the payoffs could be huge. Here are some of the things I see as real compelling benefits to native development that offset the extra time and effort spent developing, testing, and deploying:

Application might be able to run even when the phone is locked. Many native iPhone apps do this now such as e-mail and calendar. Your application might be able to do the same (note: this is totally unconfirmed and may not be possible)

Complete control over look and feel - Rather than resorting to tricks and sneaky techniques to make your web application look as though it is not inside a browser, you can do whatever you like and make your app look however you like.

Graphics and animation. While you can certainly do some basic animation within a browser, I'm fairly certain that we'll have access to some variation or subset of Core Animation on the iPhone. That's huge.

Decent network access. More than likely native apps will be able to make network calls without fear of cross-boundary problems and browser sandboxing, enabling truly powerful networking apps. This includes the potential for a native IM client on the phone if Apple hasn't released iChat for the phone by then.

Synchronization. Hopefully we'll be able to tap into the iTunes synchronization somehow and funnel application data from the iPhone to applications residing on the desktop ala ActiveSync for Windows Mobile.

What are People Going to be Building?

This is where it gets really good. Wil Shipley put up a post about what kinds of games that he thinks might make a pretty big impact on the phone. I totally agree, and I think some of the first mind-blowing apps for the iPhone will be games. Games is one of the things that is lacking on the iPhone that every other smartphone known to man has, although there are some pretty decent games you can play online (Duck Hunt is pretty good if your fingers are accurate...).

There's also a really big opportunity for productivity enhancement applications that I can't even fathom. I'm really excited to see what comes out of the development community in this area. I'm always amazed by the apps I see floating around for smart phones.

So I expect to see a lot of games, and a lot of productivity tools, but because it's an iPhone, I think a lot of people are going to capitalize on that and make social apps or lifestyle apps.

Summary

To keep things short and sweet : web development for the iPhone is not dead. In fact, I think it's just the opposite. For the most part, I think moving desktop applications onto the web is gaining momentum, traction, and popularity. Especially with people who are on the go or who want access to functionality from multiple different devices in multiple locations. Once people quit whining about the fact that they didn't get a native development SDK on day one, I think a lot of people came to the realization that for the majority of app dev tasks that make sense on the iPhone, providing a web-based application was the best way to go. This doesn't mean there isn't a need for building native apps, because there is. For example, the day I see Delicious Library allow me to scan the barcodes of books from my iPhone in Barnes and Noble and put them on my wishlist that can be converted to my collection as I buy them - that's when I think my brain will liquefy with glee.

So, it seems as though every time I say "to keep it short", I run on for another couple paragraphs. Developing web applications for the iPhone provides you with an insanely easy deployment scenario, gives you complete control over the reliability and stability of the environment, gives you complete control over patching and updating your application, and has a lot more going for it. For what I think is the minority of app dev needs, that remaining gap will be filled by the upcoming SDK. If you don't need the strong level of OS integration that you get with the SDK, then developing an iPhone web app is still the way to go.

Kevin Hoffman, editor-in-chief of SYS-CON's iPhone Developer's Journal, has been programming since he was 10 and has written everything from DOS shareware to n-tier, enterprise web applications in VB, C++, Delphi, and C. Hoffman is coauthor of Professional .NET Framework (Wrox Press) and co-author with Robert Foster of Microsoft SharePoint 2007 Development Unleashed. He authors The .NET Addict's Blog at .NET Developer's Journal.

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.

Please wait while we process your request...

Your feedback has been submitted for approval.

Most Recent Comments

Swampthing10/25/07 10:33:17 PM EDT

3rd party app that will catch on in a hurry.

Allow the NeoReader on the iPhone. One click to content from the world around us.

Cloud Expo

Cloud Computing & All That
It Touches In One Location Cloud Computing - Big Data - Internet of Things
SDDC - WebRTC - DevOps
Cloud computing is become a norm within enterprise IT.

The competition among public cloud providers is red hot, private cloud continues to grab increasing shares of IT budgets, and hybrid cloud strategies are beginning to conquer the enterprise IT world.

Big Data is driving dramatic leaps in resource requirements and capabilities, and now the Internet of Things promises an exponential leap in the size of the Internet and Worldwide Web.

The world of SDX now encompasses Software-Defined Data Centers (SDDCs) as the technology world prepares for the Zettabyte Age.

Add the key topics of WebRTC and DevOps into the mix, and you have three days of pure cloud computing that you simply cannot miss.

Delegates will leave Cloud Expo with dramatically increased understanding the entire scope of the entire cloud computing spectrum from storage to security.

Cloud Expo - the world's most established event - offers a vast selection of 130+ technical and strategic Industry Keynotes, General Sessions, Breakout Sessions, and signature Power Panels. The exhibition floor features 100+ exhibitors offering specific solutions and comprehensive strategies. The floor also features two Demo Theaters that give delegates the opportunity to get even closer to the technology they want to see and the people who offer it.

Attend Cloud Expo. Craft your own custom experience. Learn the latest from the world's best technologists. Find the vendors you want and put them to the test.