In the UK, the NHSX have released the source code on GitHub for their mobile apps for tracking the spread of Covid-19. Source code for both iOS and Android is available, released under an open-source MIT license.
The mobile applications are undergoing trials on the Isle of Wight in the UK, a small island with a population of around 150k people in the south of the UK. They work by using Bluetooth to broadcast a signal, and recording signals of those who pass nearby, with the intent of notifying users if they are suspected of having come into contact with someone who goes on to suffer symptoms later. Around 40k users have been recruited for the trial, although some Android phones are incompatible with the application, as it requires iOS 11+ or Android 8+.
However, unlike other countries and the work that Apple and Google are doing by providing anonymised access, the NHSX app suffers from privacy concerns that anonymisation is not done, and information is sent to the central server with no visibility of what is done with it afterwards. Even though there is an open-source server available for testing, there are no guarantees that is the same version of the code that's being used on the server. It's been postulated that the app will have to be re-written in order to avoid falling foul of data privacy laws.
The other problem with the application is that enabling Bluetooth broadcasts all the time requires the application to be running in the foreground (or background) in order to remain operational. Additionally, enabling Bluetooth all the time can reduce battery life of the application.
In particular, iOS does not let applications run in the background, other than for certain purposes such as VoIP calls or listening to music. As a result, the application ues dark patterns such as setting up notifications to ask you to re-launch the app periodically to kickstart the background timer with a nag to re-open the application every 10 minues, as noted from Joseph Lord on Twitter:
The other trick the app uses to try and stay awake is to set up a ping-pong between two devices by handing off a Bluetooth message between the two permanently. Because the application can run in the background and do some processing when receiving a particular message, if that device then sends a new mesage to the originator device, pairs of devices in close vicinity can keep each other alive for longer than the expected timeframe that Apple permits. A more detailed investigation of this for both iOS and Android has been written up by Jamie Bishop at Reincubate.
An application which requires you to periodically launch the application for it in order to work is unlikely to have a long-term success, which explains why the FT reports that a second version of the app, using the standard anonymised libraries provided by Apple and Google, is underway.