4 ms·
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 d
by mmcdan 15y 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.
- toddmorey 15y agoThis 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.
- SomeCallMeTim 15y agoWith PhoneGap you can have what looks like a "native app" to end users that's written entirely in HTML5/JavaScript.
- flyosity 15y agoI'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.
- SomeCallMeTim 15y agohmmm...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.
- flyosity 15y agoIt'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.
- SomeCallMeTim 15y agoI 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. ;)