Electron (Node.js+Chromium) as distributable tool interface?

tools
pipeline

#1

Has anyone had any experience with Electron as a cross-platform stand-alone desktop app for tool distribution?
https://electron.atom.io/docs/tutorial/about/

Our company doesn’t have a real tool pipeline or centralized interface for scripts. I’ve been looking at python solutions, but questions about legality of redistributing UI (QT/Pyside) and potential for different Python version issues make me leery. We have people on both Windows and mac OS.

I realize that it is probably not possible to have it interface directly with python-based scripting in Maya/Modo, etc (though that would be a nice bonus). This is more for tool installation, updates, and creating prebuilt project folder structures from schemas.

One thing that attracted me to this was that I am already developing in-house tools using the (older) node.js framework built into Adobe CEP for Photoshop and Flash.

On the surface it seems like a great way to have a pretty looking desktop app I can distribute with minimal or no external dependencies.


#2

I’ve done this once or twice.

#Pros:

  • all the bells and whistles of a modern browser
  • lots of graphic effects available online
  • easy stylesheeting, like bootstrap
  • build process is pretty easy

#Cons:

  • everything is ultimately client server – your application is a server and you have to talk to it as such. This makes for more complicated architecture and debugging
  • You’ll need to write your front end in HTML + Javascript; if your backend is python every feature will be touching 3 languages
  • Exes are very large (150 mb)

So it’s not terrible, but not what I really want – a simple lightweight python application framework.


#3

Thanks for the insight @Theodox . When I get the free cycles, I’ll try a simple script-delivery app with the built in auto-update and see how pain/useful it is.


#4

You might want to look at these for a way around the JS pain:

The other thing to remember is that you’ll need to make the “server” component do all the wok on a user’s local drive: the JS front end is sandboxed, you won’t be able to do much to the user’s machine without the “server”


#5

Good links! I’ve been doing some light system-level file handling with the node instance in the CEP panel extensions for photoshop, so if it’s anything like that it should be an easier transition.


#6

transcrypt is turning out to be pretty cool! More to come when I’ve dug deeper.