Electron, is it right for building cross platform applications?
I will tell you the secret that is electron, and hope to make it interesting for the common person.
You might have heard it in passing, or at a big technical meeting where the company handing you a proposal was throwing around this word “Electron” . The first thing that may have come to your mind… the atom from chemistry class? That can’t be right, we are in a meeting about building a computer application.
I’m hoping to help clear up what this new buzzword “Electron” is and who is using it. As well as bring it down from the technical jargon that sometimes gets thrown around in presentations for what your company's application should be built on.
What is Electron?
Electron is a tool developers can use for building applications that will be easily compatible and run on Mac, Windows, and Linux, using the same technology they use to build your company's main website. Simply put, Electron takes care of all the hard parts of writing a desktop application, allowing the developer to focus on the core of the application.
Why might this matter to you?
Instead of needing developers for each specific platform (Mac, Windows, or Linux) we are able to use the same developers to build it once so it works on each platform. This will increase the consistency and feel across your app as well as decrease the time it takes to develop your application, while still hitting a MUCH larger market. They also could be the same developers that maybe wrote your company's main website, and already have a solid understanding of your brand, style guides, and guidelines.
If you have an existing web page, those styles, fonts, and colors all can be used quickly and easily within your Electron application.
How can I take advantage of it?
Let’s assume your company already has a website, but parts of your product really don’t make sense being on a web page. At this point, you're probably saying “What doesn’t work on the web? My technical partners just had us push everything we have digital to the cloud, stating the web is the future, now you want me to go back to desktop?!”
Not everything works “great” in a web browser. Games, for example, are still best played on the desktop platform. Think of Slack, HipChat or the salesforce chatter chat application. When was the last time you loaded these applications up in the web page and used that?
Using this thought, you can expand your web page to do more. An Electron app is a great tool for an admin utility extending your main website. Take for example in a case of an e-commerce store. In most stores you are getting order notifications through emails or point of sale systems. You could have an application that runs on the desktop tray showing notifications of orders, allowing the ability to quickly mark orders as in progress, or shipped without having to load up the browser. You could even expand upon this to have a specific look and feel for your customer support person(s) to look up only the info they should have access to.
So who wrote it? Does a major company back it?
Electron is open-source, it was originally written by Cheng Zhao but is now developed by GitHub. GitHub is an online version control system based in San Francisco with over 600 employees and hosting more than 62 million projects. Electron is used in another major GitHub open-source project called Atom, a coding editor used by many developers. Because Electron is open-source, it is backed by a very large community that donates their time to improve and enhance the product very quickly.
Might surprise you who is using it
Chances are you are probably using an Electron app today and may not even realize it. Companies that are using Electron: Slack, WordPress, Basecamp, Ghost desktop and WhatsApp desktop to name a few.
Performance concerns, next Adobe Air?
If you’ve been doing your research, which I assume you are as you’ve hit this post, you probably have come across a post that was pointing out how Electron can be very heavy, even having some people calling it the next Adobe Air. You probably heard a couple years ago how Apple stopped supporting Adobe flash causing a little bit of chaos for all the sites using it.
A very important difference between Adobe Air and Electron, is Adobe Air required to be installed in order for it to even work. I could go on how flash/Air uses ActionScript (another programming language) and again required very specific developers. With Electron it is open source and a framework that allows the developer access to specific features in the desktop that they do not get on the browser, such as the file system.
But yes, Electron is heavier than its native counterpart. This is simply because it is bundling the open-source Chromium browser into the application. The benefit to this is if the application looks good on one platform it will look the same across the other two. A major battle for web developers is trying to make every browser (Safari, IE, Chrome, Firefox) look the same.
Though that's not to say Electron is not trying to get slimmer, there are a couple up and coming projects attempting to improve this area, Electro being one of them.
Slack even rebuilt their chat application in Electron with a more hybrid approach loading specific assets remotely to increase performance greatly. They wrote about their experience to Building Hybrid Applications with Electron .
A Final Word
Electron is still very new and growing very fast. The important reason to consider an Electron app when looking to extend outside of just a web page is it's a fast transition to the desktop environment. Thus allowing developers to only have to maintain one code base, and employers the ability to focus on hiring developers with a similar skill set. It's important to be aware simply what it provides as it will only continue to grow in popularity.