Sort of. The main difference is I’ve not used Raspberry (only Mac, Windows and Linux).
Sending only the parts of the screen that changed is so tricky that I finally gave up and always send the whole screen instead. I won’t say it’s 100% smooth, but it suits my needs.
Another tricky part is about Windows’ secure desktop. With a regular app, whenever the user gets an authentication dialog, the secure desktop purposely blocks the app from taking screenshots and sending inputs, making it usually disconnecting (even if you just wait). You’d have to make it a service to bypass this and see and control secure desktop. In my case, I’ve not done that because Windows’ services have other limitations that my app couldn’t afford, like displaying other kind of windows.
Handling the keyboard is also not the easiest, depending on which operating system(s) you target.
But yes, it’s fairly doable.