this post was submitted on 02 Mar 2024
427 points (98.0% liked)

Open Source

31385 readers
126 users here now

All about open source! Feel free to ask questions, and share news, and interesting stuff!

Useful Links

Rules

Related Communities

Community icon from opensource.org, but we are not affiliated with them.

founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] merthyr1831@lemmy.world 26 points 8 months ago* (last edited 8 months ago) (2 children)

Eh. Crossplatform isnt the problem here; Xamirin is. There's a host of next gen cross platform frameworks like Flutter, React Native, Blazor that save you having to maintain two distinct apps; something that's only going to add a bunch of developer burden

[–] moritz@l.deltaa.xyz 13 points 8 months ago (2 children)

I always recognize Flutter apps on Android as being non-native and avoid them because of this.

I think it is because they seem to never use the system font but Quicksand instead and all the animations feel slightly off.

[–] merthyr1831@lemmy.world 5 points 8 months ago (2 children)

Personally, beyond a few material-like components I always prefer it when an app goes for its own system-agnostic design language like Spotify does. On desktop I'm definitely more picky if I can get away with it; Qt dor KDE and GTK for GNOME etc

[–] deadcream@sopuli.xyz 1 points 8 months ago

I have given up on the fight a long time ago. On the desktop the only line I draw is that the app must respect system font configuration and use system-provided file dialogs.

[–] Blisterexe@lemmy.zip 1 points 8 months ago

i love having all my apps match my system, gtk or qt for desktop mui for android

[–] deadcream@sopuli.xyz 2 points 8 months ago (1 children)

Same with Compose even though it's ironically considered native in the Android dev community.

The easiest way to tell that the app is not native is tooltips (those that appear when you long press on a button in a toolbar). For some reason UI frameworks just can't agree to display them in the same way, even if they use material design. Compose's ones are especially bad (some apps like Play store actually have different kinds of tooltips on different screens, meaning they use multiple UI frameworks in the same app).

[–] moritz@l.deltaa.xyz 1 points 8 months ago (1 children)

With Compose apps I actually never had this problems yet.

[–] deadcream@sopuli.xyz 1 points 8 months ago

It looks mostly the same as XML views but some components look and behave wildly different for no apparent reason (tooltips are one of those).

[–] fmstrat@lemmy.nowsci.com 12 points 8 months ago* (last edited 8 months ago) (2 children)

Agree. Will it be as performant as native? No. But will it be plenty performant for a password manager, yes.

The only thing I wish RN and Flutter would figure out is bloat. File sizes are huge compared to native. A shame there can't be a shared model in mobile apps for the core system.

[–] AMDIsOurLord@lemmy.ml 7 points 8 months ago (2 children)

Flutter is native. It gets compiled to an executable, it just takes a render plane from the underlying OS and renders everything in it's own engine. They're working on a new render system that will make it go even faster.

React Native is just a fancy web browser wrapping with some helper APIs.

[–] aeharding@lemmy.world 6 points 8 months ago

React Native is just a fancy web browser wrapping with some helper APIs.

React native is not a browser. It uses native components.

[–] merthyr1831@lemmy.world 3 points 8 months ago (1 children)

RN is native too I think, at least it advertises itself as a way to compile some kind of XML syntax into native widgets on either platform. An improvement to PWAs even if I despise typescript

[–] hruzgar@feddit.de 1 points 8 months ago (2 children)

yeah, it displays native widgets but there is still a js engine (browser) running in the background. So the basically made a layer between native components and Javascript. But the code which is running is js and js is slow.

[–] merthyr1831@lemmy.world 2 points 8 months ago

yeah the JS/TS was always a killer for me ngl

[–] deadcream@sopuli.xyz 1 points 8 months ago

JS by itself is very fast (it's one of the fastest dynamic languages). It's interop with platforms APIs that is slow, at the fact that each React app spins up its own instance of Chromium also doesn't help.

[–] merthyr1831@lemmy.world 1 points 8 months ago

I guess smaller apps would be nice but that's also a thing that can be helped - I have a handful of flutter apps on my phone right now (that i know of) and they run in at:

18MB - Nextcloud recipes client

50MB - Spotube (Youtube music client with spotify integration)

100MB - My job - a savings and investments app, with half a dozen third party API integrations.

So depending on your scope and stuff you can really build an app to whatever size. Cant account for react native or blazor but the idea is usually just abstract native graphics APIs instead of using a browser runtime.