Desktop Apps are Too Complex
I've been wanting to re-write Invobi for a bit now, since it currently runs on a make-shift PHP framework I made myself, and while there's nothing wrong with it - I want something a little more maintainable and future-oriented than that.
One avenue I've explored is just making it a desktop app. I already did it once as a MacOS app, but since I do not use MacOS anymore ... well, that's not very useful. I've looked into a few different multiplatform systems such as Flutter and Kotlin Multiplatform and ... holy crap. What happened there?
Kotlin Multiplatform has to download an entire planet onto my computer to be able to function, and even then it .. well, doesn't. The vanilla, out of box Desktop Multiplatform project does not run. I do not know enough Kotlin or Java mambojambo to know why, and I can't be bothered to learn either. I just wanted to get a quick feel for it, and the feel I got was ... nah, thanks.
Configuration cache state could not be cached: field `arguments` of `org.gradle.process.internal.ProcessArgumentsSpec` bean found in field `argumentsSpec` of `org.gradle.process.internal.DefaultJavaExecSpec` bean found in field `javaExecSpec` of task `:composeApp:desktopRunDev` of type `org.jetbrains.compose.reload.ComposeDevRun`: error writing value of type 'java.util.ArrayList'
> Cannot query the value of task ':composeApp:desktopRunDev' property 'className$hot_reload_gradle_plugin' because it has no value available.
Mind you, I haven't done anything. This is vanilla IntelliJ Ultimate, with a vanilla Kotlin project. I've changed no lines of code. If you can't even make your "hello world" project function then I have very little confidence in it being something that I'll be able to easily maintain for many years. Oh and, Kotlin Multiplatform IntelliJ plugin doesn't even work on Windows, so I had to use some project generation website to download a .zip of a sample project, like it's 1995 all over again!
Flutter actually worked on the first try, to my surprise. It did require me to download the hefty Visual Code (No, not VS Code), but it's for the C++ support so fine whatever. The built in dev-tools are super nice, live reload, everything. That said, I did get the feeling like it's ... very big, and again not really sure how easy it is to maintain that after many years.
I thought that desktop apps are easy - easier than web, at least - but that does not seem to be the case. Cross-platform desktop app development seems to be far more complex and convoluted than simply making a web app. Sure, a web app might cost me more (emphasis on might, because for cross platform desktop apps I probably have to shell out hundreds a year for their respective app stores), but I can build it with super simple tech like PHP, SQLite, a dash of JS for interactivity, and have it run with minimal changes for a decade.
I guess this is a long way of saying that desktop apps are way too complex, and I completely understand why everything's a web app these days.