• masterspace@lemmy.ca
    link
    fedilink
    English
    arrow-up
    22
    arrow-down
    1
    ·
    edit-2
    10 months ago

    Options:

    Native app for each platform:

    • Pros: native code is going to be the fastest possible to run and have the smallest dependencies
    • Cons: have to write all your code 3+ times in different languages, have less time to develop new features and optimize existing code.

    Progressive Web App:

    • Pros: single app, write once runs anywhere, no signing keys, no lock in, can be hosted anywhere, runs on everything
    • Cons: artificially limited by Apple on iOS, doesn’t have access to deep operating system resources, only what’s exposed through the browser, limited multithreading capabilities

    React Native:

    • Pros: single app, write once, runs anywhere, similar enough to React Web that a lot of developers will have an easy time learning it
    • Cons: still kinda finnicky, not super easy to make it work and perform well across all platforms, you’ll probably still end up having to write some native code, not actually CSS / React Web so still a bit of a learning curve coming from there

    Qt:

    • Pros: single app, write once, runs anywhere, low level / compiled means that it will be small and performant
    • Cons: written in C++, harder to find developers for, harder to implement modern out of the box niceties that CSS gives you for free, poor devX compared to react

    .NET MAUI (formerly Xamarin):

    • Pros: single app, write once, runs anywhere, low level / compiled enough to be more performant than most web apps out of the box, well documented
    • Cons: written in C#, easier to find devs for but not many experts in it specifically, MVVM model is not as pleasant of a devX as React, again no css

    Electron:

    • Pros: single app, write once, runs anywhere, has full access to operating system resources and deep multithreading if needed, can be as simple as web app in a container or as complex as something like VSCode.
    • Cons: takes up more storage and ram since you’re bundling chromium with your app
    • aksdb@feddit.de
      link
      fedilink
      arrow-up
      6
      ·
      10 months ago

      Flutter is quite nice too. Closer to web dev, but still pretty close to native.

    • TehPers@beehaw.org
      link
      fedilink
      English
      arrow-up
      3
      ·
      10 months ago

      Tauri is also a more recent option, which uses the native webview. Not sure if it’s suitable for production yet though.