1/ Technically, an iOS app can't use Bluetooth all the time.

As a consequence, a contact tracing app which use Bluetooth cannot work on iOS.
2/ 3 weeks ago, Singapore published a contact tracing app to fight #Covid19. The ratings of the iOS app are quite bad https://apps.apple.com/sg/app/tracetogether/id1498276074
3/ The first available rating is quite clear: "Why would the user want to keep this app open and on foreground?"
4/ The devs of the app answered to the comment with the technical documentation and refered to the Power Saver Mode they implemented.
5/ The Apple documentation "Core Bluetooth Background Processing for iOS Apps" is quite clear: "By default, many of the common Core Bluetooth tasks [..] are disabled while your app is in the background or in a suspended state" https://developer.apple.com/library/archive/documentation/NetworkingInternetWeb/Conceptual/CoreBluetooth_concepts/CoreBluetoothBackgroundProcessingForIOSApps/PerformingTasksWhileYourAppIsInTheBackground.html
6/ It can't be more clear: "Even if your app supports one or both of the Core Bluetooth background execution modes, it can’t run forever"
7/ To "bypass" this limitation the TraceTogether folks created a "Power saver mode"
8/ This is really not a good solution but they had no choice. They asked to their users to keep the app in the foreground and they reduce the brightness of the screen
9/ Keeping the app in the foreground all the time will drain your battery very quickly
10/ So yeah, a contact tracing app on iOS can't work because of this limitation.

"I would like to do other stuff on my my phone while I am commuting, at work, eating, etc."
11/ Yes, Apple can probably fix it and remove this limitation for his upcoming "Privacy preserved contact tracing API". But man, it will be a huge precedent.
12/ These last years, Apple and Google limited more and more what devs can do in the background.

"To improve the user experience, Android 8.0 (API level 26) imposes limitations on what apps can do while running in the background"

https://developer.android.com/about/versions/oreo/background
13/ "To improve the user experience": LOL

Background services is a big source of abuse on Android. Malware authors use that all the time. This is why they "imposes limitations on what apps can do while running in the background"
14/ The Apple / Google API has an other disadvantage. If a government want to publish a functional contact tracing app he is force to use this API. As a politician, when you spend your time talking about the digital sovereignty, about how bad are the GAFA, it's an issue.
15/ So yes, this is not magic.
16/ Contact tracing apps with Bluetooth is a technical non sense. I wrote a 5 pages article on why it can't work technically. It will be published soon.
Addendum: If it was not clear, this is identical on Android. Due to the new limitations imposed in Android 8, an app cannot use the Bluetooth all the time.
You can follow @fs0c131y.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled: