Mobile Web or Objective-C?

Cameron Moll is worried about a future in which we’ll all write Objective-C for the iPhone OS instead of writing web standards for the mobile web.

At one point in time, J2ME (now Java ME) and WAP were the starting points for a discussion on mobile strategy and the web. Then, for a brief period of time, you talked about HTML/CSS. Now, for a growing majority of mobile strategies that don’t require a global presence on widely varying devices, the discussion begins with iPhone.

Emphasis mine. Strategy and presence are the clue, and they’re the reasons I think the situation will not be quite as bad as Cameron fears.

Which mobile strategies do not require presence on a large number of devices? Which strategies, in other words, can afford to ignore the non-iPhone world in favour of native development in Objective-C?

I can’t give you a full list because nobody knows yet, but I’m willing to wager that it will come down mostly to games, and to a lesser extent other entertainment applications, such as the NPR one Cameron mentions.

More in general, this all comes back to the superior UX vs. superior interoperability question. What’s more important to you?

This is a total no-brainer when we’re talking about games and other entertainment apps. When it comes to complex, graphic games, vendors will opt for superior UX, and once you’ve done that, starting on iPhone OS makes excellent sense.

But if you build an integrated social media client, is superior UX still so important that you can afford to ignore non-iPhones? I don’t think so. I think creators of such apps would do better to create one in web standards so that it runs on all (well, many) devices. There’s stiff competition out there, and the wider your reach, the better chance you have of prevailing.

The big question of our times (i.e. this year and next) is when an app can safely choose for the superior UX, and when circumstances dictate the web app route, which gives less UX eye candy, but far more reach.

All in all I feel a measured, logical answer to this question is possible; it just requires some more study.

However, the problem right now is that everybody is staring at the UX side of the equation and does not think about the interoperability side at all.

There is a fundamental, and dangerous, imbalance here. Certainty precludes study. I feel that that’s what Cameron is worried about.

As readers of this blog know I’m firmly putting my weight on the interoperability side of things. Now you also know why: attention for superior UX needs to go down a tad. We have to reach an attention equilibrium between superior UX and superior reach before we can truly discuss the pros and cons of the two strategies.

I think that the pull of Objective-C that Cameron is feeling right now will be a temporary phase. The mobile web will continue to grow because there is no other way of getting an app to run on many platforms. And getting your app on as many devices as possible will be the winning strategy for most, if not all, non-entertainment apps out there. Even clients will figure that out ... eventually.

Patience. The web is not going anywhere. It just has to define its relationship to native development. And I have no doubt it will succeed and flourish.

This is the blog of Peter-Paul Koch, mobile platform strategist, consultant, and trainer. You can also follow him on Twitter.
Atom RSS

I’m speaking at the following conferences:

(Data from Lanyrd)

Categories:

Monthlies:

Comments

Comments are closed.

1 Posted by Wouter Vervloet on 6 April 2010 | Permalink

I totally agree with you on this.. which is why I haven't created a single iPhone app (or optimized website) yet.

And as an added bonus, the NOS has seen the light too...

[dutch] http://www.nu.nl/tech/2218415/nos-keert-mobiele-applicaties-rug-toe.html

2 Posted by Anders on 6 April 2010 | Permalink

Like Wouter Vervloet, I completely agree! Am currently in the process of creating a couple of HTML (5) Apps, that need to run on iPhones, Androids, other phones, and in desktop web browsers.

The obvious way is through HTML, CSS and JavaScript.

My first one was inspired by an unusually unproductive (and toxic) meeting: http://trakti.me/ =)

Have been following your work for years now. Thanks for the good work!

3 Posted by Vincent Roman on 6 April 2010 | Permalink

I couldn't agree more with you that the inter-operability argument is by far superior, but is alas being lost in the din of hype surround all of Apple's new product offerings. I suppose this reflects how exceedingly short-sighted product developers, agency producers and content developers are. In the scramble to the the "first on the ipad" or first elsewhere what irks me is that web developers, companies and institutions are losing site of their proper remit.

4 Posted by Kai Hendry on 6 April 2010 | Permalink

Is it worth noting the parallel trends with Desktop computing?

Best games are native though I'm hoping a good Web game (like age old Planetarion) can shake things up a bit.

5 Posted by Leonard on 6 April 2010 | Permalink

Like said above, I totally agree.

@Vincent, I think you are wrong on the short-sighted product developer thing. If you can get the client aware of the interoperability of webstandards the next problem arises: getting the app to work on, let's name a few, the blackberry or symbian platform. That will cost time(money). If you think about that then it is not to hard to imagine developers choose for UX.

The beauty of webstandards is off course the standard thing. So in theory you can make an HTML5 app now for Android and Iphone(which have capable browsers) that, for example, will work on future versions of the Blackberry platform (that should have a modern webkit browser). Maybe sounds to good to be true?

6 Posted by Nathan Smith on 6 April 2010 | Permalink

You make a very good point. To which I would add: Superior UX and Interoperability needn't be mutually exclusive. :)

7 Posted by Faruk AteĹź on 6 April 2010 | Permalink

