7 ms·
> Are native apps dead? > Not yet… but they’re going to be. This post makes very big claims based on a very basic application that doesn't seem to be much more
by null_object 4y ago
> Are native apps dead?
> Not yet… but they’re going to be.
This post makes very big claims based on a very basic application that doesn't seem to be much more than a few toggle buttons and a couple of animations thrown in, and some 'statistics' that don't appear to be based on any actual facts.
I work in a team developing an app that has around 5million users, and we abandoned an Ionic first version 5 years ago, after a couple of years of nightmarish development, where (after the first implementation, which went reasonably well) we spent most of our development time fixing inexplicable bugs, chasing native features, getting inconsistent UI problems, broken builds from package updates and a myriad other problems that just drained our energy and were generally dispiriting.
I personally felt the entire experience was a horrible professional dead-end. Luckily our management decided to switch to a native application, and learning Swift has been the most fulfilling part of my entire career. The application is faster, more reliable, the bugs are locatable and fixable; the entire framework feels solid and professional.
The application itself is immeasurably better now. We attracted better-qualified colleagues who have been a great learning resource. And the app itself went from an appstore rating of (iirc) around 2.8 stars to its current rating of 4.6.
We would never dream of going back to the nightmare that developing a complex and performant app with Ionic was in my experience.
- mchusma 4y agoI have used Ionic for about 7 years now? 5 years ago it was sort of still a painful beta-like product. Not the case today. We ship and maintain 2 different apps to web, iOS, and android each, with only 3 developers. These are highly complex apps , although not games. Ionic really got great about 3 years ago. I suspect that if you had experienced Ionic a bit later in it's cycle, you would have been happy. Hard to tell, and I do think there are genuine cases for building to specific platforms. However I think it's the exception (outside gaming), not the rule.
- jbverschoor 4y agoI've used ionic in the past. It was ok to get something out, ok for many things (gyro data, charts etc), but it started getting in my way a lot. I like react-native and nativescript's approach a lot more.. They use native UI elements. Nobody noticed in the app of OP because it looks almost like a game. No native UI behaviors.
- WA 4y agoI can second this. My Ionic app runs incredible stable, no issues, users are happy. It is not super complex and doesn't make use of native APIs beyond in app purchases, but it isn't super trivial either. The performance is good on modern devices to the point where you don't notice a difference. The main downside are these things: 1. No fine-grained control over input types / the keyboard that is displayed. You basically have to use whatever Safari gives you. The options got better in recent years, but a native app has better control over the type of keyboard it shows (maybe you can achieve similar effects with a plugin). 2. The UI obviously does not respect accessibility settings. For example, if you enable the O/I markers on toggle buttons on the OS level, your app won't show them. But I think React Native wouldn't show them either, so there's that. 3. Can be a pro and a con: Your app shows the same UI for every OS version. Let's say a user is still on iOS 11 and Ionic tries to adhere to the design language of iOS 15, an app update will also affect iOS 11 users. Whereas with native apps, you can basically say "take this headline element and show it in the way the OS renders this by default". Imho, this doesn't matter for normal users that much, but if you obsess over design, it can be a downside or at least somewhat unexpected. And you get a lot of upsides: 1. Truly one code base with close to zero custom code for each platform. Hence, a solo developer can easily develop an app for iOS, Android, and the web. 2. Assuming you use Ionic's Capacitor as a runtime environment on devices: It is basically a thin wrapper for Chrome. Since Chrome is evergreen even on older devices, I usually never run into browser issues if users are on Android 6 for example. They simply have the most recent Chrome version and your app benefits from that. Compare this with iOS: Users with an older iOS version run an old version of Safari and hence, you need to make sure that your JS code doesn't break on older Safari versions. Although the compatibility with modern JS got a lot better since iOS 11. 3. You can easily force the same design on all platforms if you want. I wouldn't recommend it, but for some enterprise-internal tooling, it might make sense. To sum it up, especially indie developers who want to build an app very fast and don't have a team should give Ionic a try.
- adam_arthur 4y agoThe fact that browser apps replaced desktop apps eventually kind of proves that the same on mobile is inevitable once computing power and efficiency is sufficient. Unless mobile vendors put up artificial barriers on functionality of web apps (Apple). At a certain hardware level, UX is not perceptibly different between native and Web based, yet development much easier with cross platform target
- teakettle42 4y ago> The fact that browser apps replaced desktop apps eventually They did? I mean, I'm forced to use crap browser apps for work (i.e. Slack), but it's very early to be declaring the desktop app dead. > At a certain hardware level, UX is not perceptibly different between native and Web based ... Hard disagree. > ... yet development much easier with cross platform target Well, yes. There we can finally agree. It's all about cost; hiring cheap web developers to churn out something acceptable, if never good.
- RC_ITR 4y agoThis is a classic 'My job is X, so I presume people doing Y also have the same experience" Software developers and PM's can generally get by with a browser, but woah boy good luck getting the finance world off of desktop Excel/Bloomberg (as the most prominent example of an immovable force against browser apps).
- happymellon 4y agoBut even folks in the "happy path", of using VS Code and Slack find that the web apps are slow and terrible. The only people who seem to think this is any good appear to be in their 20's and not actually experienced with desktop apps.
- testbjjl 4y ago> The only people who seem to think this is any good appear to be in their 20's and not actually experienced with desktop apps. So it’s just a matter of time until this swing of the pendulum is complete. Then we can rediscover Qt and Tcl/Tk.
- chris_nielsen 4y agoHello, author here. Congrats on having such a successful app. Funnily enough, I actually wrote this post because if you had asked me about cross platform web apps 6 months ago I would have said the exact same thing you just said. In 2014 I'd started an app using Ionic and actually ended up abandoning it and it killed the project. I was so frustrated. That's why I was shocked with this app (and yes it is small and pretty simple) actually worked really nicely being a react app bundled into a webview. It's crazy, I was just shocked. Made me realize that cross platform web apps are a hell of a lot more capable today than I had thought. And sure, maybe claiming native apps will die eventually is a pretty bold claim... But technology moves. And the direction it's going now, is in the direction of browsers becoming faster and more capable at a greater rate than user's desire for more elaborate UIs. Visual Basic and Java used to be the hottest tech you could have on your resume. Who knows what will be old fashioned and out of date in the future. I don't normally make bold claims but I think I'll stick with this one and maybe in 5-10 years I can fish out this blog post to see if I'm right or not.
- teakettle42 4y agoI don’t want to be wildly unkind, so I’ll keep it to this: your limited experience here is not sufficient basis to prognosticate on an entire industry.
- noja 4y agoThat is wildly unkind though.
- joeberon 4y ago
- teakettle42 4y agoNoting that the evidence is insufficient basis for the claim is not unkind.
- 4y ago
- calsy 4y ago5 years ago is a lifetime in tech, the blog clearly mentions the difference. Web dev stack is a dead-end professionally? That doesn't line up with reality at all does it. You attracted better-qualified colleagues? How so exactly? You have a smaller pool of candidates to choose from. Are you implying native developers are just smarter? Outdated opinions, favouritism and elitism all wrapped in one.
- bambax 4y agoThe problem of the post is that it advocates two things at once: publish apps using Ionic, and/or just go the webapp route (like Wordle). It's a little hard to understand, if the performance of webapps is actually indistinguishable from that of native apps, why anyone would choose the app store route. Is it for distribution purposes? Payments?
- the_gipsy 4y agoNotifications are not supported on iOS Safari. All iOS browsers run safari's webview under the hood. Android has notifications since a decade or so. It's not hard to make the connection to apple's appstore 30% cut.
- amelius 4y agoThat's great, but you cut your potential audience in two. More if you count people who can use a desktop but not their phone during work hours.
- jokethrowaway 4y agoI disagree and I think it's a common viewpoint from people who invested significant time in the apple or android ecosystem. Of course you'll be happy to have native developers helping you out in your career instead of becoming yet another web developer. I'm not a native developer (kind of jack of all trades) but I had to do some tasks in iOS, Android, web and desktop development. iOS and Android are incredibly overcomplicated. Web used to be fine but it's going in that direction as well thanks to Angular and React. I wish just using Qt was a viable choice. I used to work in a company with a very popular app (can't tell how many active users but they have 2.5M reviews right now and they're top 50 in the iOS store) and the only reason they weren't web cross-platform is that they saw an exodus of native developers once they attempted that. They had huge parts of the application in web-views though, so we had half of the animations native and half native. They had a native canvas based editor and 3D games running in a webview (as crazy as that may sound: that's exactly the kind of thing I would have done natively - but they didn't want to implement 3D games twice for web / android and metal). I can't really say I could tell which was which but error logging was happening in different places so you would normally find out when debugging errors or seeing the web-views in the code.
- deleted 4y ago[deleted]
- onion2k 4y agoThis post makes very big claims based on a very basic application that doesn't seem to be much more than a few toggle buttons and a couple of animations thrown in.. That's 90% of non-game apps. Most apps could be written using web-based tech (React Native, Flutter, PWA, whatever), and because they're so simple they should be very fast and very small. Where an app that's a few toggles and animations is slow or janky it's a sign that the developer screwed up rather than a problem that would be solved by going native - the dev would screw up regardless of the tech they used. Some apps that have extensive design or animation work benefit from being native, and there are some things that are painful to do using web tech like custom camera work or things that use the secure enclave in weird ways, but if you're not doing those things then web should be fine.
- npretto 4y agoReact native and flutter are very, very different from a PWA. While a PWA is a web app, react-native renders actual native components, and flutter has its own rendering engine. I wouldn't call them "web-based" tech
- onion2k 4y agoI wouldn't call them "web-based" tech They're not web-based under the hood, but the code that the developer writes to drive them is very much in the ballpark of a web developer - JS, React, TS, Webpack, etc. That's why they're classified as "web-based" or "web hybrid" rather than "native".
- kaba0 4y agoFlutter has very little to do with web tech though.