Hacker News new | ask | show | jobs
by mmcdan 5392 days ago
The biggest draw for me with native apps is the revenue model. Most users are conditioned to think if it opens in a browser, then it should be free. It really doesn't matter to me if i'm programming in Java, Objective C, or some HTML/Javascript framework... but can I justify spending time without a simple way to charge for my product?

Solve the monetization problem and I guarantee developers will look at web apps more seriously.

1 comments

This is a really good point and often overlooked. A native app gives you a sense of ownership--a subtle yet powerful concept that attaches value to the application. I'd like to think I'm above such psychological games, but I know I've paid real money for apps that I wouldn't have paid for things delivered through a URL. Also, the common way to bill for a webapp is with recurring fees. But not everything fits that mental model of a monthly service very well. For example, it feels better to me to pay a one-time fee for a todo list app than to pay $5/mo--even if it worked out to where I was spending the same amount annually.
With PhoneGap you can have what looks like a "native app" to end users that's written entirely in HTML5/JavaScript.
I've done usability studies with users who use native apps and PhoneGap-based apps and users are clearly perplexed by PhoneGap apps because of numerous usability problems like 1) they're choppy, 2) they look/feel slightly different, 3) they don't behave like user's think they should. Users can tell the difference between a fully-native app and an HTML interface wrapped in an Objective-C downloadable.

It's like the uncanny valley where humanoid things get so close to being fully realistic that the small difference in their behavior or look & feel causes people to be totally turned off. If it looks like a native app but doesn't quite behave like one, it's noticeable and (at least the people I've talked with) do not like it.

hmmm...there's part of me that's just offended by the idea of having to write an application twice.

Maybe the HTML5 experience isn't good enough, but it truly sucks to have to write the app once for each platform.

I'd love to see the specific examples you're talking about; details like whether the apps were made by people with equivalent skills, and whether you're REALLY talking about the same app being judged better or worse.

Because it's so easy to write HTML5 and JavaScript, well, lots of idiots do it. If the study compares an app written by a median HTML5/JavaScript app developer with an app written by a median ObjectiveC developer, then it's not the environment you're actually comparing.

It's the norm to have to write applications for the platform you want to run them on. Nintendo 3DS, Playstation 3, Wii, Steam, Android, iOS, Windows... these are all different platforms. Write-once-run-anywhere is a myth and it seems that web developers deploying to one platform (the browser) still can't grok the idea of multi-platform development that desktop, mobile and game developers have understood for years.

You can't get the best experience for each platform if the tools and frameworks you use are dumbed down to accommodate the lowest common shared experience across everything.

I actually do my development in cross-platform native code. My currently library can target iOS, Android, and Windows, and I'd be able to add most other major platforms pretty trivially.

I agree that some UI changes are necessary between platforms as different as the PC, the Wii, and a touch-screen-based phone. But I very much disagree that you can't take advantage of solid cross-platform tools. I've written such tools, in fact.

Some native code to interface to native UI is necessary, but none of the native UI is really rocket science, and something offered natively on one phone can typically be done manually on another. Then it becomes an abstraction in the cross-platform library, and your code doesn't need to know how it's implemented.

But then again I'm a game developer, so I guess you've admitted that I could potentially already understand cross-platform development. ;)

Have you used Sencha Touch or the other mobile app frameworks? They're good but not great. There's still a real difference in the user experience between them and building a real, native app. It's fairly obvious due to clunky scrolling and choppier animations throughout the app.
No, thought I've read about Sencha Touch and several others.

I am planning on having a Web-app component to my next product, actually, and have been reading about them all; Dojo and jQuery Mobile are the two finalists I'm considering.

But the primary app is a game, and the production values for games make doing them entirely as web apps not an option.

Clunky scrolling would be a problem, sure, as well as choppy animations. I'll have to see what can be done when I actually dive in to writing the HTML5/CSS components.

The thing is, it's certainly POSSIBLE for web apps to animate better than they do. It may not be time for web apps to take over on phones, but it's only a matter of time. Processors in phones are getting more powerful, and the WebKit-based browsers are being optimized; scrolling animations really shouldn't be significantly slower done in JavaScript than they are in, e.g., Java on Android.