I can't speak about Flutter or React Native, but what I can say is DON'T use Xamarin Forms/MAUI. As a native Android developer I had to start using Xamarin after changing jobs and it's been one of the biggest regrets of my career, honestly. Literally nothing works like you would expect it to. I understand the idea of writing the same code twice is intimidating, but trust me, nothing beats native development. Nothing. I can say with 99.9% certainty, you will regret not going with native if (or when) your app requires any vaguely complex feature to be implemented into it. Swift and Kotlin are similar enough that you can literally write the same app natively for both platforms faster than it would take you to write them in any cross platform framework (or at least Xamarin/MAUI), unless you're making an extremely simple app with no customizations whatsoever.
Android
DROID DOES
Welcome to the droidymcdroidface-iest, Lemmyest (Lemmiest), test, bestest, phoniest, pluckiest, snarkiest, and spiciest Android community on Lemmy (Do not respond)! Here you can participate in amazing discussions and events relating to all things Android.
The rules for posting and commenting, besides the rules defined here for lemmy.world, are as follows:
Rules
1. All posts must be relevant to Android devices/operating system.
2. Posts cannot be illegal or NSFW material.
3. No spam, self promotion, or upvote farming. Sources engaging in these behavior will be added to the Blacklist.
4. Non-whitelisted bots will be banned.
5. Engage respectfully: Harassment, flamebaiting, bad faith engagement, or agenda posting will result in your posts being removed. Excessive violations will result in temporary or permanent ban, depending on severity.
6. Memes are not allowed to be posts, but are allowed in the comments.
7. Posts from clickbait sources are heavily discouraged. Please de-clickbait titles if it needs to be submitted.
8. Submission statements of any length composed of your own thoughts inside the post text field are mandatory for any microblog posts, and are optional but recommended for article/image/video posts.
Community Resources:
We are Android girls*,
In our Lemmy.world.
The back is plastic,
It's fantastic.
*Well, not just girls: people of all gender identities are welcomed here.
Our Partner Communities:
Yep, I have been using Forms for a little while (I was invited to first beta, mind you), gave up. Not worth it in longer term, probably not even in short term. I guess MAUI is more or less similar. Perhaps the working compromise is Xamarin native, where you can share code between the two platforms and write native UI and interact with native libraries. It works as long as libraries have bindings (a lot of them have, if they don't you can still create them yourself, but that's not trivial), but you still have friction and additional problems, such as handling different application lifetimes. Also tried flutter, which suffers from similar problems, though bindings are done in different way, perhaps more natural.
TL;DR; A lot has changed since I've tried crossplatform, Jetpack Compose/Kotlin and Swift/Swift UI happened. And they both have superior design time features and are great in many aspects. I'd go with native today.
I absolutely agree with this. I've used the former and the experience is exactly the same. Neither Flutter nor React Native support any remotely complex features from individual platforms. Breaking layouts and abysmal memory usage is a cherry on top.
I mostly have the same experience. I did a Xamarin.Mac app to port some windows code to the Mac. In some senses, it was amazing, because most of the business logic just worked and that saved a bunch of time. The UI was app kit, but with c# to obj-c bindings. That also mostly worked, however, when something broke, it really broke and was incredibly difficult to debug.
There are some use cases Iโd recommend Xamarin for still, but the majority of cases are probably best solved by writing native code directly. (Or at least using a portable language such as C, C++ or Rust for cross platform business logic)
Been using Flutter for a while, hybrid frameworks are great for small teams, as you only have to make one app.
I think they're good enough for most cases, just like with most tools it's what you make out of it that will make it good or not, it's easy to make a shitty native app.
For Flutter I would only say that it's finally starting to be mature for stuff like navigation and state management.
Keep in mind that each solution has benefits and drawbacks, it's all about tradeoffs.
I'm a react native and flutter dev. They're very, very good for 90% of use cases. Even if you're only developing for one platform, they're actually quicker to get started on and be productive than native development, especially if you use something like Expo to get your app started as fast as possible. If you're doing performance critical applications or need access to hardware other than the usual camera/Bluetooth/internet, then you probably are better off writing it natively but that describes a very small handful of real-world apps and you can always selectively write some parts in native code.
EDIT: Also I didn't think it had to be said cause I thought Xamarin was basically dead but yeah, Xamarin sucks major ass.
Thanks for the feedback
need access to hardware other than the usual camera/Bluetooth/internet
The app under design needs access to real-time GPS/Location services... can the platform handle this, or should i swallow the native pill
Ah yes that too is covered by Flutter/React Native.
In my company we use Ionic, it uses a native WebView to render websites code.
The fact I can use html/css/js to do everything I want is great. But having to rely on third-party Capacitor plugins to use native features really sucks. Ionic provides custom html components with native look, and this is great, exept for the fact it still uses MD2 for Android.
Implementing MD3 all by myself has been a painful experience, only because default components style is so baked in, that you have to use ionic custom css variable to even change the background.
Back in the days, we were just 2 developer for 2 apps and a Website, and Ionic build all 3 of them with just one codebase
Vue in general is the most interesting for me. Still a learner.
The way I can easily implement it like jQuery or code the whole thing for example. I like it.