• @[email protected]
    link
    fedilink
    English
    20
    edit-2
    1 year 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