Native Apps Why?

8 pointsposted 4 days ago
by dmvjs

Item id: 49508590

26 Comments

linggen

4 days ago

For most apps, cross platform like Flutter or RN is the best choice. For apps highly bind on the hardware, or need better performance, usually native is better. But for vibe coding or harness coding today, if workload is not the problem, native is usually a better choice, it allows you do different thing on different platform.

mikewarot

4 days ago

There's nothing like having a locally installed program that has no internet dependencies for reliability. There's a reason machine shops still have that one PC running MS-DOS 5.0 in an emulator. The tool built in Tk!Solver version 1 in 1982 can't be easily replaced, and it's required to compute bevel gear generator setups.

Changing anything in the setup might cause gears to come out wrong, and cost thousands of dollars in scrap, and the loss of a customer.

When you have a locally installed program, offline, you're pretty much immune to most of the troubles of the technical world.

Jeremy1026

4 days ago

For users, ease of use.

For companies, ease of additional tracking.

It really isn't some _deep_ thing. Users like to be able to quickly access the content they want to consume. Companies want data. Apps fulfill both of these requirements.

eb0la

3 days ago

A lot of people might say "latency" or "security": both are valid points but...

What about the Data? on a native app I usually can SAVE data wherever I want on my device.

I can even save it or load it from external storage like... a usb thumbdrive.

And if my connection goes down I sill can use it (unless I have a license/activation software that needs to be connected to the internet).

perilunar

4 days ago

I think the divide is pretty clear.

