Would love to know if anyone has made an Electron app from your Phoenix app.
I know a lot of people like to hate on Electron. Yes, it’s bloated and the performance is not amazing, but AFAIK there’s nothing out there that can match the ease of building a cross-platform desktop app that just works.
LiveView is trying to avoid js, so it would not be the best match… unless your electron application is just a web client.
But You can do better, because You could also have a state manager in the frontend (like Redux, or newly use reducer hook).
Having a state manager on the frontend allows You to transform any data received in whatever You want. For example, I use those data in the frontend w/ THREE.js
LiveView is a way to have the state manager on the backend. But it will mostly communicate in HTML.
Having a state manager both in the backend AND in the frontend looks like a good solution to me, because You can send data on the wire only (JSON)
Well, it makes total sense to have frontend state manager for single-player features. But LiveView is ideal to manage state on backend for multi-player features (e.g. Google Docs).
Now that I think about it, what I need is just a way to publish a desktop app. I want to store state on the client but not manage the state on the client. Could I just publish a shell Electron app, which all it does is act as a PWA (Progressive Web App) so when someone is offline it shows the UI and previous state, then it calls the server/LiveView when it’s actually runnning?