Comment by tadfisher

4 days ago

My friend, inconsistency is the entire point. You now have incredible power to write truly native apps that fit in with the platform and follow all the standards. The bottleneck is now you, or whoever owns each target platform and understands what native apps feel like.

So I’m supposed to maintain a native app for each platform and try to be sure they’re aligned in every way except visuals? Sounds like a recipe for bad UX if anybody uses more than one of them.

  • On the contrary: using a web view is the worst possible UX for your users. It's slow, uses a ton of memory, and doesn't integrate well with the desktop. The only reason people ever did it was laziness, not because it produced a better product.

    • I'd argue that being slow and using a ton of memory has more to do with (very) poorly optimized websites rather than blaming browsers as a whole. Sure, they'll never be as efficient as native, but people put a lot of work into optimizing browsers and most websites are never optimized.

      Memory use alone is an interesting case for comparison because websites tend to have a lot more images/videos loaded than other applications. All of those PNGs and JPEGs need to be decompressed before you can paint them to the screen which makes them much larger.

      2 replies →

  • Not you, your coding agent, for three platforms and at least ten languages

    If you go Rust all the way all you need is the installer for each platform

    • Agents are pretty shit at making UX decisions unless you're heavily in the training distribution

Do people really want this? IME the worst, slowest apps on a given OS are native.

I remember a time when you could feel that apps were built on a consistent set of standards on a platform, and that meant they were fast, and it was weird when an app had its own wacky GUI. But today, native apps are neither consistent across eachother, nor are they performant.

WebView2 is native on Windows and the practical default, but who wants more apps like Microsoft Teams? Music.app is native on macOS and slower than music.apple.com, but who wants more apps like Apple Music? These are abysmally slow apps.

Things are better on Linux before, but "native" is DE-specific anyways. Between electron, GTK, and KDE, I tend to prefer electron. Only second to apps like Blender or Godot, which have great UX advantages from having their own bespoke GUI frameworks which are consistent across OSes.

  • It's more that no-one cares about consistency across platforms because each of us only has one platform.

    I will never see the Windows version of your app, because I don't run any Windows machines. I will never know if your Windows UI is consistent with your MacOS UI.

    I do care if your app uses a bunch of key shortcuts or UI conventions that no other MacOS app uses. If I have to learn a whole new set of UI conventions just because your app decided not obey the standard MacOS UI conventions, that will annoy me a lot.

    • No no, I am saying "native" is not consistent even within an OS.

      I do agree keyboard shortcut consistency is important and useful. GIMP is awful on macOS just for this reason

    • Sample size of 1?

      Sent from my Android phone, windows gaming pc, Mac dev laptop, iOS tablet, Ubuntu home server... or sshing to my remarkable reader's minimal Linux?

  • because native should mean using the tools provided by the os. Not using a reinvented wheel which defeats the entire point

Yeah the problem is having to write 5 apps, not the inconsistency.

  • If you're writing five apps, you're doing it wrong. A huge amount of probably any app can be contained in a common blob of business logic and wiring, with some native presentation on top. Yes, I oversimplify, but folks have been doing exactly that for decades. More work? Yup, even with a common engine it's more work than firing up Electron. That's where "do we even give a shit about what we're shipping?" comes in. If there's no pride in the finished product, well, Electron isn't going to save your product, either.

    • IME, the UI library idiosyncrasies are the pieces that take the longest to get right. Common business logic is super simple by comparison.

      1 reply →

    • > A huge amount of probably any app can be contained in a common blob of business logic and wiring, with some native presentation on top.

      I keep seeing people claim this, yet most UI software I see really doesn't do anything that complicated. It's some basic database CRUD stuff and some basic algorithms, and then all the actual effort lies in making the UI feel good.

  • > Yeah the problem is having to write 5 apps, not the inconsistency.

    Isn’t that what abstraction and interface is about? You can write the common business logic and presentation concerns, and then share it across each native implementation.

    That is what web wrapping is in truth, but it’s just inneficient because of the huge surface area of web technologies.