If the app needs connectivity for data, and is just text/images/video, then yes, it should be a web app. e.g. news sites, social media, forums, etc. (It's a site, not an app).

If an app needs be able to work offline, on local files and data, then it should be native. e.g. office apps, image/video editors, maps, CAD, etc.

There's a grey area in between, but usually it's pretty obvious.

runjake

4 days ago

On macOS and iOS, I prefer native apps because Apple gives these apps a bunch of extras in terms of keyboard shortcuts and functionality.

Non-native apps that are web views don't get this functionality unless the developer properly hooks it or mimics it. They rarely get this right.

That said, I'm not sure of the current state of Flutter and RN. They resolve to OS native controls, so theoretically they should support these types of base functionalities, correct?

Gud

3 days ago

So it's not that you "prefer" native, it is that Apple are intentionally limiting PWAs in their capabilities?

I have built an application that I originally intended to be a PWA, but I had to make it a native application because how Apple are limiting many things for me.

It sucks because I now have to pay the apple tax and get "accepted" by Apple. Ironic, considering the original release of the iPhone, where web apps where the promise to us.

ra0x3

4 days ago

You get access to more APIs specific to the native platform, the looks and feel is far better (I can easily see when an app isn't a native iOS app - e.g., Liquid Glass is awesome), and the tool ecosystem (e.g., Xcode is specifically built for Apple Apps).

al_borland

4 days ago

Today I was using Jira and had to wait for the text in what should be a static dropdown menu to populate. It sat there with a bunch of placeholder boxes for a good 30 seconds. This has never happened to me with a native app.

carlosjobim

3 days ago

Why should restaurants and supermarkets exist when you can eat only porridge and eggs? Why should bicycles exist when you can walk?

Some people prefer something better and are willing to pay for it.

leros

4 days ago

Because human beings are irrational and want "apps". I have numerous examples of native apps that are just wrappers around the web app performing extremely well (massively increasing conversion rates, revenue, etc) over the existing PWA.

0xCE0

2 days ago

As I see/understand it, there are only "native apps" (because native machine code is the only type of data computer can execute). There is also only one program running (OS, not counting bootloaders/firmwares), that reads executable files (e.g. for webbrowser, python) and then executes the parts of native machine instructions in it, and then programs can also run (but usually in more limited way) "computer code", that modifies the behavior of parent program (be it webbrowser/python etc.). Then the discussion probably goes to what is the difference between a "program/code" and "document" (program's file format, content state), and there are spectrum of static to dynamic content.

"Non-native" code performance is naturally one factor to consider, but access to freedom of computing is another. If/When we are already decided to stack programs running in browsers/mobile OS's, we have locked the freedom to computing on those stacks - yor code is not anymore in control, because the parent programs control how your program can behave. An in the name of security, access to parent program features might be denied or are behind paywall/insider-agreements.

Access to your data and programs is also important factor to consider. If you don't have your own data on your own computer/memory, you have nothing. Only expectations of accessing. But then the discussion goes to responsibility and self-sufficiency, so you must take responsibility for backups etc.

Another point to consider is non-native remote apps are easy way to force subscription-type of payments.

_barban_

4 days ago

IMHO, for Android and IOS, Flutter is solid enough to implement apps which are near native ones in terms of performance and "look & feel"

farseer

4 days ago

Native apps are not needed unless you want want performance and need to extract all the juice your hardware offers. Only AAA video games come to mind.

lgl

4 days ago

Come on, you really only see AAA video games requiring native apps?

Surely that was a rushed reply(?). How about regular system utilities? Video/audio editors? IDE's? Debuggers? Image/3D editors? Compressor/decompressors? Terminal emulators? And so much more stuff.

Sure, many of these already have "web" versions but there's still a lot of apps that benefit greatly from being native and not go through another browser/webview/node instance.

ben_w

3 days ago

(Different person)

> Video/audio editors? IDE's? Debuggers? Image/3D editors? Compressor/decompressors? Terminal emulators? And so much more stuff.

Video I can understand, and anything that needs a real local terminal. On the other hand, audio, IDEs and debuggers, image editors, 3D editors, codecs, and remote terminals, nah.

My first use of most of those things was on a Performa 5200 whose CPU registers had lower bandwidth (though obviously better latency) than my phone's cellular 4G modem.

Web stuff may feels un-performant, but a lot of this is due to a mix of a thousand or so analytics libraries all competing with each other to spy on everything you do, plus some kind of reactive nonsense that isn't half as good as it wants the developers to think it is, plus zero incentive from the companies to the coders to make things fast.

lgl

3 days ago

Ok, but that was surely a consequence of the time you lived through(?)

Or do you currently still specifically choose to use some web based app for most of what you've "discarded"? Are your 3d editors, sound editors, (or even players), image editors or compression/backup apps webviews? IDEs? Etc?

How about password managers? That's a big (stupid) one people use on web apps for some reason..

Because most "professionals" in areas that need these things seldom use web apps. Toy apps? MVPs? Toy marketing or social stuff? Toy video editors for the TikTok generation? Sure. But that's mostly for amateurish usage, at least for now.

Even terminals.. what do you use in webviews that's better than iterm, putty, ghostty, etc?

Like it or not, and as awesome as browsers and webviews have become, there's still a lot of performance left on the table there.

That's just imho of course, just finding it weird people being pro-web apps on hn, that used to be very pro native and pro performance :shrug:

ben_w

3 days ago

Sometimes I'll run an emulator in the browser to experience the joy of the old UI.

Somehow, a web browser with a canvas whose pixels are populated by JS or Wasm in response to an emulator booting pre-Unix classic MacOS, is faster and less prone to nonsense than the native UI widgets I get from Apple today.

And that, right there, is the point. Wasm is better than I think you think it is. Web apps can run e.g. fluid dynamics simulation directly on the GPU when I need them to. Calculate and rasterise a complete isochrone map of all OpenStreetMap roadways in Berlin at 25 fps even when it's one of 50 tabs in two browsers. Very little in most people's lives is even close to being actually performance limited on a modern computer, the apparent limits we experience are mostly due to all the things I said in the previous comment.

Given how bad SwiftUI is, honestly, a browser can sometimes even be a performance boost. Thinking about it, not even SwiftUI: I had some cases back in the original iPad/ObjC/UIKit days, where the UX was faster in a webview than with native components.

> Even terminals.. what do you use in webviews that's better than iterm, putty, ghostty, etc?

"Better"? Why "better"? Parity is sufficient. Though exactly what performance issues do you even have in mind here such that you even encounter a performance limit in a console?

Also, I specifically put "real local terminal" and "video" in the "sure, native" list.

I put terminals in that list not for performance reasons, but because browsers don't want to play with file systems.

lgl

3 days ago

> Wasm is better than I think you think it is.

This is very likely to be true, even though I do know it's pretty awesome and I'm actually often surprised by what can be done in a browser these days, I'm definitely not that much up to date with all the latest tech.

And sorry, yes I somehow missed that you had terminals on the native list, my bad.

BroCoder

3 days ago

I believe it's for Data Collection and workloading somewhat can be expensive because of a lot of users rendering server side. side and went to AWS or Google Cloud infrastructure. And then we also have already, like, you know, passionate about it up on the edges. That makes sense. Like, keep going up. Breathe down, load in to people's internet data on their phone they don't like. Why my Google Keyboard started 500Mb+ Cache and 200Mb+ of UserData. I switched to Fido.

deudomperidone

4 days ago

Performance.

runjake

4 days ago

I recently vibe coded a basic app in both SwiftUI and Flutter, and the Flutter version seemed much faster. What the heck. (I am basically familiar with both environments and the code seemed pretty good, not slop.)

deudomperidone

4 days ago

sometimes it comes with the tradeoff for looks, but with libs like qt, you can make something ugly & fast, or attractive & fast

most apps nowadays are some like electron react vite vue whatever slop

if ur making an app pls no web app thank u