I Hate That We’ve Gone Native

July 9th, 2010 by ryanstewart

I love the web. I love web development, I love web applications, and most importantly I loved where we were going with web applications. I was obviously a huge proponent of rich Internet applications and capturing a better user experience inside of the browser. Combine a great user experience with all of the good things about running in the browser (deployment, ubiquity, cross-platform, free publishing) and I thought that was a winning combination.

Then the App Store came along. Now everything is about standalone mobile applications. It feels like the web has taken a backseat as developers plunge head first into building native applications and users download them in droves. What bugs me the most is that I’m the same way. Most of the applications I use on my phone have perfectly good browser equivalents but I use the native app.

Dancing With Wolves

So what the hell happened? I think it comes down to two things. One, the app store provided a much better economic model for developers. One problem with the web was the downward pressure it put on the economics of content. Actual dollars were replaced with eyeballs and people started giving away the content and making money on advertising. (Think about how this affects Google, the ultimate web company; With revenue driven by advertising, they get a cut. With revenue driven by the App Store, Apple gets a cut.) With the App Store, developers can go back to charging directly for stuff they create instead of giving it away. It’s also insanely easy. They don’t have to worry about taking a credit card, setting up payments, or anything else that developers don’t want to worry about. They just have to build software, set a price, and the checks come in. That’s incredibly compelling. Especially if you’re doing development in your free time as a hobby. Now you can easily get paid for it without having to do any of the business tasks that might bog you down if you tried to do it on your own. That frictionless entry has changed the game for a lot of developers and created a huge supply of native mobile applications.

But that doesn’t explain the consumer demand for applications. I think that lies in user experience of applications. Prior to the explosion in mobile apps, we were getting close to a native-like user experience with RIAs in the browser. The components were better, the user interactions like drag-and-drop were appearing, and we were tackling problems like offline access directly in the HTML5 spec. Even the browsers were one-upping each other to be faster so we could get closer to native performance. The gap between a desktop experience and an in-browser experience was closing quickly.

Then quality mobile devices came along and changed everything. Instead of a mouse pointer we were dealing with fingers. Instead of worrying about offline access we had a ton of new functions on the phone including built-in GPS, accelerometer, camera, and a compass. The fastest and best (and in some cases only) way to take advantage of these new features was with native applications. Furthermore, the web experience was very much stuck in the old “pointer” mode. Mobile Safari on the iPhone made HUGE improvements to the mobile browsing experience, but nearly all of the websites were built for big screens and mouse pointers. Using the mobile browser on the iPhone (or any smartphone) is a lot of zooming and dragging. Even worse, some of the things we worked so hard on when it came to RIAs, like drag-and-drop, didn’t work the same way (or at all) and became more of an annoyance than a great feature.

So almost overnight all of the user interface paradigms the web had moved towards were rendered useless for this generation of mobile browsers. There were some initial attempts at fixing the issue, the best example is iUI by Joe Hewitt, but most people moved towards native apps. With better access to all of the new features, who could blame them?

The Light at the End of the Tunnel

So what does this mean for Flash developers? To be honest, I’ve been a little nervous. There is a huge drive to get Flash on mobile devices when the world seems to be crazy about apps. If you want to build apps with Flash, you can do so with AIR for Android (and eventually other platforms). But I don’t want apps. I want the web. Up to now, a lot of the interest/debate has focused on consuming basic content in Flash. People want Flash on their devices so they can watch video and play games. But we were making huge progress on in-browser RIAs with Flash. I want that momentum back in mobile form.

But what if we can revolutionize the in-browser mobile application experience the way Flash helped revolutionize RIAs on the PC? There is already an undercurrent of anti-native sentiment in the development community. Take a look at Sencha Touch, which is a fantastic looking mobile application framework designed specifically for i-devices and the mobile browser. And their first marketing campaign is even better, declaring the “end of native” at WWDC.

That’s exactly what the Flash community should be striving for. What’s so great about native? The performance? The user interface? Those are both things we can overcome with better technology and better design. Is it that it’s so easy to make money? Then the web is ripe for a better business model. The biggie is feature access. But here’s where Flash has always led the pack. We’ve had camera/microphone access forever and have always led the way in expanding the functionality the browser could take care of. If we can follow that trajectory on mobile then Flash developers are in a great position to make mobile browser apps a reality.

