For a few years now, I’ve been an outspoken critic of Electron, GitHub’s cross platform development system for creating desktop apps with web tools. It’s not hard to come up with reasons to be critical: it’s a memory hog, it’s slow, it’s got poor accessibility support, etc. For me the benefits of cross platform have never been worth these costs.
Then something changed…
I have a little Linux box I use just for tinkering with Arduino and my 3D printers. About a month ago I thought it would be fun to build an app for my own use. I run Elementary OS on my Linux box. It’s UI borrows heavily from macOS, so I figured app development might be familiar too. I couldn’t have been much more wrong. It’s very strange: Elementary apps are written in Vala, a “compiler for the Go type system,” whatever that means. I’d half given up by the time I was through Hello World.
Sorry. No thanks, I have plenty of obscure languages rattling around in my head already, thankyouverymuch. No need to add to that menagerie.
But just I was throwing in the towel, I read about another Electron app-launch. This time instead of a rant on Twitter, lightning struck: I can use Electron to build a Linux app! No crazy languages required!
And then the most unexpected thing happened: I actually did it.
I built a Linux app. It was strangely easy… fun, even. It only took a few evening/weekend coding sessions and things were up and running.
Don’t worry, I haven’t lost my religion. I still think native is the way forward. Stacks 4 development is progressing quickly and it’s 100% Obj-C (unit tested in Swift). I think native code will always produce the better app. But maybe for solo devs who’ve hit the insurmountable road-blocks of developing for other platforms… maybe this is a way forward?
Next blog post I’ll talk about the simple little app I built. Maybe I’ll even release a beta. Hint: I’m using it right now.