Okay, so this started as a Google+ post (sorry, limited) which was intended to be a status update but turned out to be a mini-rant-slash-excitement-expression. So here I come to rewrite it as a proper blog post.
We live in interesting times, and I don’t mean that in a negative way. Right now the Web is getting overpowered as heck (Service Workers, here we come) and is trying to rule out reasons for native applications to exist. Of course, in the near future there’s no way that the Web is going to take over, because even with the best JS interpreters it can’t quite reach native speed. It comes close, but it doesn’t quite cross the threshold. Stuff like React Native tries to jump over this gap partially — by connecting the JS not to the DOM (which is quite sluggish in some cases), but rather to the native UI implementations, be it iOS or Android. And since iOS is dominating the US market so much, it gets priority treatment from Facebook, and the Android version lags behind quite a bit in performance, apparently1.
So of course, people write apps! I am currently dipping my foot slightly - working on a project that has been floating around in my head for quite some time now - and I can certainly see why people who have moved to native app development (e.g. Marco Arment) seem to really enjoy it. The increased verbosity pays off with you having so much more control and speed. There are frameworks for building bigger apps as well, although one can get along without really using any of them2.
So far I’ve gotten about 2 activities deep, and the app is generally not that big, but it seems that apps are quite hot right now, even though they’ve been cooling down for the past year or two. We have surpassed the app boom, now only the high quality ones remain and the -ware withers away.
But the Web is still dismissed by many, even though it continues to move forward (as in, replicate more and more of the app functionality with JS as much as possible). There are both pros and cons to both of these approaches, but from my experience native apps are actually nicer and usually fit in smoother than web apps3. So yeah, I’ll be moving over as well. Maybe.
We were able to get our app running fairly quickly, but the performance — specifically on touch events was not at an acceptable level even on higher end devices. ↩
The only exception I’ll note though is something that helps dealing with HTTP(S) requests. The plain way seems a bit nightmare-ish, so I just use Volley instead. It seems nice and I don’t have to write everything from the ground up. ↩
Or wrappers for web apps. DESMOS, I’m looking at you. ↩