Ios app - BLE Bluetooth scanner - Xcode Swift

Job ID: 32663193

Budget: $30 – $250 USD

The application must be coded with Xcode in Swift. The server side for data receiving is already existing

The desired mode of operation is very similar to applications like Chipolo or Tile

The application must check the following points at each start:
• Power Mode -> the phone must not be in power saving mode
• Wi-Fi / Cellular -> Wi-Fi or mobile data must be enabled
• Bluetooth -> Bluetooth must be activated

The application must check the permissions granted at each start and if necessary request them:
• Bluetooth -> Enabled + info.plist Background Modes: Uses Bluetooth LE accessories
• Cellular Data -> Enabled
• Location -> Always + info.plist Background Modes: Location updates
• Precise Location -> Enabled
• Background App Refresh -> Enabled
• Notifications -> Enabled
• Motion & Fitness -> Enabled + CMMotionActivity stationary walking running automotive cycling unknown
The application must perform these functions:
1. Do a Bluetooth scan to find nearby beacons
2. Store in memory the list of beacons found with the GPS location and the time of the scan
3. Send the list of beacon frames found in memory
4. If the server acknowledges, delete the sent list from memory or keep it for the next send attempt

Bluetooth scans take place under these conditions:
• Immediate on application startup
• Every 5 minutes if the application is open active
• Every 20 minutes if application is open in the background
• When changing activity (walking, running, driving, cycling, standing still, etc.)

If the application is closed "killed" by the user, a notification must be displayed telling the user to reopen it so that it can work properly.

The application must be restarted when the phone starts -> for that use this function: startMonitoringSignificantLocationChanges

User interface two views are requested:
• 1st view to ask to activate the permissions if necessary if not go to the 2nd view
• 2nd blank screen view with text only to indicate that the application is open