Quality isn't free, yes.
> Given the nuances of different platforms, it’s also very difficult to keep different versions in sync.
Don't tightly couple applications and backend service versions (where a backend is even needed, otherwise make it all local) and this is not a problem. You should be using open (relatively stable) protocols wherever possible anyway.
Web apps "solve" platform differences by completely disregarding them and expecting users to adapt to the application instead. This does not make them better.