So I think we agree on this:
(If you don’t know UML, the circle on the end of a stick, or “lollipop” means “interface”)
But let’s take a moment to compare Electron versus simply serving the UI from the automation layer:
With Electron we get a framework that provides desktop GUI integration, packaging, updates (either automatic or push notification of availability) and a known, stable browser environment. The simplest user story for getting started is:
- Make sure you have Python3 installed.
- Download Yukon
- Open Yukon
If we don’t use Electron we still get packaging via PyPI but we no longer have a stable browser environment nor desktop integration. This adds a few steps:
- Make sure you have Python3 and pip installed.
- Make sure you have [insert browser requirements here]
- pip install Yukon
- start Yukon.
- Open your browser to localhost:[yukon port]
The latter isn’t the end of the world given that, if you know how to use pip you probably can handle this level of complexity. That said, we should consider the difficulty of diagnosing UI errors when you don’t control the browser. For the latter configuration we’ll have a class of bugs where the user reports “when I do x, y goes wrong” for which we’ll respond “we can’t reproduce this. What browser and operating system are you using? Do you have any weird extensions installed? How old is this browser? What other tabs do you have open?” (etc).
Thoughts on this @Zarkopafilis?