And that’s what I’m excited about. Screw native. I’m a web developer.

Posted in Adobe, Flash, Rich Internet Applications

17 Responses

  1. JulesLt

    I think you are bang on with the economic story – there are a lot of loud evangelists for ‘free’ (including an awful lot who do not actually contribute anything of their own) – and of course Google’s well-funded lobbyist groups.

    The App Store, on the other hand, proves there is still a market for consumer software.

    The Internet has utterly failed to develop that kind of micropayment infrastructure – some combination of PayPal and OpenId??

    Ideally it needs baking into the browser itself, but there is such huge reluctance to do so, due to the ideological idea that things have to be open (and therefore free).

    Without it, we’re going to be stuck with either amateurism (in the best sense) or the problems that ad-funding causes – you need to reach mass – there is no room for ad-funded sites that reach the low thousands, yet the App store allows niche products to survive on sales of thousands at $15 a pop – or mass products cheaply.

    (Or failure, if you price yourself cheap and sell thousands).

    In print publications you could also charge more for low-circulation advertising if you could prove that you reached a specific market – Cigar Aficionado, for instance, is full of luxury goods advertising.

    Again, the web ad market doesn’t work that way.

    There is a notion that people want web apps – but I don’t think it’s true – I don’t think users actually care what software is written in.

    The iPhone/iPod solves the deployment / install thing as far as the user is concerned.

    The other thing is having a button for ‘Twitter’ is quicker than opening the browser and clicking on your Twitter bookmark (of course, you can create an icon for a direct link to a site, but relatively few users know that).

    There’s also ‘perceptual performance’ – your Twitter app appears to be doing something quicker than opening up an equivalent web app, even if the total time to displaying message content may be the same.

    The only way to get past that will be cacheing more and more app content, introducing something like Flex RSL, and eventually you start having something that looks an awful lot like native software (delivered as source).

  2. Angel Kafazov

    Hi and thanks for the informative post.

    It got me thinking about native vs. web apps. Who has the better platform and who is better prepared for the future?

    Windows Phone 7 seems to move in the right direction, although there are many things I don’t like in it. All apps on this phone are Silverlight applications, based on the web, but well-integrated into the platform. At least this is the idea. Silverlight is very progressive platform and is great of RIAs.

    Then Google is developing Android for tablets, where the browser is the platform and every app will be web app.

    If those pick up momentum, and they probably will, then we should be on the way of integrating the web into the smartphone.

    What is Apple doing about this?!

  3. Time Clock Software Guy

    Spot on comments. I think we’re staring to see the pendulum swing on web development for mobile devices.

    Remember that Apple started with web only development for their mobile platform when they released the original iPhone. They stumbled upon the app store as they sought to promote their space.

    I find it interesting that Steve Jobs at WWDC in May went to great pains to say there are two great ways to develop for their iOS – HTML 5 and their App store.

    Since Flash isn’t departing the web any time soon, I’m betting there has to be movement to support Flash on all web based centric mobile devices.

  4. leef

    I’m with you, I prefer web-apps in a platform agnostic world. But until someone gets a dumb-simple web-app-store in front of users, native-app-stores reign.

    How to get apps?

    With an appstore: Go to the store, called the appstore. It’s on your desktop by default, and can’t be removed. Someone hs groomed the store, and done their best to make it easy for you to find apps, and buy with 1 click. Makes dumb sense.

    With the browser: I don’t know, search at google.com or bing.com maybe? Amazon? Already the typical human doesn’t have a clear path, and gives up. Fail.

    Google’s building a web-app store, hopefully they get someone to give it a nice UI, and make it easy to find & use. https://chrome.google.com/webstore

  5. Rich Rodecker

    I agree with this, but isn’t there also the issue of device hardware access?

  6. Rich Rodecker

    nm, i just realized i missed that in the last paragraph.

  7. Daily Digest for July 9thEvan Mullins = Circlecube | Evan Mullins = Circlecube

    [...] Posted I Hate That We’ve Gone Native. [...]

  8. Sean

    I would like to say I agree on most of the points you make but there are a couple things which I think are at the heart of the problem.

    1) Native apps run based on the performance of the device they are on and thus run smoother and end up with fewer performance bottlenecks. Console gaming systems are a perfect example of this. All their “applications” for all intents and purposes work perfectly on the system they were intended to be built on with scalability a non-issue. Where as building to an operating environment leaves scalability to the mercy of hardware manufacturers. I can’t find 1 app on Android or iPhone that works as fast or as flawless as their previous iteration counterparts (Android is notorious for this, and the iPhone to a lesser extent).

    2) While a good portion of the Smartphones out there are web enabled or web dependent, rarely ever do we have consistent or persistent access (i.e. – signal drops, etc.) so apps need to run without dependencies as far-reaching as web-only apps. I can’t have a phone that is so web-dependent that simple or even somewhat expended functions of it are handicapped by lack of a connection. I’m sure a number of people would tend to agree on this point.

    3) Integrating the experience is probably the largest hurdle. Right now the experience on most Smartphone devices are either a) so closed-source as to create a simple but locked-in experience or are b) so open-source as to provide a fragmented experience. I don’t have a solution for this one but I imagine there’s got to be a middle ground somewhere.

    If Smartphones adopted something closer to Chrome OS but offered an offline operating environment (a mixture akin to marrying the iPhone and Android) we could have a much more optimal solution to the concerns you have. I would love to see AIR apps flourish on all the open platforms, and I’d love Google to make Android a more unified system while retaining it’s current open-source philosophy.

    I’m sure there are other issues or even some counter point to the above, just my two cents.

  9. Jon Toland

    I wish I agreed with you. But it sounds like a lazy sentiment to me.

    I transitioned to Flex and Flash due to frustration with cross browser concerns and lack of scalability of code complexity using traditional web technologies. “HTML5″ looks better but negligibly so.

    Having worked in this camp for 3 years now I’m sick of the platform. Yes it remains a good alternative for RIA to traditional web technologies. But all it’s got on Silverlight is ubiquity which is bound to wane. And when you’re talking about the mobile platform (SL too) each participant has provided much better tooling from languages, to APIs, to HIG, to component kits than Adobe.

    Who doesn’t want CLR or JVM languages like C#, F#, Scala, Clojure, Java, or Python or Ruby ports? Adobe can’t even implement the remainder of the respectable ES4 specification which had a working reference implementation:

    http://www.ecmascript.org/es4/spec/overview.pdf

    Microsoft and Apple have much better applied experience building GUIs and Google deploying clean APIs contrasted with bloated mx.core.UIComponent accompanied by an plethora of lesser implementation details that should not have passed any code review. mx.olap.IOLAPCubeImpl…really???

    On a fundamental level hosted runtimes also break expectations of user interaction. Flash TextField and right click are cases in point. FTE added undo and redo but that’s just one subtle behaviour. Have you not experienced the pain of AIR on Mac? Where’s Services in the App menu!? Help menu?!

    So why complain about native? Same reason web standards kids complain about Flash? Barrier to entry? Is it really about cross deployment? At expense to developer enjoyment of tools like Scala? At expense to quality?

    In personal practice I almost always prefer Cocoa apps over Air equivalents and am actively learning Android.

  10. leef

    The google web-app store or any webapp store needs to live on a desktop. It needs to be baked into an OS such that its given an audience instead of hoping an audience finds it at some URL in the browser. I’m hoping Chrome OS & GoogleTV both do this, and that Google features in on their search page.

    Any web-appstore that is only found by navigating to it in a browser is fail compared to having it as a default non removable part of the OS like Apple did.

  11. Daily Digest for July 10thEvan Mullins = Circlecube | Evan Mullins = Circlecube

    [...] I Hate That We’ve Gone Native [...]

  12. Joeflash

    Fortunately, for many apps, this doesn’t change a thing. The fact that the consumer market is gaga over mobile apps doesn’t affect the Flex enterprise market, which is my bread-and-butter. Why? Because business apps need a certain screen screen real estate to function, whether it’s a slideshow designed in SlideRocket, an Acrobat Connect e-learning session, or an intranet-based server visualization dashboard Flex app, to name a few. Nor does it affect many social media games, which thrive on the web. And there many other examples. The middle market is of course the tablet OS-driven devices, which is where the true battleground between browser-based RIAs and Native Apps will be played out in the next year or so.

    I think what we’re going to see is not so much the death of web RIAs, but a refining of them, making use of faster browsers, serious graphics acceleration & bigger screen real-estate, which is an area in which smart phones and compact tablet devices can’t compete. I think what we’re going to see is a proliferation of publishing mediums for Flash apps.

    As soon as all the Android OS and Windows 7 Mobile-enabled tablets finally hit the market at the end of this year, the reign of iOS devices will end, and developing for them will be just like for any another corner market. And when that happens, Flash will, once again be everywhere, truly fulfilling the decade-long promise, first by Macromedia and now by Adobe, of not just a browser-agnostic, but a truly screen-ubiquitous development and publishing platform. Developers already build Flex apps for both browser (Flash Player) and desktop (AIR) experiences. Very soon it will be a given that many apps will be developed for even more mediums, even more devices, with the flexibility to publish once (just one AIR app), and have the application dynamically adapt itself at runtime to whatever device is running it — whether it be a desktop/laptop machine, a tablet/netbook device, or a smart phone.

    And for that reason, I no longer consider myself a web developer, an RIA developer, or a device developer.

    Like the Molson commercial ;)

    I.
    Am.
    A.
    Flash.
    Platform.
    Developer.

    It’s an incredibly exciting time to be one.

    Peace.

  13. I Hate That We've Gone Native | Ryan Stewart – Rich Internet … | thedailyconnect

    [...] here: I Hate That We've Gone Native | Ryan Stewart – Rich Internet … Related Reading: Patterns of Enterprise Application Architecture Glazed Pinecone Diffuser [...]

  14. Fadzlan

    Pardon my question, but nowhere in the article I notice the reason why you choose web over native. Care to explain?

    I know that you are a web developer and you might not like this native “movement” (hate is a strong word though, but well… to each his own), but to your audience I think they need more reason to agree with you rather than its because you hate it.

    As for me, there is one advantage of web over native, which is platform agnostic. However, it simply does not have good monetization yet for niche products. And when you talk about Flash for mobile, at this moment, there is only Android. From what I’ve read so far, it probably practical on high end devices so far. That almost rules out Flash for mobile, at least for now.

    Since the mobile web advantage is not so strong, at least for now, and the fact that native had a lot of advantage (access to the wealth of API by the platform owner).

  15. ryanstewart

    Thanks for all of the thoughts guys, I’ll try to respond to most of them.

    @Jules, the two biggies are definitely the economics, and that the web doesn’t have a good “long tail” or niche model and the perceptual performance. I feel like the last one can be fixed, but it’s a big, big deal. The first one, obviously, is a lot tougher.

    @Angel, I love the direction Silverlight took. For it’s extra functionality, it stuck with the browser model and went with a “higher trust” option. With Windows Phone 7, your apps are still all done in Silverlight and in theory, portable to the web.

    @leef, yeah, the finding apps (and selling them) is the hard part. I feel like there’s a market there but it’s an incredibly difficult problem to solve. It’s really interesting to see how easily people on the iPhone jumped into the app-buying spree. I think there’s just a perception wall that what’s in the browser should be free and what I take with me, desktop/phone, I have to pay for. that sucks.

    @Jon I completely agree about a bunch of your points, especially the look and feel. Native apps do look and feel better. But is that something that can’t be overcome?

    @Joeflash, we need to do a parody of those commercials. I wonder if we can do that for MAX :) .

    @Fadzlan, I like the web deployment model (put it on a server, it’s up), I like the cross-platform nature of web applications, I like the fact that there’s no walled garden to web applications, I like the flexibility of web development. All of those are why I like web apps over native apps. And I’m talking about both Flash and HTML, not just Flash on mobile devices.

    =Ryan
    ryan@adobe.com

  16. Dev

    I think PhoneGap project is quite promising, by porting WebKit engine to major phone platform, make web app run as Native app on the phone with hardware features.

  17. Coté's People Over Process » Links for July 9th through July 14th

    [...] I Hate That We’ve Gone NativeA cry for more focus on web apps vs. native apps. The comments are a good round up of developer-sentiment on the topic. [...]

Leave a Comment

Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.

About Ryan Stewart – Rich Internet Application Mountaineer

A blog by a Platform Evangelist at Adobe covering Adobe's RIA platform. Includes posts about Adobe Flex, Adobe AIR, ColdFusion, LiveCycle, Thermo, and everything in between.