Before judging ( which i knw you will 🤣), I’m new to mobile dev. Sooo “handle with care”?

  • HarryOru@lemm.ee
    link
    fedilink
    English
    arrow-up
    13
    ·
    edit-2
    7 months ago

    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.

    • mihies@kbin.social
      link
      fedilink
      arrow-up
      4
      ·
      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@lemmy.world
      link
      fedilink
      English
      arrow-up
      3
      ·
      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@lemmy.world
      link
      fedilink
      English
      arrow-up
      1
      ·
      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)