this post was submitted on 11 Sep 2023
1167 points (97.1% liked)

Programmer Humor

32410 readers
251 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 21 points 1 year ago* (last edited 1 year ago) (2 children)

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
[–] [email protected] 6 points 1 year ago

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

[–] [email protected] 3 points 1 year ago

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