Some iPhone apps should not be written in Cocoa
kudtler.com
kudtler.com
The reality is that there are lots of native iPhone apps that should be web apps. Right now, the web apps don't quite pay as well.
I believe what we're ultimately seeing is the rise of the native/web hybrid application. These are a class of web-like applications that can run in disconnected mode:
* views use HTML/CSS stored locally on the client
* handling of requests from the views is done within the client itself, or dispatched externally to a web API
* sophisticated data structures can be persisted on the client (in mysql, text files, etc.)
* more sophisticated processing than typically occurs in your standard web app
* better access to native hardware features
The technologies are coming together: Adobe AIR, UIWebView/iPhone SDK, Android's WebView, etc. to support this. I'm looking forward to it.
Consider travel applications. An American going to Europe will not want to spend the money to use your web application. (We've already heard about the incredible bills by people who didn't realize what was happening.)
Everything he lists is simple and stupid when you understand how to build iPhone applications.
"want slightly different buttons in a snap? Just photoshop it and you’re off"
HTML and CSS? It's pretty easy to develop a beautiful UI in Photoshop and simple slice it up for Cocoa. When going back into CSS development, I'm frustrated because of the need to move things around by a whole bunch of divs and styling all that type.
He then continues on about server side administration? Hell no. Personally, I'm glad I can just make an app, deploy it, and not have to worry about the e-commerce, server maintenance, and running costs.
If making iPhone applications were like this, I'd die.
So why are we mucking with it? I see more and more iPhone apps trying to completely overhaul Apple's own UI elements, to appear "unique", when all they're doing is adding to user confusion and inconsistency.
There are legitimate places where the UI must be extended - I say extend, not replace - because Apple's existing toolkit items are simply not up to the task, but IMHO one of the major failings in the iPhone dev community is failure to uphold the basics of UI standards.
If you write a web app, you have none of these problems, and you don't have to share your revenue with Apple.
[1] As anyone knows, this is not technically possible. Are config files or preference settings "code"? Why not? And what about languages that allow putting shellcode on the heap and overwriting the saved instruction pointer with its address... like, say, Objective-C?
They've even tried to make it reasonably transparent to the user, as web applications can reside on the home screen, and when launched, can be set to not display the browser toolbar, making them appear practically indistinguishable.
If you look at the work that's gone into WebKit/Safari, like a tenfold increase in JavaScript performance, HTML5 dbs, and a whole host of CSS work like gradients, canvas backgrounds, masks, reflections, transitions, and implicit animations, it's a more attractive platform than ever.
BTW, I'm going to be disappointed if I don't see the $5000/week people keep mentioning once I get up to speed on iPhone programming :-~
(ironically, this is pointed out in the post)