As a senior project manager in an ever-growing digital agency and the main go-to communication person when landing clients and/ or pitching projects I have had the pleasure to take
Age of Electron: Rise of Cross-Platform Desktop Apps
Developing desktop applications can be full of challenges that make it hard to approach if you don’t have the matching knowledge base of a CS graduate. To understand the ins and outs of your computer’s ability, a solid grasp of fundamental theories and a proper command of programming languages is a must.
If you look at the software industry, you can clearly see that every application you’re using is developed by a professional software solution, who in turn has employed teams of computer engineers. Whereas on the other hand, you can easily find plenty of web applications like websites, servers, PWAs, and APIs built by self-learned developers.
Well, you see, web-technologies are easily approachable given you have the right resources and proper dedication. Desktop apps, however, require much sophisticated and expert handling as they are curated by mixing many primitive knowledge bases.
Till almost recently, most of the desktop applications we use were system-specific solutions. It means the same application is developed more than once to use on different platforms such as Microsoft Windows, MacOS, and Linux. This approach requires a huge development time and resources whereas posing many system incompatibility issues.
To get rid of these problems, and create a much faster and efficient development phase for desktop apps, the Electron framework has been built. It’s a cross-platform framework maintained by the folks at Github and is aimed at using web technologies to develop cross-platform highly functional desktop applications.
We’ll discuss the ins and outs, pros and cons of this framework in today’s post. Bear us through if you also want to develop cross-platform desktop applications with plain old web technologies.
Electron and Cross-Platform Apps: In General
So, you might be asking yourself what cross-platform apps are and what Electron have to do with these. Let us guide you through the concept of these apps in this section.
As their name vaguely suggests, cross-platform apps are nothing but desktop applications that support multiple operating systems. These apps exploit the dependency related weaknesses of native apps and aim at developing only a single application for different systems.
These apps achieve their goal by utilizing web-based components like pages and APIs to gain the same functionalities of native apps, at a reduced development period and associated resource costs.
Electron, a framework to utilize such components is the leading solution to cross-platform apps. You can actually think of Electron as a combination of two underlying technologies, the node.js runtime environment and the Chromium rendering engine.
Chromium, on the other hand, is the open source part of Google’s Chrome browser. It is a rendering engine that renders web applications display to us. With the association of both the node runtime and the Chromium engine, Electron provides us a handy way of developing desktop apps without requiring any knowledge of underlying system architecture and system languages.
Hence the motto of Electron is, “if you can build a website, you can build a desktop app.” Given that, you can create web apps or components with basic web techs like HTML, CSS, or JS; then you can easily create a desktop app. The principal of development no longer demands different approaches.
Native Apps vs. Cross-platform: Difference
When it comes to designing desktop applications, as a developer you have to take charge of things like packaging, installations, and managing updates. And all of these needs to be independent of system platforms.
Designing a desktop app will require you to handle system components like menus and notifications. These things need high-level command over system architecture and prominent programming skills to make sure your app performs what you’re trying to achieve. Native apps are, however, powerful and provide developers with a lot of ground to explore.
Cross-platform apps, on the other hand, exposes you to web components that you’re familiar with and has lots of community support. The access to these standard components and web-based APIs contribute to more productive development experience. The installation is the same for each platform, and the app can be expected to perform the same on different systems.
However, there are some serious debates concerning the performance sector of cross-platform apps. As these apps do not use system specific calls and have different approaches to basic functionalities, they often seem to lag behind native apps in terms of horsepower. The cross-platform technologies used in such apps are far behind the dominant system development languages like C++, Objective C, and JAVA regarding the performance metrics.
So, the primary ground of argument over cross-platform apps is do their convenience in development justify laggings in performance?
Working Principle of Electron
You can think of an electron app as kind of a minimal web browser that has the ability to interact with your local file system. This, in turn, is your application’s packaging. So you can write your codes with the confidence that everyone running your app is running it under the same set of conditions. Which means you can run your app on any platform once you write the app.
In addition to its own set of core APIs, Electron also comes bundled with all of Chromium’s API, all of Node’s API and supports third-party modules too. Thus, if you have a favorite package or a library you’re already an expert in, you can use it to build your Electron app right this moment.
So, basically, Electron serves as a universal interface with the operating system and provides you the opportunity of focusing what your apps should do, instead of dealing with loads os system specific overheads.
Why Go The Electron Way?
Whether you’re a web developer looking for a quick way to get your ideas out of the server and onto the desktop or you just want an efficient tool to build cross-platform apps with rich user interfaces, Electron can be the right choice for you. If you want to harness elegant desktop applications without facing the redundancies and complexities associated with native apps, go Electron right away.
Electron provides you with the experience to build something that’s easy to install and simple to maintain. In this time of fast business growth and innovative technological enhancements, Electron gives developers the option to curate their ideas into an application fast and let the customers decide whether they like it or not.
With native apps, there’ll always be the chance of an app not getting enough traction despite its consumption of a large amount of resource and time for development.
You’ll get ready-made components like native menus and notifications pre-packaged with Electron, which will give you the scope of developing your apps much faster. The crash reporting and debugging tools will help you hunt even the dirtiest of bugs at ease. In addition, your apps can have automatic updates, which will increase the attraction of your apps to customers much quicker.
So, there are more than enough reason to develop your new idea into an Electron app. The decision is now solely up to you and your demands from the application.
Drawbacks of Electron
Although a great choice to build cross-platform desktop apps, Electron has its own share of drawbacks that have been making this framework quite susceptible to criticisms.
So, if you choose to opt in with Electron, stop nagging about performance overheads. Instead focus more on how you can eliminate those issues. With intelligently incorporated algorithms and advanced design patterns, you can contain the performance issues within a considerable margin.
However, Electron apps are also known to clog up memory. We already discussed that Electron is packaged with the Chromium engine. This alone contains a massive code base of around 20 millions line of code! It’s even more than many operating systems.
As you might’ve already guessed then, it’s very common for even simplest Electron apps to take loads of storage spaces. This, in addition to other core libraries and third party modules, can lead to a software size you’ve only thought in nightmares!
When to Choose Electron
Although you can build any type of desktop apps with Electron, it’s especially suitable in some specific cases. If your app needs a user-friendly interface with a lot of network activities going behind the scene, Electron is the best choice for you.
However, if you’re building something that requires a lot of raw processing powers, we highly recommend you to develop native apps. As they can give you access to underlying system components at a much lower level, native apps are the best choice for resource-heavy desktop apps.
Electron apps are the most viable option for you if your app acts similar in fashion to web pages.
Notable Desktop Apps Developed using Electron
Electron has been used to develop some of the best desktop applications in recent times. The first such project is the Atom code editor from Github, the pioneers of the framework itself.
Atom enjoys mass popularity to till date. Although superior editors like Microsoft’s’ Visual Code, another top-level Electron product has overthrown Atom’s position as the top open source code editor. The primary reason behind VS code’s en masse success is it doesn’t clog up the memory as Atom did.
If you’re a seasoned developer, chances are you’re using Slack every day. It’s a popular cross-platform productivity app built on top of Electron. It’s aimed at increasing development productivity with simplified communication scheme. The performance of Slack is enough to establish the fact that if appropriately incorporated, Electron apps can be an extremely viable option for desktop apps.
Other notable mentions utilizing Electron are Skype’s desktop client, the famous image writing app Etcher, the WebTorrent desktop app, the WordPress desktop app, and the WhatsApp desktop app.
Future of Electron Apps
With the rapid increase of progressive web apps and API-based apps in the market every day, it’s safe to say that Electron will gradually conquer the desktop app building platform.
It comes with some of the most sought-after features developers look when building desktop apps, at a slight cost of performance. However, as systems are getting more powerful and cheaper everyday, developers have now the luxury of choosing Electron as the de-facto stack to build their apps.
Also slowly but gradually, corporate software giants like Microsoft and Google are developing Electron-based apps of their own. As they keep coming new developers will follow their footstep and embrace Electron for their personalized apps even more.
We predict that it’ll not take long before Electron becomes the go-to solution for building desktop apps.
Desktop apps are experiencing an exclusive comeback each day. We’ve come to a point where it’s no longer acceptable to spend years of development time behind these applications. Due to their superior productivity and reduced cost, it will not be false to say that Electron apps are the future of desktop applications.
However, a lot can be improved to provide even a much smooth desktop app experience with Electron. With the popularity it’s been enjoying, we can definitely hope Electron apps to match the firepower of their native counterparts.
Let’s not stay idle till then, rather you should utilize these time to learn and build your own desktop apps with this fantastic framework
Get notifications every time when Jānis B. writes a new article!
Latest from the Netcore hub
Explore, comment and join the dicussions
It's no secret that development costs have risen over the last couple of years, markets are saturated, and it's getting harder and harder to find high-quality development partners. That's why
In business, good technology is not an option, but a must. Nowadays, it is technology that bridges the gap between people and possibilities. In our previous article, we have mentioned
Let’s face it, choosing a software development company to get your software application created isn’t the easiest thing ever. Some suppliers will intimidate you with technical jargon, hoping to project themselves
Custom e-commerce development vs open-source platforms With more than 4 billion internet users around the world, you know bringing e-commerce into your business is the right decision. The hard part is
Thanks to the inception of modern, cutting-edge technologies such as Enterprise Resource Planning(ERP) and Customer Relationship Management(CRM), managing large businesses is considerably much more comfortable than old times. However, industries
Setting an online store is not much of a big deal. You need the right tools, the right people, and the services to get any of your business ideas online,
As your business grows, there will be an increasing rate of IT issues that are plaguing daily operations. An unstable network, loss data and potential security breaches often brought business
In our previous posts, we've already discussed the concept of outsourcing as well as exploring the different options of outsourcing, the range of prices for each of these options, and
Modern men are the busiest - this is something we all have to agree at some point or another. We live in a time where even putting some time aside
While it’s agreed that the lack of communication breaks a team apart, incorrect communications method also causes productivity to nosedive. Modern technologies have changed various aspects of a company’s operation,
Financial advantages of having an offshore development center (ODC) In previous articles, as we were covering outsourcing pricing guides and other outsourcing related topics; we quickly skimmed over the advantages of
Every business owner attempting to start a software development project will have this burning question, “should I hire an in-house team or outsource to an overseas agency?”. Unfortunately, there isn’t
Startups entrepreneurs and project managers often share the same dilemma when trying to turn software concept into actual applications that work. A team could be equally divided in opinions when
Be it a small business or a large enterprise, everyone wants to expand and enhance their customer database for marketing purposes. And, to do so, they need to collect the
As an e-commerce entity, you have noticed a drift in the behavior of your customers lately. More and more people are abandoning the cart? Have you assessed the situation? Do
You’ve heard how having a remote team can increase productivity significantly at work. And with the ease of connectivity, tools, and technology, you have every reason to allow your employee
Even the brightest employee could suffer a burn out when he or she is continuously engaged with work without taking sufficient breaks. An important skill to survive in a modern
After years of struggling with long commute hours, you’ve got your dream job where you could work remotely from home. The flexibility of being able to work without leaving your
Whether you're working for a full-fledged software firm or are just a lone dev, the deadline is something we all tend to worry about. Despite how talented or creative you
Small and medium companies are adopting the work-out-of-office policy at a rapid rate. It’s a growing trend that creates an attractive option for Gen-Y and millennial employees. But it’s also
One of the perks working with a modern software development team is the ability to work remotely from anywhere around the planet. You’ll expect that such flexibility naturally accounts for
It's not too long ago when developers were using dynamic languages such as PHP or C++ for enabling advanced features to their users that were impossible to implement with older
Programming, once a rhetorical way of aiding the computation of large and complex calculations, has taken over many different roles since its inception. Moreover, as we embrace technology in every
It doesn't matter whether you're trying for getting an app build or are learning the ins and outs of UX design, chances are you pretty often stumble with terms like
Almost all of us share our personal information - names, addresses, emails, etc. - with Google, Facebook and other websites. Confusing and lengthy terms and conditions make it harder for
Regardless of industry, modern companies are reliant on IT systems to various degrees. Some companies use CRM or similar solutions to manage day-to-day operations. Others depend on integrated software platforms
Ever had a software coded and deployed only to suffer multiple technical issues that take weeks to address? Many companies have suffered from poorly designed software and ended up suffering massive
Computer programming is the art of converting logic to actual work. Traditional programmers may disagree with us, but have you ever thought what the underlying purpose of programming is? From a
It would be a rather unfair comparison when pitting custom software with their off-the-shelf counterparts. Both possess pros and cons that may accelerate or hamper the growth of the business
It’s probably old news, but visuals are an increasingly important element in software design. Whether it’s a responsive website, mobile app or a custom application, the days where uninspiring images
Long gone the days when we needed to rely on bulky software's and cumbersome browser extensions to achieve anything close to a real-time conversation. Many of us, who used the
Modern enterprises rely on electronic devices and solutions much more than you can anticipate. Even a few hours of system disruptions can lead to a severe decrease in productivity. All
You may have a great idea for a product that you think might solve people’s problems but are afraid to execute it due to a lot of time and money
Banks and Finance institutions are the real powerhouses of a nation. In this time of wide-spread international tradings and industrial collaborations, organizations need to be efficient, yet co-operative. Regulations like
Attempting to deploy an untested software is courting catastrophic disaster for your company. But if your software team claims that it’s undergone sufficient testing and yet you’re facing a barrage
If you’re not using Slack, you’re missing out big time. At least, that’s what other developers, marketers, and professionals are raving about. There’s no denying that Slack puts an end
If you’re part of a remote team, you may have found that Slack has replaced email as the preferred channel of communication between co-workers. It allows information sharing to be
A Detailed Study into Gulp and Webpack: When and Why? I can remember the first time, back when I was a junior web developer, somebody said to me “run a build
Improve Your Business With IT System Support and Maintenance The truth is, with the digital era on the rise, the strength of one's IT systems may make or break the business.
If I would guess and predict you're reading this post from your mobile phone instead of a desktop/laptop, what is the chance of me being wrong? I can say with
R&D centers are the core of every industry. They focus on researching and developing new tools and strategies that can help people advance in a field. It takes time, effort,
Well, hey there! Searching for CRMs are you? Well then in this case, I’m guessing that you either think that you need a CRM for managing your business and its
In order for an e-commerce platform to be successful, companies have to take a multi-disciplinary approach to optimization. With a mix of marketing, logistics, UX design, and savvy web development,
If you’ve been holding hours of meeting with your team and fail to reach a consensus on whether to invest in customer software or not, we’re more than ready to
Are you one of the incredibly active business owners who never settle? Do you get a new idea for a new unique project every single hour or two? Does time
Are you looking to have more organized and coordinated operations in your business? Is your firm taking a turn you are not happy with, in regards to customer relations and
Developing desktop applications can be full of challenges that make it hard to approach if you don't have the matching knowledge base of a CS graduate. To understand the ins
The development of Enterprise Resource Planning (ERP) system has continued to evolve since 2004 according to Mark Krake, Engineer and Software developer. The requirements vary among user companies as demand
Recruitment is about putting the right people into your team. But when it comes to hiring software developers, it could be a tall order. With software developers often classified into
Want to see more?
Check out netcore blog
LGain insight into the world of Netcore by visiting
our HUB. Subscribe to our newsletter and don't
miss any updates!