iOS feasibility study
To know whether Briar can be viable on iOS we need to answer the following questions.
- Can the app run a Tor hidden service on iOS? (Bearing in mind that this requires a wake lock on Android to prevent Tor's circuits from timing out when the CPU sleeps.)
- Can the hidden service keep running for a limited time when the app goes into the background?
- Can the app wake periodically while running in the background, connect to a mailbox via Tor and check for messages?
- If the app finds messages when checking the mailbox, can it (a) store the messages in the local database, (b) show a notification?
- Can the app advertise a UUID/other info via BLE such that nearby iOS/Android devices can discover it?
- Can the app scan for UUIDs/other info advertised via BLE by nearby iOS/Android devices?
- Can the app make/receive GATT connections to/from iOS/Android devices?
- Can the app make/receive L2CAP-CoC connections to/from iOS/Android devices?
- Can the app provide a wifi hotspot (without internet access)? Can it make/receive TCP connections to/from devices connected to the hotspot?
- Can the app connect to a wifi hotspot (without internet access) provided by another device? Can it make/receive TCP connections to/from other devices connected to the hotspot?
For all of the above we need to know:
- Differences between foreground and background behaviour
- API limits such as rate limits, number of UUIDs that can be scanned for
- Any other circumstances that could affect the behaviour, such as screen being off, low battery, device reboot, user not bringing the app to the foreground for a long time
- Whether user interaction is needed