Is There a Future for Native (Mobile) Applications?
The ongoing success of native mobile application has fueled a passionate debate across our industry. Google's DeWitt Clinton explains:
Native mobile apps today feel better, run faster, are easier to monetize, and are more convenient to find than mobile web apps.
But that's a bug, not a feature. This model didn't survive on the desktop, and there is absolutely no reason to think it will in mobile, either.
His post was a response to GigaOM's Stacey Higginbotham interview of Josh Williams, Gowalla CEO, who explained:
Gowalla had built both an iPhone app and a “beautiful mobile site” for other smartphone platforms, but people overwhelmingly used the app ... it drives a stake in the heart of the build-once-deploy-everywhere model, and makes the market really fragmented.
Stacey sees a broader trend:
It’s also an indication of the wholesale shift in how people use the Internet and the nature of the Internet.
now it seems laughable that [in the late 90s] people didn't see clearly the upcoming dominance of webapps over native apps on the desktop: Google, Yahoo, Facebook, Twitter, YouTube, Amazon, Ebay, Gmail, MySpace, Craigslist, Wikipedia, Blogger, Wordpress, etc., etc., etc.
What native app do you use the most on your OSX or Windows machine? My money says it is Chrome, Firefox, Opera, Internet Explorer, or Safari.
it's still far, far easier to build a browser-based app and reach hundreds of millions of people than it is to build multiple native desktop apps for the same audience.
Stacey notes that native applications have succeeded at building a business model where the Web has had some difficulty to monetize content and applications:
apps are [not only] popular, but [...] folks can charge for apps while still unable to monetize their web-based services.
Even DeWitt concedes:
The mobile web browsers and mobile web toolkits of today just haven't quite caught up yet with the native environments.
But things are changing quickly:
- jQuery team recently announced the jQuery Mobile Framework (jquerymobile.com)
- GWT Mobile Webkit (code.google.com/p/gwt-mobile-webkit), which offers a library to "leverage HTML5 and Mobile WebKit features"
- the mobile browsers are advancing quickly as well, with Opera and Firefox leading the way
there is no technical reason that mobile web apps won't catch up.
Not surprisingly, DeWitt's post generated a lot of comments. Anssi Porttikivi adds:
You cannot bookmark a UI state in a native app and share it to Facebook and others. You can not open several UI sessions like you can open several browser pages to same site. You cannot copy and paste at will, only input widget text. You can not search on a page. Whatever betterments the browser gets, the native apps don't, at least for free, for all, and in a consistent way. That was just a few reasons to like Web apps.
Denton Gentry noted:
I like the responsiveness and polish of a local app, but I want it to store (or sync) its data to the cloud. Never lose data.
Doug Purdy suggested:
One of the key factors at play between native and Web platforms is access to new hardware capabilities.
JR Holmes added:
People are not favoring web applications because they view the web as a source of content rather than as a tool for accomplishing a task. The relationship and functions there are quite different.
[Hence] it is little surprise that a web browser is the most popular and common program that people use. They spend most of their time consuming content in one way or another. In that sense, Gmail isn't a web app, but a way of viewing the email content.
Is there an inherent advantage to Native Applications as new computing devices continue to emerge packed with sensors and taking advantage of an ubiquitous high(er) bandwidth connectivity (3G, 4G)? Is it the business model which finally allows the creativity of long-tail developers express itself? will history repeat itself and impose new Web standards? Or are we entering a new era in the architecture of (composite) applications driven by user experience? What is your perspective on the question?
Horses for courses
How many people actually use things like tweetdeck, or seesmic for twitter & facebook or Word to post blogs? How many times have you lost your tab, or gotten enfuriated waiting for a buggy page to load?
"Web" is fine for viewing flowing content and maybe a bit it data entry here or there, but there is no beating a native app on any platform for a best user experience.
Re: Horses for courses
I agree with you. DeWitt fails to take into account new applications like FlipBoard (for the iPad) which "screen scrapes" the Web to offer a vastly superior UX that will be impossible to reproduce any time soon in a browser. Apple will also soon release a unified mail client that will probably take a good shot at gmail. Combined with Doug's argument on the hardware, and supported by a strong business model. native apps could become a seismic shift in the industry, also impacting the way we use laptops. Google may simply refuse to see the elephant in the room because its developers can code their way to compete with native apps, but ultimately, very few developers have that kind of skill.
After all, the value of Web Apps may not really be in its UI, but rather in its services. Now that I can bring the UI with me, why should I care whether I can access my data or content from any browser?
Re: Horses for courses
Anothere great example is using Remember the Milk's native app vs the web app. They are very similar but i still prefer the native one because, as someone put it, the polish and responsiveness.
I sincerely hope to see the web app toolkits and browsers advance enough to make it possible to create very responsive apps that make you actually think twice about using it vs your native alternative (if there even is one). But until then, the native app will win the race especially for apple because it sells hardware. Apple can release exclusive new features in the latest product and allow only native app devs to use them in their exclusive sdk.
Re: Horses for courses
This is now increasingly being brought into question as stats begin to show the limitations of market reach, problems with synchronisation and the multiple extra cost and effort of managing, developing and maintaining similar apps for different OS.
Apple, and others, have done a great job in stimulating interest in mobile and there is undoubtedly a time and place for Apps in relation to their ability to provide useful mini-software functionality that the web can't but for universal reach and ROI, WAP based mobile web has to eventually become the dominant force.
The current problem is that until the majority of businesses and content providers realise that their existing desktop site isn't at all suitable for mobile browsing there is very litle in the way of decent mobile-friendly content out there. (Just try running most existing sites through W3Cs 'MobileOK' checker.)
Right now, this all feels very much like it did back in 1995 when it was a chicken and egg / Catch22 and early-adopters worked on the principle of 'Build it and they will come' - and they did in a massive society-changing way.
Mobile browsers are now well-developed and most support all the elements necessary to provide a worthwhile browsing experience.
We're just really waiting for businesses to become better educated about mobile web and their resulting investment in providing true mobile friendly content.
Go lang for Android platform - native code approach instead of VM
The Android version of Java requires the Dalvik VM to execute. Go language, however, compiles to native code and there is an ARM compiler. Its runtime library is layered on top of POSIX APIs and would be relatively easy to implement on Linux-based Android. (It supports garbage collected memory management and has nice Erlang/actor-like goroutines and channels for implementing concurrency.)
Go language needs a dynamic link library enhancement, though, so that its runtime could be supplied as versioned dynamic linking library. Smartphones could then cache different versions of the Go runtime so as to match up with various generations of applications that get released in the app store. (Adobe Flash Player has similar feature of runtime shared library for caching the Flex SDK libraries.)
Web Apps = Green Screen
Secondly, websites are too expensive -- too much data -- not just ads but other irrelevant content. Whether on Wifi or cellular, I don't want to pay for or wait for the massive amount of content which isn't focused on what I want to see. Bandwidth costs, and as providers start to charge for usage (as for cellular) it is important to me that I don't waste my allotment on downloading apps (Flash?), graphics, java applets.
The best use of the web should be as a source or sink within SOA. Native apps accomplish this, in addition to having functionality not requiring a connection, and making use of native hardware.
If anything, native apps are where the action is, and general browsers, the green screens of the web world, should be doomed.