While I wrote this article (mostly) last Thursday, it's a very different perspective on this discussion—unsurprisingly, I guess, given our previous debates:

Screw the Web! - http://farukat.es/p424

8 Posted by Andrew Hedges on 6 April 2010 | Permalink

Companies with sufficient resources (e.g., Flickr) have built both native and HTML5 apps and are measuring the success of each. Assuming these companies talk publicly about their mobile strategies, indie developers and companies without that level of resource will then have some data to go on to make better decisions.

I'm with PPK on this one. In the long run, interoperability will win out over superior UX. But, part of the reason for that is that the UX (particularly in terms of browser access to device APIs) for HTML5 apps will catch up enough to reach a tipping point.

9 Posted by Roland van Ipenburg on 6 April 2010 | Permalink

A technical approach to strategies doesn't make sense if the Nash equilibrium of the system we're looking at isn't necessarily optimal, like in Braess's paradox. Which means that anyone can see the web app route is the optimal solution for the system, but every decision maker in it chooses superior UX because that looks most favorable to him. As long as publishers feel they need superior UX as USP to be beat competing apps successfully, developing native apps will be the Nash equilibrium in this system, while web apps are the optimal solution. Discussing how much more optimal the web app route is probably isn't going to change the current Nash equilibrium.

10 Posted by ppk on 6 April 2010 | Permalink

@andrew: Yes, that's a good point. UX-wise, the browsers are growing and growing, and the time will come when they'll handle animations as well as Flash or native iPhone apps. I expect quite a bit from OpenGL 2, which is now being rolled out on some mobile phones.

And, oddly, some of the best browsr-enhancing work is done by Apple in Safari.

Does Apple know the web will trump native in the long run? We can at least choose to believe so.

11 Posted by Martin Pilkington on 6 April 2010 | Permalink

The thing is, why not have your cake and eat it. Much like on the web you scale back to offer something to many people while offering a better experience to more capable browsers, why not treat native apps as another FAR more capable browser. If you have a web app, there's no reason you can't offer both web and native interfaces.

Take facebook for example, it is a web app, yet it is often accessed through the facebook iPhone app. A better experience for iPhone users while still accessible on any platform with a web browser.

As I often say, the power is in the Internet. The web, mobile and desktop apps are just becoming different interfaces to that

12 Posted by Matt Andrews on 7 April 2010 | Permalink

Speaking of having your cake and eating it too...

...PhoneGap.

http://phonegap.com/

Create a web app in HTML/CSS/JS, then compile using the open-source PhoneGap framework to native mobile apps for iPhone, Android, Win Mobile, Symbian (Nokia), etc.

Includes JS interfaces for a certain range of native mobile device functionality, e.g. geolocation, accelerometer, vibration, etc.

Best of all worlds, so long as your requirements don't extend into heavily hardware-specific territory.

13 Posted by Faruk Ates on 7 April 2010 | Permalink

"Does Apple know the web will trump native in the long run?"

How will it do that? It'll always have to run through a browser, thus always a layer in-between native code, thus always be at a performance disadvantage. Not to mention that native frameworks have had twenty-five years of refinement and innovation, ten more than the Web even *exists*, and their ongoing development goes at a much faster pace than the Web technologies are.

14 Posted by Mike Rundle on 8 April 2010 | Permalink

A good article but one fact I think you're still neglecting is that a superior UX is not just for games or "entertainment" apps, it's for apps you want people to use and fall in love with. For people building mobile products this is extremely important. If you only build an app for one platform and perfect the hell out of it (with native code) and people love it, they are now your most vocal supporters and evangelists. How do you build the best UX you possibly can? You write a native app for the platform you're deploying to. No one can say that web applications are faster than native applications, and speed & responsiveness are paramount to a superior UX.

If you want to put out a product with a superior UX across multiple platforms then you must build separately for multiple platforms. Gowalla is a good example. Their iPhone app is gorgeous and so is their Android app. They custom built each app separately with native code for each platform. The Gowalla team obsesses over UX so this is what they chose. Now they've got a super UX & their product on multiple platforms. What's wrong with this avenue?

15 Posted by James on 10 April 2010 | Permalink

While I agree that in many cases a mobile web layout could reach a bigger audience, I doubt we will see the end of either native or web apps. Also objective-c takes almost no time to learn if you know most any of the common imperial languages. The API and IDE would take the majority of time spent but people usually stick to areas they need.

Advantages it has over web apps (right now):

Precompiled is faster than JIT

RAD Tools for the iPhone makes much cleaner interfaces than most HTML interface tools, so you have less hand manipulation of code necessary. Interoperability and inconsistencies are greatly reduces in a single platform.

Mobile apps that are thin interface with standards based communications methods to servers, may use the exact same back end pre-existing web or desktop apps used. Alternatively can produce applications that you do not ever have to maintain server for

Large libraries precompiled/loaded on device, along with deeper hooks into hardware than even proposed web standards

Framework is developing faster than browsers implement common features.

Solid payment systems with growing user base is marketable

Reduced visibility of code on client side has advantages, also can reduce vectors of attack on system.