You might have the best developers around but using electron will always make your app worse. It bundles all of chromium which is an outrageous waste of space. Chromium in itself is really ram intensive and the new contributions of Microsoft edge to chromium aren’t even added there anyway.
If you need a web front end make a progressive web app and use web assembly technology. Or use a lighter framework like neutralino or tauri JS. You do not need to bundle chromium in every single application.
Look - bitch all you like, but... An electron app is now the most popular editor on the planet. Further - because of Electron I can use every required work app on linux.
I literally give almost no fucks how bad electron apps are, because I'm painfully aware of what it was like to try to run a linux box as a daily driver as an employed software developer before Electron - Hint, it involved booting a windows VM. You want to guess what's more of a resource hog?
So, you can go poopooing "that damned new app on my block" all you want, but you don't matter.
Between an electron app, and no app... I will pick electron. if that means I need to spend an extra 15 bucks on ram or hdd... oh the horror!
Would I be happy to see linux native ports? Sure.
But as someone who's not an a blind foolish zealot, I can do some quick math to understand exactly what the cost/benefit of native linux ports are, and I don't really blame companies for skipping them, and I'm thrilled they pick stacks like electron so I get first party support.
Would I like to have more PWAs? Absolutely - go take it up with Apple, who's been a stick in the mud on this front for literally decades now.
Do I think Neutralino or Tauri actually solves this problem? Nope - because it depends on the native webview implementation, system support is a nightmare (it's a modern take on DLL hell from windows - just this time it's missing browser features. You want to guess how many times I still see enterprise machines running ie8/11 as the default webview? It's a fuck load more than you might expect)
Otherwise... take a deep breath. You will survive this "hugely trying ordeal" of having someone ship a slightly larger binary in this day and age of multi-terabyte drives.
You do realize that PWA support on MacOS Is a 100% and on par with windows right?
You can get edge or chrome on Mac too.
The problems with WebKit compatibility is more about the functionalities, which is what framework like tauri try to adresses.
Look, I will concede that maybe there’s some specific app where electron really make sense, but there’s no way that applies to all the apps. There’s no way that Trello needs electron, there’s no way that your new pomodoro app need electron. There’s no way postman needs electron too cause there’s literally some people who made an open source PWA version of it, and to get local host support you can just get their chrome extension.
It is no longer : it’s better than no app, cause there are definitely way better alternatives for most electron use cases.
I’ve also downloaded chrome less, which enables me to get a wrapper for figma and Trello. I choose to make them use my safari browser, and both of them takes way less space and are reaaallly faster.
I've had a linux desktop/laptop for twenty years now and never used an Electon app to my knowledge, so don't care either way. Just curious why both of you seem to think they are required? The "apps" mentioned so far work fine in a browser, or have native alternatives.
For the most part - I agree that electron apps are also usable in the browser, a few of them struggle with the sandboxing that browsers place around file system access.
Ex: Yes, you can run vscode in a browser, but it has a lot of caveats, and behaves much more like a remote client.
For others - Just having Electron to target is the reason they work in the browser at all. Skype used to require either a windows vm, or a crappy 3rd party linux client - now it's electron native and also works in the browser, and Teams targeted electron out of the gate, making it browser compatible early (although I wouldn't call teams a shining example of a decent app unless you held me hostage)
Etcher is another example - Yes, with WebUSB, you can flash usb devices in a normal tab, but there's just really no reason to have a server to hit at all - the whole process is client local, and having you download it as a local application just makes more sense all the way around (not to mention, gets offline access for free, rather than having to implement it with a service worker).
Another reason to keep them local is that you get a new chromium profile by default. I run discord on a few work machines, but I don't want it to run in the browser profile I use for work, and I'm already juggling 3 other work profiles (dev, staging, qa) and my personal chrome profile - they have a specific set of extensions and settings. It's easier to just treat it like an app if I want it running most of the day - happy to load it in a tab when I'm out and about on other computers, though.
> I literally give almost no fucks how bad electron apps are, because I'm painfully aware of what it was like to try to run a linux box as a daily driver as an employed software developer before Electron - Hint, it involved booting a windows VM. You want to guess what's more of a resource hog?
Yeah it's totally cool that we all get to suffer so some masochist linux desktop users get some apps
You're supposed to bundle a slimmed-down Java runtime with your app these days, so end-users don't have to deal with updating a system-global "JRE" (which technically doesn't exist anymore, officially).
I think they serve different purposes.
Catalyst is mostly used when you’ve already written your iPad app (either in UIKit or iOS specific SwiftUI) and now you want to make that app available on Mac without rewriting parts of the code.
You can indeed write a multiplatform app in SwiftUI nowadays.
That’s what I’m doing with Volum (https://lowtechguys.com/volum) which easily shares 95% of the code between macOS, iOS and iPadOS, and only platform specific code like keyboard shortcuts or volume OSD is isolated.
But you kinda have to start with that multiplatform mindset from the start, otherwise you’ll soon find out you used too many custom NSViews and Cocoa APIs, your UI is not designed for portrait mode, and it’s a burden to place #if os(macOS) guards all over the place now.
Agree with the others: SwiftUI is a long, long way from being ready for prime time at this point. In practice you're going to be stuck using a nasty, ugly mixture of SwiftUI and AppKit/UIKit for anything beyond the most basic design, and that way lies madness (at least for me).
But I also agree that SwiftUI is very promising, and I like what I've seen a lot. It's just not there yet.
SwiftUI is still a little rough in some places though it is growing fairly quickly. If you are doing simple UIs where there are already UI components built, it works well, but if you need more custom or more complex you get into the weeds pretty quickly.
Catalyst is helpful for the near term (next few years?) to bring over more complex iOS apps that use the iOS UI framework. That gives developers a product now while they work on a SwiftUI version or whatever direction they end up going.
As much as I love the web I feel like there may be some problems. What would entail to allowing anything run on the web? Bluetooth, hardware, movement tracking api (creepy!!) are causing legitimate concerns.
The web was meant to be an information sharing platform. To share information means that there was standards to be built. From these standards, came the possibility to make things that works everywhere, which explains the popularity of web apps.
It may be tempting to push for more support in web standards, however the nature of the web platform give it vulnerabilities that wouldn’t exist in a native app.
A native app is a piece of code. You can analyse it through antivirus, and the executable stay the same unless you choose to update it. (Electron apps allow app maker to update automatically, but they are not native apps, the chrome browser embedded is native but the only website it can access is not). A web app use multiple devices and is more uncertain. Service workers fetch information from a website and on a remote server, and that code would arrive on your computer without you actually consenting or realizing it. What if my website get attacked and suddenly my web app is loading a Bluetooth api that could access a connected object, like my smart car, my health device or other potentially dangerous stuff?
Moreover, allowing alternative browser would allow developers to be less constrained by Apple, for the better, indeed, but also for the worst. If chrome decide to bring their chromium browser to iOS, Facebook could just delete it’s iOS app and put it as a chrome PWA, this would allow them to bypass the Apple Store restrictions.