9 ms·
I release two apps, across 3 OSes, in somewhat of a bimonthly cadence with a low defect rate. That’s 6 different binaries. I’m a solo founder. I know people li
by rolleiflex 7y ago
I release two apps, across 3 OSes, in somewhat of a bimonthly cadence with a low defect rate. That’s 6 different binaries. I’m a solo founder.
I know people like to rag on Electron, but without it, I wouldn’t be using something else, my apps just wouldn’t exist. It allows more people to try building more thing and that is a net positive.
The speed problems and bloat issues of Electron is just shoddy programming on the maker’s part - Electron itself isn’t slow. I use it largely as a shell talking to a Go binary that ships within the app package, which makes it only tasked with UI. If you’re having issues with speed, it’s a good approach.
A real world example of this approach is the thing I work on at https://aether.app https://aether.app. (An async collaboration tool for engineers)
- vtail 7y agoGood rationale from a maker, not a purist, and good luck with your projects! I liked the site, it's clean and to the point. Just a small nitpick: right under the Demo download button, you say "(Demo does not have Pro features such as team management, access control and others)". I wouldn't say that - that essentially gives the user a (subconscious) rationale on why she shouldn't download the demo. I would suggest to focus on the positives instead - what the Demo can do. If you can somehow remove limitations, even for 14 days - even better!
- rolleiflex 7y agoThank you! That’s good feedback. It’s there because the demo implies that it’s the demo of the same app, while in reality it’s a similar app targeting a different user base (a superficially Reddit-like peer to peer network). That’s why I say I have two apps, Aether and Aether Pro. The demo on the Aether Pro website is actually just regular Aether P2P. I’ll try to find a way of making it less of a showstopper though - might be a better way to tell this.
- dewey 7y agoFor me, and probably others, the main issue with Electron isn't the speed or even resource usage. It's that it ignores common UX/UI conventions you expect from a native app which still makes me prefer native macOS apps.
- rolleiflex 7y agoI agree with this. Unfortunately that’s a designer bottleneck rather than anything else. Think of it this way, if somebody ends up with a mess of an Electron app, he or she probably wouldn’t have fared any better in usability with a native app even if the UI would look superficially ‘in-spec’. Edit: Also as an example, Aether comes with plenty of shortcuts, or even has proper tabbing and tab highlighting for low-vision users. Electron prevents none of these, in fact the platform it’s based on, the DOM, is one of the most accessible platforms ever made in terms of support. Whether people actually make use of it it is another matter.
- dewey 7y agoI wouldn't necessarily say it's just the way it looks, it's also how things work that you get for "free" when you use the native UI toolkit. Examples would be shortcuts, tabbing through form fields, how a file explorer works and other small things. The file explorer in VSCode for example doesn't really behave like a native one, you have to manually refresh, you can't easily drag and drop and everything just feels a bit off.
- httpsterio 7y agoJust last week I added shortcuts to our MacOS and Windows Electron app in about 15 minutes. I didn't read any documentation and I'm not even a developer, just a designer. I can barely make a proper if loop in js and I can't tell the difference between a method and a function either. Electron is sooo simple. I mean, we've run into some pretty interesting issues like with hardware acceleration and difference in color and font rendering between platforms, but if a guy like me can code, sign and ship a fully functional application, anyone can. Also, I can really recommend Vue and Quasar for anyone looking at building electron and mobile apps. Really fun!
- saagarjha 7y agoThere’s a lot more to getting an app to feel native than just shortcuts, unfortunately. A native platform toolkit will do the right thing for your platform, sometimes even if you don’t know what the right thing is or that it exists.
- inferiorhuman 7y agoI know people like to rag on Electron, but without it, I wouldn’t be using something else, my apps just wouldn’t exist. Cool. With Electron your app will only work on Linux/Windows/MacOS. There are other cross-platform solutions.
- CDSlice 7y agoWhat other PC OSs are there that actually gets used? BSDs?
- inferiorhuman 7y agoWhat other PC OSs are there that actually gets used? BSDs? Yes. Or Linux on non-x86 platforms.
- CDSlice 7y agoElectron not supporting ARM or other non-x86 platforms is a big problem that I was not aware of. I wonder if that will change with Microsoft starting to make ARM laptops and Apple being rumored to switch to ARM sometime in the future.
- sroussey 7y agoThe announcement this whole discussion links to talks about the new ARM support, so I am confused as to what you are talking about.
- nereye 7y agoFrom https://electronjs.org/docs/tutorial/support https://electronjs.org/docs/tutorial/support: Linux The prebuilt ia32 (i686) and x64 (amd64) binaries of Electron are built on Ubuntu 12.04, the armv7l binary is built against ARM v7 with hard-float ABI and NEON for Debian Wheezy.
- inferiorhuman 7y ago
- 0xffff2 7y ago>The speed problems and bloat issues of Electron is just shoddy programming on the maker’s part - Electron itself isn’t slow. I doubt this is entirely true. VSCode is frequently cited as an example of a good, performant Electron application. Its performance is generally acceptable (I use it as my primary text editor), but it absolutely chugs sometimes. Sublime is light-years ahead in terms of performance.
- rolleiflex 7y agoThat is true and as a user of Sublime myself, I agree. However, VSCode is still a JS app that has to do its computation on a single thread, on a largely interpreted language. If you do it the way I do and use Electron as a skin / thin client to a compiled binary within the package, you remove that bottleneck. That way, you get both cross-OS capabilities, a familiar UI toolkit (JavaScript, I use Vue) and native binary speed and real multi-thread capabilities.
- tybit 7y agoI really hope this is the sort of thing products like VSCode will start turning to WASM for. Performance is their Achilles heel for the time being even though they’ve done a relatively good job considering.
- rolleiflex 7y agoThat would be helpful. Go can compile to WASM natively, so if I could just compile it down to that, I wouldn't even have different Go binaries for different platforms. That said, some things I use (like SQLite, gRPC) will probably forever remain a C dependency, so I'm not sure if WASM would help with that.
- nobleach 7y agoA couple of things here. WASM isn't necessarily more performant than vanilla JS. For the web, it'll open the door to the JS engine as a compile target, and that's great.... but it's still not super fast. Secondly, in the case of an application, WASM is of little use since (with node and almost any programming language) you have an FFI available. One could simply shell out computationally heavy things to C++ or whatever else. This is what many folks do with their Electron apps already (via node-ffi).
- vips7L 7y agoMy company does the same, except we farm out to a java process.
- jcelerier 7y ago> I release two apps, across 3 OSes, in somewhat of a bimonthly cadence with a low defect rate. That’s 6 different binaries. I’m a solo founder. I release a Qt app for mac / windows / linux whenever I want by tagging a git commit and letting it be built by CI services. There is a single code base with almost zero platform-specific code. I really don't think that the technology choice is what matters in this.
- faitswulff 7y agoHow is Qt support for mobile platforms?
- wwright 7y agoAs someone who has worked a lot with both Qt and React at my current job, I feel that React is significantly easier for almost everyone. Qt’s complexity negates a lot of its benefits in most hands.
- petemill 7y agoWithout it, you could do just a web app?