I think there's a huge market need for good desktop apps, many folks prefer them to online tools. Bonus: It's never been easier to build a cross-platform desktop app.
I know there's a lot of hate in here for Electron, but it truly makes cross-platform desktop app development achievable for small companies and indies.
Is an electron app really a desktop app? I suppose from the users point of view it could be, but I read the OPs post as asking about native desktop apps, ie. providing a better experience than a webapp.
To answer (my interpretation of) the question, there are still plenty of good native desktop apps for MacOS. I don't have data to back this up but I wonder if Mac users are more willing to pay for native desktop apps than Windows or Linux, which makes it easier for indie devs to support themselves full time writing these niche apps.
I can't speak for all Electron apps, but Beekeeper Studio is a true desktop app yes.
All the assets (css, html, js) are bundled in the app, nothing loads from the web, it is truly 'local', and works 100% offline. It's possible to change styles based on what OS you're running on, and there's the full suite of native APIs you can call.
To weigh in on who pays for software -- I'll let you know once I've sold more copies of my paid version, my guess is that more MacOS using individuals pay for apps, but more businesses running Windows pay for bulk licenses.
I think OP means native app. JS based Electron apps are noticeably less responsive and suck a lot more battery+RAM than native apps, easily a 10x difference.
Not only Electron apps, also any desktop program made with web technologies.
At an example, let's look at Dropbox desktop programs. In Windows is made mixing Qt, Python scripts, and native solutions (just have a look at the installation folder), resulting in both a worse performance an a use of RAM.
That's totally true. I forgot to write that Dropbox uses Qt WebEngine in combination with HTML + CSS + JS to achieve what could be done with just plain Qt with nothing more.
Even very well written Electron apps consume a lot more battery and memory and are less responsive than very well written native apps. It's the nature of the technology.
Notion, Obsidian, and the like are getting pretty popular and are all Electron based. Postman was good after the Chrome App -> Electron port, though now they've bloated it to do more upsells.
Sure, I understand that. But that's not what the parent was saying. The parent was saying there have been a number of good Electron apps recently. The only Electron app I ever see anyone hold up as good is VSCode, an app that makes a herculean effort to mitigate the latency and performance problems that Electron apps usually have.
If the choice is between an Electron app and no app at all? I would rather the Electron app not lie to my face that it's a real application. No one expects a website in your browser to follow system conventions perfectly or behave like any other app on your system would. That expectation instantly and reasonably changes the moment it has its own application icon and windows, and Electron apps don't give a shit. I would rather not need to have Teams and Slack both installed and chewing up my CPU and GPU at work just because they both decided they're special enough to try and claim all of my resources.
> VSCode, an app that makes a herculean effort to mitigate the latency and performance problems that Electron apps usually have.
Can you point to the parts of the program (source) that implement such optimizations? I'm curious, in particular, about how other editors solve the performance problems.
Large parts of VSCode is implemented in C++ and running webassembly to avoid the problems with electron. An electron app that doesn't have parts in webassembly can't be as good as VSCode.
I would argue that a desktop app is an app that does not require a remote server to render the UI. Ideally it would be also useful without access to the internet. In this instance, it should be able to load up, connect to a local db instance running on my machine and allow me to get work done.
As a user the underlying technology does not matter to me. I just need to be able to get stuff done without a WiFi or wired connection.
I don't have a hate on for Electron apps as such, and use quite a few, but they really are the worst of all worlds, particularly from the security point of view: you have all the ability of an Internet-connected web app to execute arbitrary code, but without any of the work that a full browser puts in to try and sandbox the ability to fuck up your machine.
> makes cross-platform desktop app development achievable
Personal opinion - this has never been not achievable. It just requires making it a priority.
And it's not as if creating and maintaining an Electron app is somehow free. This "not free" aspect is compounded if you care about making it fit in with the rest of the desktop environment. Which, being fair, most developers (PMs, Managers, Execs) don't, even when their customers do.
You're right that it's possible, and electron development isn't free, but it's significantly easier for a team of two than it is to maintain native Windows, MacOS, and Linux.
One way I think of Electron is that it's fine if it's a primary app I'm using, but when it's a side thing that I have to leave open (Spotify, Slack), it can annoying. I agree that I'd rather native apps for better performance and resource usage, but I understand the developer's plight.
There's no developer's plight for Spotify and Slack. They both have tens of millions of clients running. They can afford to make something better and if they had any respect for their users or the planet, they would.
I think one of the biggest problems with modern app development (web and desktop) is how much developers assume that their app is your primary app (and thus can hog resources/screen space/etc). The only apps that can ever reasonably make that assumptions imo are ones with real-time interaction, e.g. games. Anything else can and will be a side app in some scenarios.
There was a great cross-platform environment called Visix Galaxy in the 1990's. You could compile your C++ source into native apps that ran on Windows NT as well as Solaris and HP-UX. It had a fantastic GUI builder which is similar to what is available today.
It's possibly still around: http://www.ambiencia.com/overviewgalaxytd.php . Expensive as fuck, though; if I understood the pricing page correctly, it's $1.5K for a single-developer no-support license of the cheapest version. (Dunno what the differences between versions are.)
Free Pascal / Lazarus is a FOSS cross-platform language and GUI IDE. I'd recommend trying that in stead.
>I know there's a lot of hate in here for Electron, but it truly makes cross-platform desktop app development achievable for small companies and indies.
As a dev with a lot of experience in JS/HTML/CSS Electron makes things super easy, especially when it can be part of the regular build pipeline.
Learning Qt means figuring out a whole new stack and build chain. Maybe the result would be better, but with only a few hours a week I didn't feel like it would have been worth the time investment.
>Qt is not nearly as easy to use as Electron, especially if you're a small company and need to hire front end devs for cheap.
Sure it is.
>Also Qt GUIs look like garbage, but it's hard to quantify why.
No more garbage-like than you're getting with Electron and just as style-able (with arguable superior layout engines). Qt has a number of style palettes; perhaps you're used to using applications which chose to use non-native/standard palettes.
I've written apps with GTK, Qt and Electron in the past. Of the three frameworks, Qt is easily the hardest (albeit "the best" for cross-platform native development). I'm not sure what your experience is with it, but I never once felt like it was easier than writing an Electron app.
I've been following for a while, really love the Beekeeper Studio!
But I always was interested, how do you evaluate the market and your income? Would you advice to join and develop tools for the desktop? Is it your fulltime job? Does it take a lot of time?
It's super powerful, but with that power comes complexity. I found it too overwhelming to use when building Rails apps. I really missed SequelPro, so I built Beekeeper Studio to scratch my own itch. Others had the same itch I guess!
What about Flutter? I heard so many complaints before I now hesitate to look at it. But maybe these were just teething problems and things are running more smoothly now?
Flutter is great. Web support is still not all there, but if you're looking at making apps for iOS/Android/Linux/Windows/Mac and you're not worried about it looking 100% native, it's a huge timesaver.
I think there's a huge market need for good desktop apps, many folks prefer them to online tools. Bonus: It's never been easier to build a cross-platform desktop app.
I know there's a lot of hate in here for Electron, but it truly makes cross-platform desktop app development achievable for small companies and indies.