Apps are too much like 1990's CD-ROMs and not enough like the Web
I'm starting to resent Apps like I resented CD-ROMs.
I started playing this evil little game called Tiny Tower last week. It's effectively a Sim-Tower-heroin-clone-resource-management game. Every few hours I return to feed the beast make sure the little "Bitizens" are OK. Moving things, managing resources, restocking virtual shelves with new virtual goods. Mindless and addictive, but pointless.
The Update Beast
I realized that I'm doing the same thing with the apps on my phone. I'm always feeding the Update Beast. How often have you looked at Non-Technical Friends phone and showed them how they need to update their apps? All the time.
Installing Apps is like the old Flash CD-ROMs of the 90s. We couldn't do something on the web or over the wire so we used the ultra-high bandwidth of sneakernet along with native APIs to deliver richness. Then we'd endlessly download updates and patches (*cough* Diablo *cough*) until either a new CD-ROM was released or bandwidth increased enough to effectively deliver the whole CD-ROM over the wire.
If you had to install updates to Facebook, do you think you'd use Facebook very long? Auto-updating fixes only part of the problem. Sure, we'll get that feature one day, but the apps are still little islands of functionality that don't talk to each other. It's great that they talk to the Cloud and to various services, but few apps know they aren't alone on my phone. In fact, nearly all my apps live in the Tiny Tower of my phone but think they are alone.
Go Somewhere, like the Web
But as a user, more and more, I want to Go Somewhere and get functionality as opposed to Bring Something To Me to get functionality. Managing apps, updates and storage is as pointless as my managing my growing Tiny Tower.
If all these hundreds of apps were places I could go, link to, always updated, and always fast, would they still be apps? Would they just be bookmarks? I think they'd be something else. Web Apps are largely a hack today, no matter what browser you're running. But when what you can do in the browser matches what you can do outside the browser, interesting pressures will start to be applied.
Native Pressures push the Web forward, The Web pressures Native Apps
Native apps have the advantage of a richer experience right now. But the water level is rising and every time I think I've seen it all on the open web someone goes and ports freaking DOOM to HTML. Yes, JavaScript, HTML and CSS is a mess and it's hard, but it won't always be. As browsers get smarter native apps will introduce new interaction models, hardware accesses and new features. Those will get folded into HTML 9, then HTML 10 and the cycle will continue. I agree with Dave Winer that the real win is linking. That's the one thing that the Web brings that apps have yet to replicate.
I would hope that users just see better experiences and developers have more fun using better technologies and one day I'd just notice that the "Tiny Tower" of my phone had become a self-managing and connected system. Kind of like a real tower.
About Scott
Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.
About Newsletter
App up lightly.. Just because they give free samples away at the store doesn't mean you need to eat them all up. Un-install what you don't use regularly as you can always install the latest editions from your purchase history. [Analogy] It's like carring every credit, debit and rewards card in your wallet. The updater is an indicated of your wallets thickness and you'll feel some pain if you sit on it.
Hint: If you haven't used an App since the last OS version update, you probably don't need to carry it around in your device (wallet).
Alt. Option: Plug-in, connect to wifi & Update All before you go to bed. ;)
--Brian
On the desktop, everyone is advising against building applications even for things that are essentially a heavy-processing task (like some enterprise applications) or a fundamental desktop task (like managing it).
On the phone, everyone is building an app where sometimes it just doesn't make sense. Content apps is a big example. Why build an app for a news site or a blog? I visit a blog these days, and the first things I see is “Get our free iPhone app”. You people know that it doesn't have ads, right? Your blog have ads while your app doesn't and you're asking me to use your app when I visiting your web site.
Why do content web sites need an app anyway? What happened to mobile sites? When I open one of those apps, I'm literally downloading everything I see on the screen. IT'S ALL CONTENT. How is that better than just using a mobile web site?
If you ask me, it's all about trends. Some company sets a new trend with a success and then everybody go crazy for that. Apple started it. “There's an App for that”, and then it was.
The real win is linking. That's the one thing that the Web brings that apps have yet to replicate.Maybe the apps on your device...
Combined with the hardware back button, Android's Intent system is everything you like about links and everything we've cobbled together with bookmarklets all mashed together and injected with anabolic steroids. So great I even miss it when I'm browsing the web on a Real Computer. Thanks to Intents, every time I go through the highlight -> copy -> new tab -> type url -> find textbox -> paste process I feel like a damn cave man.
I think we'll always have interpreters (like a browser, or .NET or Java VM) that can deliver almost as much as a native binary, but not quite, for less effort. The trick is identifying the "not quite."
I agree with the above comment that too many apps these days simply don't need to be native apps (that includes desktop), which end up just reinforcing the point of this post. Why should every user have to update their native app when you could just update your web app?
Linking native apps... isn't that the job of the OS? With most OSes, I think you can register a native app to handle URLs of a specific scheme/protocol (e.g. iOS). Seems under-utilized, though.
Some many promises from newer browsers, but so many polyfills for people that think that IE 8 is just swell.
apps that replicate a website are pointless... apps that simplify functionality to device specific scenarios are great.
One reason there are mobile apps now rather than just mobile sites is people think apps make money.
Another is people want to experiment with new technology so after doing years of asp.net, building a mobile app for the iphone or android is pretty exciting.
I could call it "Immersive", but it would still be ugly.
We often build Apps and m-sites in tandem with a shared webservice layer. The app is always miles faster as it doesn't have to download the html etc... just the JSON to drive it. Until 3G speeds in Australia become alot faster I still see this as being a key driver in building an App instead of an m-site.
We just transitioned to Goggle new look. For couple of days we had a choice to go with new UI or to use old one (may be the choice is still there). Isn't it the 100% app update?
Linking. Some people say you need to go to Facebook app to update status, then to CNN app to read news, then to Fandango app to order a ticket and this is really annoying. But alternative is to go to different web sites (with radically different designs, mind you). Why that's different? Because it's a link and not a button?
Of course, I know that the difference exists (I am programmer after all). But may be it's just us? May be the difference is purely technical - we are feeling it because we know the underlying technology?
"You see, honey, this Youtube video is shown to you by browser by means of special HTML tag. It's a great achievement of modern civilization. But this Youtube video is just plain local player which is loaded when you press on that picture. Same as we did last century. You understand now how they are totally different, don't you?"
Facebook use HTML5 for enabling developers to bring their apps to the mobile Facebook app, there was the rumored Project Spartan that they'd open their own web app store.
There's no doubt that one day very soon you can access the phone's hardware from the web. Just as you can request a user's location, you should always be able to request a camera capture dialog.
I assume that what you refer to as a hack is the hybrid app approach. It might be a hack, but as long as you get access to the features you need and you save the user from doing updates, it's the same experience as a site bookmarked to the home screen.
Actually i think that some developers and even users might no see the true flexibility of a web app.
If you go around the forums everyone things that native apps are more powerful so they go for it.
Native apps have lots of advantages specially if you want to target multiple resolutions and multiple OSes.
The question is, if facebook stopped developing the native app and started improving the web app exclusively the would the users make the jump?
We should be able to promote web apps on the Apple App Store, Android Market and such, otherwise users won't get used to the fact that there's more beyond the native apps.
http://www.netmagazine.com/opinions/mobile-apps-must-die
Granted that will be a minority of the time, it would still really suck not to be able to play Angry Birds (or Fruit Ninja, or whatever) just because I didn't have my internet connection.
For simpler apps that should run on tablets, great, we'll use MVC, but even as good as MVC and JQuery, and the host of other web tools are, it's a nightmare to try to write/maintain/QA processing heavy, UI-rich apps on that platform. I fully believe it will get better, but that doesn't help us today.
The whole reason apps existed was that the web experience on mobile was terrible. Now that that's (mostly) obsolete, I think apps are still around because the middle men of the world love them. Look at the icons in your screenshot - an app to sell phone calls, an app to sell books and an app to sell apps. It's all middle men...
If apps are like CDs, then Google, Amazon and Apple are like the cable companies and the music industry. Just making a buck by limiting your access to the content you want, right?
Exactly. And an important corollary to this is that my apps work just as well even if I have unreliable or slow internet service (which, even with a major carrier in a major metropolitan area, is far too often). Until we have ubiquitous reliable wireless broadband internet access, apps will continue to play an important role.
I can solve the "update" problem, if there is one (auto update in the background... not really any different than the website updating on me, which BTW, users hate just as much). I can't solve the problems inherant in running applications within a browser.
You want all apps to run in the browser. I want to go back to using the browser for what it was intended for (reading and hyperlinking documents) and get my apps back out of it. Sure, let me find and launch these apps from the web, but don't put the apps in the browser, thank you very much. OneClick type solutions, especially if they can be done without leaving an installed application on the system, are where I want us to move.
That's an argument I can't agree with. First, HTML5 is bringing about the ability to run apps locally without an internet connection. Secondly, many of the apps being talked about here, despite being native apps, rely on network connectivity to do anything.
[)amien
Another factor is time to market and toolset. In general I find developers throw applications together without much thought. Applications are evolved and don't necessarily have a roadmap or vision upfront. Things like updates are seen as a means to deploy new content instead of deploying small updatable application shells where the focus is on online update able content that is cached for offline use.
From a user standpoint as long as the app does what I need from it and doesn't crash I don't mind, web apps blatantly wrapped in a native UI annoy me, what was the point? Better looking apps are more likely to be downloaded by me, but as longs as its usable I personally don't mind.
+better perception
+easier to write
+easier to find
+checked for malware(except Android)
+easier to get money
Web:
+same for all platforms
Native apps may be the next 'web' when you can use them without install(and charged for usage) - binary file is smaller than html+js+css.
If you watch some more videos from Build conference than keynotes, you will see that Win 8 tablet will have the same capabilities as web: linking, sharing between apps using apis + consistent look using spaces and typography
Really, web apps are dead, it is just slowing down momentum. Lot of developers are trying to make a little more from of investment they did learning web.
I'm sure there will be again new java, new web - the same experience for all devices, but not in current form.
Apple's response to Smurfberrygate was basically to make buying and maintaining apps a total pain in the ass.
One of the biggest disadvantages of webapps is a simple one in my opinion: there is no easy way to (programmable) get an icon on your homescreen/in your programs overview! Native apps install, get a nice icon on your phone, but for webapps this is a drag (at least on Android it is).
Also: to my knowledge, it isn't possible to run processes in the background when using an webapp and minimizing your browser. This can be a disadvantage.
The last problem: native apps are sold. In a store. Payment has been taken care of by Apple/Google. Easy. With webapps you have to think about how to make money with your app. Wan't to sell access to your app? Then you need to take care of the payment-methods. Your customers have to go through the whole payment-routine every single time.
When there problems are solved, I really think 80% of all apps can be developed as html5 webapps. Only apps which need access to, for instance, camera, need to be native. But in the future I think there will be html5 standards to access that kind of options, too (like you can access GPS now in html5).
The article complains mainly about two issues both of which are solved by the Android platform:
1) The keeping-applications-up-to-date problem has been addressed by the auto-update mechanism introduced by a Android Market update for some time now. The apps are updated silently in the background without any user-interaction whatsoever. That's exactly what Chrome does for the web. If you keep Chrome open for decades then your web apps will not upgrade either, at least not in the way you think they will.
2) The every-app-is-an-island problem is symptomatic of iOS since you are only allowed access as Apple sees fit. However, this is a solved problem on the Android platform through the use of Intents and the Back button which works as good as any web linking would.
That new Nokia, is the bees knees.
Because I don't have the marketplace tile on my start screen, I am not nagged by the update number, so I don't really have to think about it.
With web apps, I need to update (i.e. download) the UI *every frigging time*. Now, that is annoying!
Cheers
Laurent
1. User interface. Web apps are, without exception, incredibly ugly. Google docs is ugly, Facebook is ugly, Twitter website is ugly -- but native clients are beautiful. Better yet, they are customizable if you don't like the default look.
Why are web apps so ugly, though?
2. This brings us to the second point. Web apps try to avoid all the fancy UIs and animations for one reason and one reason only -- to make it faster to load and navigate. But still, it's nowhere near as fast as native apps, and never will be. This makes a huge difference.
I can't see these two problems disappearing any time soon. So, native apps are going to thrive for years to come.
As device access becomes richer there will be less need for native mobile apps.
Our last two mobile customers came to us asking for native Android apps and we ended up creating mobile web sites in app containers. They were thrilled with the result.
There's no reason why desktop or mobile apps can't do the same (aside from the security/legal implications, whether real or preceived by the app market that's making these apps available for download).
Chrome's implementation is becoming a norm: with Firefox and IE following their lead. I'm sure other apps will be doing the same.
Another issue, particular to the android OS, is the issue with updates not installing when the app is not on the primary storage, i.e. the SD Card. The update process forces you to download the latest version and then start to install before being informed that the app cannot be updated. Why add obstacles to an already outdated process.
Auto-update of apps would be OK if the option to rollback to a particular version existed (not necessarily the previous version of the app, but the previous version you had installed) but this would mean Apple maintaining all versions of apps on it's servers, and I can't see that happening.
> You're never told of a new version that is available, let
> alone one that you have to manually download one.
> It just happens
Except that people may not like this, depending on how paranoid they are or if they happen to like your company at the moment...
The problem is that if you're not Google, then nagging for updates may be the only brand awareness/reminder tool you have, especially if your code is embedded or otherwise invisible even if it's pervasive - do you really think that Flash or the Java VM need to get updated every freakin' week? - the update toast from Adobe and Sun are saying "look, remember me? - I'm still important!"
https://developer.mozilla.org/en-US/demos/detail/doom-on-the-web/
now ends up on
https://wiki.mozilla.org/Legal/Infringement_Notices/3_June_2011
Hail Kopimism! (http://kopimistsamfundet.se/english/)
:)
Can't they make it automatic or background or something :)
I think that's the only reason apps exist at all. Otherwise it seems ridiculous to have to write the same "app" 3 times in different languages for different platforms. It's worse than the CD-ROM days, it feels like a return to the C64 vs Apple IIe vs ZX Spectrum vs Amstrad CPC 8 bit days where a game had to be completely rewritten for every platform.
Comments are closed.
I mean, I can understand the apps that use the phone's digital camera or other hardware, but why should I download apps to view websites? When I say this to (mostly non-technical people), they kind of look at me strangely until I ask them how they'd feel about downloading and installing a piece of software on their desktop that would allow them to do google searches. It's just like using the browser, except it takes extra disk space and sometimes you have to download more stuff to fix bugs.
Do you think that we'll start to see a dropoff in apps that don't actually have any reason to be stored on the phone in the next year or two?