← Back to context

Comment by sosodev

4 days ago

But there’s still no way to get consistent results cross-platform without a web view, right? I guess Tauri isn’t even consistent because it relies on the system’s browser and they do differ to some degree.

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.

  • 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.

      2 replies →

    • 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.

      3 replies →

    • > 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.

      3 replies →

> But there’s still no way to get consistent results cross-platform without a web view, right?

… good? I want my applications to be consistent with the platform they run on, not with their own stupidity on other platforms.

  • The hidden reason why so many people are frustrated with 'modern design' that goes unaddressed is that most software nowadays completely ignores the standards of the system it runs on. Every single developer of even the most trivial apps insists that their design language is the most important in the room, which is what brings us to the temptation of using a webapp for everything so every user on every OS sees the exact same thing. It's gotten so bad that the only places I see native system UIs from third parties is either older software or hobbyist projects, but never anything corporate.

    • Some of that is also that what "native UI" means has shifted a bit. To look at Windows, Win95 had a thoroughly considered UI design that was very well adapted to both what it needed to do and the hard constraints on it. Win11 is... kind of a shitshow. (Are parts of it still from Windows 3.1? I haven't tried to track them down... but in Win10 there were a few dark corners.) It made sense to match the native UI in the Win95 days. It often doesn't now, it's simply not a target worth hitting. You could just use Win32 and target the older Win95 look, but apart from appearance issues, it was designed to work well in 1995, and we simply demand different things from our UIs now. Like support for touchscreens. Old Win32 apps are painful on touchscreens. (But, often, awesome without a mouse.) And those are real considerations, not oooh-shiny-new-thing designer BS.

      1 reply →

  • As a user of both windows and mac operating systems, I'd rather the app be consistent between them so I don't have to adopt a different workflow depending on which OS I'm using the app on.

What’s wrong with something like Qt or wxWidgets for native crossplattform GUI frameworks?

  • Native doesn't mean "not a web view", it means native. The eight Qt apps on my Mac are really obvious, with basic fundamentals like toolbars, drop down boxes, and context menus bearing no resemblance whatsoever to any native Mac app from any decade.

    10-15 years ago it was possible to reliably clock a Qt on Mac app before it finished launching, simply from the app using the wrong hourglass cursor. (The old cursor that had once been a hallmark of classic Mac OS apps ported through Carbon frameworks, and which disappeared from daily usage when the Finder was finally rewritten atop the NeXTSTEP-derived Cocoa frameworks.)

Skia is the 2D graphics library used in Chromium. A number of GUI frameworks (Flutter and Avalonia) directly use Skia to do non-native platform GUIs that are consistent across platforms.

Is consistent results what you want? non-native controls look and behave funny on iOS, and the iOS look on any other platform is annoying.

There is also Slint that'd fir perfectly. Others have built game launcher with it as well

that's great! cross platform means it doesn't fit in anywherec not it fits in everywhere