Big Guy
Big Guy

Reputation: 33

Electron frontend for plugin system

We've got a big problem - a billion scattered tools across several platforms making it hard to maintain and distribute, or getting new people up to speed, making deliveries etc.

The idea is to try to consolidate all of this into a central repository that is accessible by a frontend GUI system, where all of these tools and services are plugins into this GUI system.

Example layout - screenshot

We would define interfaces/hooks/callbacks for plugin creators to use these generic areas of the frontend to put their app specific data into. For example, when an app is installed as a plugin and selected in the "Installed Apps" area, the app would be invoked and use the well defined interfaces to update the Menu Bar, Toolbar, console, etc with its app specific data and then render itself in the main "Render Window".

Typically these apps would not be graphically intensive things and would update more at an event based or user-input update rate and not anything that would need to achieve a certain FPS to be usable. Is Electron a good idea for this or even possible? Is anyone experienced in anything remotely like this and could recommend maybe a different option? QT maybe?

Our dev experience is more embedded app c/c++ development focused so we are not super familiar with web based technologies and are investigating options.

Thanks for any input!

Upvotes: 1

Views: 861

Answers (1)

DutchIgor
DutchIgor

Reputation: 73

I am currently working on a project where I plan to implement a similar approach, also using Electron. I found that there are 2 main challenges in this approach:

  • Handling the plugin life cycle (e.g. install, activate, uninstall, etc.)
  • Injecting the plugin code into the hooks whilst handling the case where multiple plugins might be triggered by a hook.

As a result I have created a plugin framework for Electron. It is still work in progress but help to achieve the tasks described above. The project is called Pluggable Electron and can be found here: https://github.com/dutchigor/pluggable-electron.

I know I am probably biased here but so far, my experience is that Electron is a good choice if you are looking to build a desktop application and require a plugin architecture. There are a lot of apps out there that already have this iplemented, like VS Code, Atom, Slack, etc. so I think your initial approach looks good.

Upvotes: 2

Related Questions