So a few years back I wrote a few simplistic mobile applications for android using the sdk. I was new to the programming world and was excited enough by novelty to power through the verbose nature of the library. In the two years since I last touched android I have been working as a full stack developer; mostly in JS. Today I attempted to dive back into android only to be jarred by the over-complexity of its sdk. Needing to instantiate four managers to get one piece of data was something I haven't experienced in awhile, and it got me thinking. Has the performance of JS mobile apps(created with apache cordova or whatever) reached a tipping point where non graphic intensive apps are close to indistinguishable from native?
Performance is <i>less</i> of an issue than it was, but it still exists (though the great IOS8 news is that in-app webviews finally get Nitro[1]). The larger problem, IMO, is UI. You simply cannot recreate native UI in a web view.<p>But there are some interesting frameworks out there that blend native UI components with web views - it can work well, and is used more than people often think (in Instagram, for example). As with anything, it's a tradeoff. If you want to make cross-platform a priority, having your main views be web-powered can save you a lot of time, even if they won't be <i>quite</i> as good as native ones. But I maintain the non-HN crowd will be unlikely to notice a slight lack of polish - the standards in our echo chamber are artificially high, IMO.<p>[1] <a href="http://9to5mac.com/2014/06/03/ios-8-webkit-changes-finally-allow-all-apps-to-have-the-same-performance-as-safari/" rel="nofollow">http://9to5mac.com/2014/06/03/ios-8-webkit-changes-finally-a...</a>
Definitely not. Most of the time when I encounter an obvious webpage disguised as a native application, I feel deceived and underwhelmed.<p>Maybe a little over the top, but honestly it's true. Build a fast, responsive mobile site and be honest about what you're producing. If you want the web and its technologies to win, build and present with the web.
Like everything, It depends. If your app provides a clear utility and that is the main reason for people to use it, then yes - A Js with some hybrid framework should do.<p>However - If you're competing in a crowded set of apps, then going native is the minimum you'd need to do for your app to stand out in the crowd.