I created from scratch a client for both VNC and RDP desktop-sharing protocols using RealVNC and FreeRDP libraries, respectively. Both client libraries were integrated into an texture texture in a QML graphic. The client is full-featured, including support for input events, mouse cursor transaction, mouse grabbing, and remote sound playback. Integration of framebuffers into a QML scene enabled seamless graphical effects and animations. Animations were used to switch between protocols, as well as for drawing custom UI next to and on top of the remove view. Thanks to the ease of QML integration, as well as the use of existing libraries, the project required a surprisingly small amount of work.