For Android, we successfully used a native library for WebRTC to record the screen without issues. The solution to the permissions issue discussed in the challenges section involved a clever workaround. During the app's first use, we displayed the recording consent twice: first to get the initial permission, then clearing the recorded stream, displaying a notification, and finally requesting recording permission again.
This double-consent approach resolved the issue, as native WebRTC/notifee libraries had not yet addressed it. On the other hand, iOS allowed screen recording without significant hurdles, but we needed to create an extension for the existing app using a native screen recording module. Since the main app could not predict whether the user had started recording or simply closed the modal window of the native module, we implemented a workaround.
Users could not exit the screen-sharing interface until native sharing had started, ensuring smooth operation. The same modal window allowed users to stop screen sharing. Additionally, iOS typically does not permit apps to run in the background for extended periods.
As a result, streaming would last only up to 15 seconds after the app transitioned to the background. To circumvent this, we implemented an artificial VoIP call connection. When users initiated screen sharing, we triggered a VoIP call, automatically placing it on hold and muting it.
This kept the app active in the background. Users saw the call interface in the app's background and could end screen sharing by disconnecting the call. Our innovative solutions and dedication to overcoming technical challenges paid off.
The revamped app became a top performer, reaching number 7 on the bestsellers list in the business category on Google Play.