-
Notifications
You must be signed in to change notification settings - Fork 33
Electron Notes
Ok, now the mega-merge for Electron is pushed to evothings/evothings-studio/master. This means that we now use:
- Electron: https://github.com/electron/electron
- Electron-builder: https://github.com/electron-userland/electron-builder
- Electron-Packager (via electron-builder): https://github.com/electron-userland/electron-packager
The latter two packages gives us nice installers.
Worth noting:
-
The application is now under the "Ideas", see "app / package.json" etc. It is also in there as "examples" are copied.
-
The package.json located in the root is for the electron-builder and construction, * not * the app yourself.
-
The different things you can do is via npm scripts in package.json, ie, "NPM run dist" to build, or "NPM run start" to run the Workbench from the source, see README.md and package.json.
-
When building used various resources (icons, etc.) from the "build" library.
-
After building's artifacts in the "dist", on Linux will be a .deb. On the Mac it will be a .dmg, Windows, I have not had time to test just yet, will see tonight / tomorrow.
-
The default is built just for your local OS. OSX is the only one that can build for all three Olympics.
-
I have gradually tidied away / cleared in the various Ruby scripts. init.rb remains, but it makes only "copy the example" and "download javascript libraries from the net." Note that "NPM run libs" run "ruby init.rb" right now ... hmmm, should clean up a bit, not completely logical.
-
Build.rb is gone. Should clean up a bit with the latest build, etc.
In the application:
-
PostMessage / receiveMessage are no more. Now ipcMain / ipcRenderer (search and you will see, it is pretty straightforward).
-
Now the javascript window is called "JavaScript Console" or just "Console". Viewer window is called "Viewer" or "Viewer Explorer." The main screen is called "Workbench". The whole product is called "Evothings Studio".
-
In some places you see MAIN is a handle on the "main" global I create in main.js. Through it you can get different things from main.js which is thus Electrons "main process" that creates Browser Windows. It is thus main.js creating Workbench, Console and Viewer (our three windows).
-
EVENTS has been completely rewritten so that the publish / subscribe is now done via main.js etc and thus plays "between all the windows." This was a bit "knixigt" but I think it works, but not quite sure of all the details.
Ok, nu har mega-mergen gjorts av Electron till evothings/evothings-studio master. Detta betyder att vi nu använder:
- Electron: https://github.com/electron/electron
- electron-builder: https://github.com/electron-userland/electron-builder
- electron-packager (via electron-builder): https://github.com/electron-userland/electron-packager
De två senare paketen ger oss schyssta installers.
Värt att notera:
-
Applikationen ligger nu under "app", se "app/package.json" etc. Det är också in dit som "examples" kopieras.
-
Den package.json som ligger i roten är till för electron-builder och bygge, inte själva appen själv.
-
De olika saker man kan göra går via npm scripts i package.json, dvs "npm run dist" för att bygga, eller "npm run start" för att köra Workbenchen från source, se README.md och package.json.
-
Vid bygge används diverse resurser (ikoner mm) från "build" biblioteket.
-
Efter bygge finns artefakterna under "dist", på Linux blir det en .deb. På Mac blir det en .dmg, Windows har jag inte hunnit testa riktigt ännu, ska se ikväll/imorgon.
-
Som default byggs bara för ditt lokala OS. OSX är den enda som kan bygga för alla tre OS.
-
Jag har gradvis städat bort/rensat i de olika ruby-skripten. init.rb finns kvar men den gör enbart "kopiera in exempel" och "hämta javascript-libraries från nätet". Notera att "npm run libs" kör "ruby init.rb" just nu... hmmm, ska städa lite, inte helt logiskt.
-
build.rb är borta. Ska städa lite till med build-latest etc.
I applikationen:
-
postMessage/receiveMessage finns ej mer. Nu gäller ipcMain/ipcRenderer (sök så ser ni, det är ganska rättfram).
-
Numera kallas javascript-fönstret för "JavaScript Console" eller bara "Console". Viewers-fönstret kallas "Viewers" eller "Viewers Explorer". Huvudfönstret kallas för "Workbench". Hela produkten kallas för "Evothings Studio".
-
På vissa ställen ser ni MAIN som är ett handtag på "main" globalen jag skapar i main.js. Via den kan man få tag i olika saker från main.js som alltså är Electrons "huvudprocess" som skapar BrowserWindows. Det är alltså main.js som skapar Workbench, Console och Viewers (våra tre fönster).
-
EVENTS har kodats om en hel del så att publish/subscribe görs via main.js etc och sålunda lirar "mellan alla fönster". Detta var lite knixigt men jag tror det funkar, men inte helt säker på alla detaljer.