HTML5 Is An Oncoming Train, Native App Development An Oncoming Rocket Ship
techcrunch.com
techcrunch.com
2007: Let’s be honest: right now, most native mobile apps are a joke when compared to their desktop counterparts.
2002: Let’s be honest: right now, most web apps are a joke when compared to their desktop counterparts.
1999: Let’s be honest: right now, most Windows apps are a joke when compared to their Apple counterparts.
1993: Let’s be honest: right now, most client-server apps are a joke when compared to their multi-user counterparts.
1988: Let’s be honest: right now, most PC-based apps are a joke when compared to their mini-computer counterparts.
1983: Let’s be honest: right now, most mini-computer-based apps are a joke when compared to their mainframe counterparts.
1978: Let’s be honest: right now, most on-line CICS-based apps are a joke when compared to their batch counterparts.
1965: Let’s be honest: right now, most computer-based apps are a joke when compared to their pencil and paper counterparts.
What do HTML-based apps offer the user that native apps don't? They're easier to create and update, and they offer an inferior user experience. It may be an exciting new paradigm for developers, but from a user's point of view, it's just a cost/quality trade-off. The only distinction that is meaningful to users is installed app versus web app.
No, they're not. Good web apps have never been easier to create but what they offered was extremely easy distribution. What Apple did on the iPhone was make distribution almost as easy as going to a web page, knocking out HTML-based apps best advantage.
Also, don't discount the joy many consumers get from shopping and owning things.
Lower cost of development and lower cost of maintenance translate into more (and better) services for end users. It's unlikely that web apps are going to compete with "sovereign" apps on a phone like email or an RSS reader. But for a niche or transient application (like say, making a flight reservation or looking up your order status on a web site) the web apps probably are a better experience.
This has always been true on the desktop as well, until recently - you wanted a local email client and text editor, but you were fine using the web to access Wikipedia. (That's changing now, of course.) It's not sexy but _most_ web services / sites are transient, not sovereign, software and will likely translate better to a web app than a native app.
And they have a profitable marketplace too!
That's still true, and it's a better analogy. HTML5 in 2010 and Java applets in 1996 both promised portability at the cost of a nonstandard UI.
For HTML5 to become prominent, it needs to offer something to users that iPhone apps don't. Users don't care about portability or ease of multiplatform development.
I do agree that HTML 5 apps should not be trying to emulate native desktop or mobile apps. Instead, they should be what they really are: native browser apps.
CONSUMERS dont care about this - enterprise and medical applications should.
When you access an app/session from one device and seamlessly transition to another device and the same session, then the beauty of such a system will have impact on efficacy of certain tasks.
The consumer use of the iphone and android mobile devices will be strong and lasting - but to make significant impacts on how things are done in other verticals will not only be important - but also highly profitable for some.
I hope demos are a feature they're working on.
Seems they're working on a non-Mac App Store version too. http://blog.sparrowmailapp.com/post/3197243085/sparrow-1-0-i...
It's not cheap, but it's well worth the price (its also due for a paid upgrade soon, IMO, as I have not paid anything beyond the first version three years ago).
- high performance hardware
- mouse and keyboard
- larger screen
- consistency of experience on work/home machine
On mobile, as I see it there is no contest. Web apps make no sense.
Do you say that because of the expectation that to use a web app you have to have a working Internet connection?
[NB I'm not trolling, I'm genuinely interested, my current close-to-launch side project is a service that allows you to build data-aware HTML5 webapps for mobile devices - these work perfectly well offline]. :-)
There is no familiar way for users to install a web app (unless they are a bit tech savvy). My uncle adds favorites to its home screen to go to web pages, he knows that, and its impossible for him to think that a website is a website and if you add it to the home screen "turns out" to be like an application.
If a clearer interface was provided in the mobile phones, something like identifying webapps with a meta tag, or something, so that the phone could know and offer the user to install the app, the barrier for mobile webapps adoption could be lowered a lot.
I agree that "installing" an offline web app on something like the iPhone is a bit odd - largely because there is very little you have to do. You can just install it as a Bookmark or on the Home Screen (where it can have it's own logo etc. - like a normal app).
I'm more targeting getting structured (or semi structured) data onto a mobile device, possibly make the content editable and allow changes to be sync'ed back to the server to be shared with others or collected via an export or API.
e.g. I can take an Excel spreadsheet, turn it into an offline HTML 5 app, allow users to edit the data, sync all the changes and export it back out as a modified spreadsheet.
Call apple, ask to speak to developer relations. It's what I do.
I still wish you good luck, as most apps in wide use on the iPhone and Android simply shouldn't "have" to exist (apps for news sites, shopping carts, etc) because they can be done just as well, if not better through a web app. If you succeed, I might be able to buy my grocery shopping on my phone on the bus to work rather than being told I can't because I use Android and can't use the iPhone app.
On the other hand, I do expect my native apps to either sync or act as a client for net based services.
At the moment I use precisely zero web based apps on mobile with the exception of gmail, which I resort to only when searching since the iOS mail client search is useless.
On the point of interacting with the hardware, at least on iOS, you can get location data into your webapp and there are cunning ways of getting access to the camera.
You're not the only one.
Works across the 3-5 computers I use daily? Not really well.
Really the only desktop app which does any of this well, is perversely google chrome.
The web is a phenomenal success. It has created a massive new ecosystem and changed the social order of the world. It also catalyzed the collapse of the Windows empire, something that had been looking for a way to happen for a while. But that doesn't mean the web will replace Windows as the One True Platform.
Windows has some particular flaws that ultimately brought it down, the most significant being, in my opinion, its model of app distribution and installation. All of the new platforms adequately address this issue.
But the new native platforms also have a fundamental advantage over the web. They are designed from the ground up to support applications that can take full advantage of the latest hardware capabilities and present ideal user experiences. The web was not designed for applications at all and only by hiding the mountain of legacy cruft under layers of hacks has it even approached what native apps can do.
The web has its strengths -- it makes it super easy to publish gobs of content that is accessible to anyone, anywhere, anytime. It's very good at universal, generic interaction. But it always has and always will lag behind in rich, client-specific functionality. As fast as new capabilities can be finagled into browsers, new features, uses, and form factors will come to devices. You may be able to imagine some future in which widely deployed browsers can do any given thing, but you have to account for change across the whole technology spectrum. It's not just about possibilities, it's about pace.
There is no need to force a dichotomy. We have native apps, we have the web, both have their place and neither are going away any time soon. If you're a developer, learn them both and choose the technologies that are right for each individual project.
Desktop apps got their lunch eaten by the web based purely on the deployment and portability benefits, the UX still lags behind to this day. Granted the app store model mitigates the installation pain, but portability is non-existent, so my hunch is that HTML5 will pick up steam over the long-term as mobile browser support and developer knowledge coalesces.
Interestingly I think a lot of apps could go HTML5 today, were it not for subtle issue of web pages being awkward on mobile. Bookmarks and google searches just don't have the immediacy they do on a computer, so the very fact that native apps are easier to get to is a significant hurdle in terms of user behavior, even if it is possible to develop a excellent mobile-browser-based UI.
It's possible Apple, Google, et al could parlay this into a longer dominance of native apps, but that raises two questions: do they really care enough to attempt to sabotage HTML5? and will developers put up with the hassle of the fragmented mobile landscape? It's unlikely any of them would cripple their mobile browser ala IE6 because web is important one way or another, but if everything shakes out to an iOS/Android duopoly then developers may decide the pain is worth it. So no bold predictions from me, but it's definitely an interesting question.
Conversely, native apps suffer from the problem that once you deploy a package out the store, you have to support it (unupgraded) for the foreseeable future. That creates its own bucket of issues.
I'd argue that portability is a non-issue. iPhone developers know that to make sales to iPhone owners, their applications have to visually and functionally integrate seamlessly into that environment. The same is true for Android owners. Anyone writing a portable HTML5 application is at an extreme disadvantage. And the fact is, the effort necessary to make an excellent mobile browser based UI that integrates seamlessly with multiple platforms is more work than simply rewriting the app for multiple native platforms.
> And the fact is, the effort necessary to make an excellent mobile browser based UI that integrates seamlessly with multiple platforms is more work than simply rewriting the app for multiple native platforms.
Today. But HTML5 will steadily improve, standardize, and develop a rich open source tool ecosystem. This will never happen with proprietary native platforms. Sure Apple can go the Microsoft route, and sink an incredible amount of money into it's dev tools in order to create a superficially better experience, but if web development is anything to go by, developer tools are something that thrive on open collaboration; very few people would say that .NET is generally superior to open source web development frameworks for example.
Steve has created a new revenue stream for Apple, not only on developers fees but mainly in app purchases and percentage of sales. WHY would he give that up ? So while he is telling everyone how much he loves HTML5 and is promoting it, there are no intentions for apple to ever promote web apps other than lip service. Its really up to developers to stop this developer lock in, and refuse to build native apps. Build for the web, and do whats best for the future of mobile. Other than games and few apps that rely on hardware, most are just layouts calling webservices in the back end.
> Its really up to developers to stop this developer lock in, and refuse to build native apps.
Well, many developers has found that is easier to make money on mobile apps, than with their web counterparts. Why would they give that up? Is again a conflict of interest.
I hope the web will came back stronger after the native apps crisis, till them I will try to make money in both ends of the spectrum.
The great mistake of the author is that he assumes it is a spec contest. Native apps will always have a slight advantage, but "having to have one or two developers per platform" is the exact reason why the web will win out. They aren't at war because they don't have the same goal. Native apps will never be able to be universally distributed across platform or device. Period.
When native means only iOS then it make sense to just write a native version instead of a mobile web app, but when it means having to write a version (or two) for iOS, one for Android, one for Blackberry and one for Windows Mobile 7 then it makes a lot more sense to write a mobile HTML version that works on all of them.
And then there's the same old update headache.
Apple first supports Web Apps in 2007 http://www.apple.com/pr/library/2007/06/11iphone.html
News about the app store coming 2008 http://news.cnet.com/8301-13579_3-9798932-37.html
If I had a penny for every comment on HN that said how web apps are going to take over the world... finally someone woke up to the reality and wrote a TC article.
I think that applications that require high performance will always require a native app, but for the simple business applications out there mobile web apps will certainly do just fine. The devices will get faster, the designers will work out the user interface issues, and the programmers will make it easier.
The next five year will be dominated by native mobile apps, after that I really don't think we are all going to continue to pay the expense of developing on multiple platforms.
I want to write only in HTML5 to be fair, why? Deploy to multiplatform with small changes, no Objective-C or Java headache ;-P , but... it just feels as if it's not quite there yet, we are missing a little bit of performance in JavascriptCore, for animations (CSS the accelerated transitions work quite well) heck you can even achieve smooth parallax scrolling with some (mostly) css tricks on mobilesafari/UI WebView.
Now what's really missing here is a standard animation container, instead of doing CSS-sprite animations by creating loops that modifies background-position on elements (which will awlays be slower) there should be some other thing that lets you generate an animation (As a sprite or whatever) then play it accelerated in the DOM or Canvas... instead of using javascript to do everything.
Canvas performance is still horrible, but perhaps when apple comes around add adds more natively hardware accelerated stuff for the canvas and so on we could do some neater stuff. Whats my point, you can develop the vast majority of "apps" with no problem what so ever for iPhone/Android with HTML5, you do need a "FrameWork" to deploy to the appstore, such as PhoneGap, but in the end it's basically javascript/css.
Games on the other hand is harder, we're still missing a standard animation container, performance amongst other things. Add WebGL on top of this and you can probably come up with some cool stuff, not sure if WebGL is supported on the latest iOS/Android?
For me, Javascript/CSS/HTML is the UI future of apps, the backend can be whatever, Java/Python/PHP/C++, but for UI stuff, Javascript/CSS just tastes damn good and gives you a lot of freedom... my 2 cents.
What I want is some sort of container format for making animations, so I don't have to "hack" with background-position for a running animation as an example, sort of like GIF is a container for animations but obviously we'd need some sort of container that we can interact with... using javascript :P if that makes any sense.
Considering that this feature is crucial for my project's success (i.e. the ability to take a photo and upload it with geolocation), a web app for the iPhone is the same as not having one in the first place (or worse, since it is crippled).
And for example, another limitation is that you cannot automatically put the focus on an input field, unless it originated as a response to a user action. Why is that? There are instances where I just want the user to start typing immediately after a page loads (typing itself is hard enough, finding the input element and tapping on it is an extra chore that I could do without).
HTML5 and other browser technologies are fine, if only phone makers would not put stupid limitations on what you can do with it.
This is actually an intentional limitation of all mobile versions of WebKit, and it's driving me nuts too. See: http://discussion.forum.nokia.com/forum/showthread.php?12772...
The official explanation I've seen is that it would be jarring to the user for the page to automatically zoom and/or scroll by popping up a keyboard when the user isn't expecting it. This might make some sense for websites, but unfortunately has a side effect of crippling web apps. :(
Gmail is by far the best email client I've used. I actually like tweetdeck online version...
But I still use a native chat client and IRC client. I still prefer an office application (LibreOffice) to Google Docs.
I personally think more and more web apps are going to push the boundaries and we'll see more things like Tweetdeck, but I also see a real native need..things like music players and video players etc. I prefer Google reader b/c I have the same experience on everything (including my iPhone and Nexus S).
If I had to wager, and ironically, I do (my job after all), I think there is going to be an uneasy balance struck where some people make hard stances and only write native apps or only support this platform just as they've always done IF there application is more than something that pushes data around. But if their app is very much something that pushes data around (like JSON or something) I see it going the route of Tweetdeck/Gmail.
I see this for a couple of reasons but mostly about 1. distribution model and 2. shoestring budgets. eople
Now, mobile is a bit of the same as desktop, but more or less lagging by a generation. I don't see anything non-native winning in mobile for quite some time (as it didn't in desktop for what, 20 years?). Mobile is quite young and needs time to grow up. That is part of the reason why I think we are going to see at best three dominant platforms: iOS, Android and something else (not convinced it is windows, meego or anything we've seen yet).
No easy answers here and people are going to be second guessed quite a bit no matter their decisions in this realm. Heck, we've seen it with Nokia today. People are calling for Nokia to adopt android instead of doing their own thing. Well, doing their own thing could be the best or the worst thing for them, but no matter what they choose, it will be open for questioning (no easy choices).
How can it be telling when no one uses HTML5 completely, and then you follow it with an example of the hottest thing in tech since Windows going all HTML5. Doesn't make sense.
Still, I consider it a good gamble long-term. Even though I'll have to degrade gracefully for devices that don't support multi-touch or CSS 3D transforms, it's still less work than trying to maintain two codebases, and I get to use the dev stack I know best.
Think about it, Facebook, one of the largest photo sharing WEBSITE has a native app. Why? Because you can't upload photos on iOS.
iPhone OS 2 comes out, native apps get a full SDK with supporting frameworks. The browser gets "touchStart" events.
Apple simply doesn't want people writing browser apps because they dont make money nor lock users in.
The funny thing is I intend to package my app in native wrappers and distribute on both App Store and Android Market, so Apple does stand to make money. But, they still lose exclusivity, and it's unfortunate that they have a strong disincentive against improving HTML5 as an app platform.
1. Have something (a website, a business, a city department, whatever) that they want it to be "on mobile", i.e. they need a mobile app just because they need to cover the mobile angle. However, the mobile app itself is not usually the core revenue strategy, it's just part of the bigger picture.
2. Or, they want to sell a mobile app that is not suitable for building with HTML5. I.e. the app is the revenue-generator, and it must be performant/integrate closely with native hardware/etc. (such as a game).
I think we can satisfy the people in category 1 by building HTML5 apps, and using Phonegap if they want them to be available in app stores.
I think we can satisfy people in category 2 by developing native iOS apps for sale in the Apple App Store, since from what I can tell, this is the only App Store that really generates money.
People who want native apps on non iOS devices, for whatever reason, are probably people we get a subcontractor to handle, or even take a pass entirely.
Apple have trained people to pay 1 or 2 dollars for mobile applications, and thats great - but if you said to someone you need to pay a dollar to use this website they'd leave straight away.
So now you have the situation where it's in both the developer AND Apple's best financial interests to make native applications - how is the web on mobile going to come forward? What incentive does Apple have to make HTML5 run great on their devices when they earn a chunk of native app sales? Additionally, if they threw resources at it, they'd probably end up contributing a bunch of code back to Webkit which would immediately be used by their biggest competitor.
So if the capabilities of the "HTML5" framework get better, the distinction will fade away. WebGL is on it's way, and so are javascript interfaces to the mobile hardware.
These days, if you’re going to do native apps, you at least have to support iOS and Android. That means at least two developers for each different language, and preferably more.
Cocos2D may well be shaping up as a good cross-platform environment supporting both iOS and Android. Add some more GUI libraries, and it would be dandy for non-game apps. (Javascript)
The Unity 3D engine could be leveraged like this as well.
HTML5 will rule !!