One part of the project that took longer than expected was Android screen sharing. From a user's perspective, the scenario looks simple: tap a button, approve a prompt and start the session. Mobile operating systems intentionally put several barriers in the way because screen capture is a sensitive capability.

Android requires an explicit user decision. Depending on the system version, the user may be able to share the entire screen or only one application, and the permission dialog itself is controlled by the operating system rather than MyDeskViewer. The application therefore has to handle approval, cancellation, changes in the selected option, switching apps and stopping the share after a session has already started.

The ideal path was not the difficult part. Most of the work was in everything around it. A user can tap twice, return from the system dialog without making a selection, lock the phone or rotate the device. Each of these cases needs to end predictably, and the application should never remain stuck in a state that looks as if it is still waiting for permission.

This also required testing across different Android versions and devices. System screens can look different depending on the manufacturer, and their behavior changes over time.

We are intentionally not describing the internal screen-capture and transport mechanisms. Those implementation details remain confidential. From a product perspective, the more important rule is simple: the user must always know when the screen is being shared and remain in control of starting or stopping that process.

Only after these edge cases were organized did Android screen sharing become something we could treat as a real product feature rather than a successful experiment.