Comment by whartung
1 year ago
I'm just writing little stuff in Java, and use that as my x-platform environment, but even it has its challenges.
So, I was considering a PWA. I don't need tight local integration per se. I do have a conceptual problem not being able to save a file or read a file, even if it's just chosen by the user. I THINK I can do that. I THINK you can pop a file chooser to read a file, but not necessarily just open any file you want. If you can read/write a file as directed by a user, that would be fine. I can see the rest being stored in the IndexDB. And that gives the option of an export/backup if it becomes necessary for peace of mind.
Then there's the whole x-browser game, I'm not really looking at mobile, just desktop, but I'd like to support FF/Chrome/Safari/Edge.
It's not rocket science stuff by any means. But I don't want a user to call up and talking about how their data suddenly vanished because they went to get the latest, and I did something innocent/ignorant (or not), or THEY did something (deleted their PWA icon, copied it, moved it, etc.), or the browser did something.
I have no experience with it, so for now, I'm not comfortable because I don't have my "hands" on the data.
If I can export it, then the comfort level goes way up. Inform the user to back up "just in case", especially early on when we're all still bumping in the dark.
To be clear, I don't want a server side, I have no interest in standing up a service component. I have less interest in maintaining a service component. I'd like the code to be local and "standalone" as practical.
But I also want something a touch more than "git clone app; cd app; ./build".
If you only care about desktop and don't want to maintain a server, I do suggest taking a look at webview [1]. It uses the platform's own web browser engine (WebKitGTK on linux, WebKit on mac, WebView2 on win) which you can use to run your app using the web stack. Essentially, it gives you something like electron.js but without the excessive bloat. And you get access to the file system and everything else on the desktop.
I believe there are other libraries/frameworks on github with a similar approach you might want to have a look at.
[1] https://github.com/webview/webview
There's also Tauri which takes a similar approach but uses Rust. I've had good luck with it so far.
https://tauri.app/