Also requires me have a working internet to be able to use it. Sketch or Affinity Designer don't have these problems. I hope they will fix that problem with Figma.
So if they…
- Add a full offline mode
- Ditch Electron for a more focused/lightweight webassembly+canvas implementation
- Open and document their file format to allay lockin concerns
…I'd be much more inclined to use it instead of Sketch.
Actually, that's exactly how Figma is built—their desktop app just wraps their web version while hooking into file system APIs provided by Electron/NodeJS. See https://www.figma.com/blog/webassembly-cut-figmas-load-time-....
If you use the native webview, it’ll probably use less memory but be slower because it’s basically running Safari instead of Chrome. It’s probably the wrong tradeoff for Figma because the browser’s memory usage and JS heap memory is pretty negligible compared to the amount of memory the user’s document uses, especially large ones with a lot of images. There’s way more room for optimization there and that has nothing to do with Electron.
It’s fun to think about what the performance would be if it was 100% C++ given infinite resources but realistically it’d be way less productive and more bug prone than React. I’ve written UIs in C++ before,would not repeat. That time would be better spent optimizing actual bottlenecks, like rendering the design file (where the GPU is the bottlebeck).
We actually have a native (not WASM) with native webview build we use internally for debugging with XCode. No, performance isn’t better enough to warrant dealing with Safari issues and shipping that over the Electron + WASM build.