this post was submitted on 23 Sep 2023
26 points (90.6% liked)

Android

28046 readers
563 users here now

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:

[email protected]


founded 1 year ago
MODERATORS
 

Before judging ( which i knw you will ๐Ÿคฃ), I'm new to mobile dev. Sooo "handle with care"?

you are viewing a single comment's thread
view the rest of the comments
[โ€“] [email protected] 13 points 1 year ago* (last edited 5 months ago) (3 children)

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.

[โ€“] [email protected] 4 points 1 year ago

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.

[โ€“] anoop_V1 3 points 1 year ago

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.

[โ€“] smitty825 1 points 1 year ago

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)