Advanced iOS IOT App with Bluetooth LE

Job ID: 38473044

Budget: $50 – $0 AUD

We are a remote-first, Australia-based IoT hardware design company seeking an experienced iOS developer to create a modern application for our IoT hardware using Bluetooth LE.

We require a modern iOS app with the primary function of running as a background service to scan for and communicate with our IoT hardware leveraging standard Bluetooth 4 GATT read/write/notify services to ensure maximum compatibility.

The app will require the implementation of Application layer ECDH/ECDSA key exchange and AES + CMAC encryption. Our process is well-documented, and our firmware engineers will be available to provide support in cryptographic design and implementation.

Note: There is already a fully functional Android application for reference, with a mature and well-tested implementation.

From a high level, this is a port of an existing Android application written in Java/Kotlin, however, we require advice on the best implementation strategy for the iOS platform. We are happy to explore the possibility of using cross-platform tools (like React Native or .NET MAUI) provided they offer sufficient support for running as a background service capable of responding to push notifications and handling long-running BLE scanning.

Key Features Will Include:

- Scanning for and connecting to our IoT devices.
- Utilizing RSSI, time, and mathematical functions to approximate the distance between the mobile device and IoT device, with openness to exploring other methods.
- Enabling remote control capabilities via the user interface.
- Implementing BLE 4 GATT services for Read/Write/Notify/Indicate.
- Application layer ECDH/ECDSA key exchange & AES + CMAC encryption.
- Integrating ObjectBox or an equivalent high-performance data store that offers a queryable interface and supports schema updates and migrations.
- Integrating HTTPS/JSON Web Services.
- Implementing Bearer Token Authentication.

Ideal Skills:
- Grounded and cooperative with a sense of humility and a commitment to teamwork
- Proficient in iOS app development (Swift, Objective-C, or React Native).
- Deep familiarity with the Apple developer ecosystem and the ability to guide our team in setting up developer accounts and choosing the best implementation language/framework.
- Experience in developing IoT applications.
- Strong understanding of Bluetooth LE
- Good understanding of low-level packed data structures (If you know what the word "endian" means, you'd be a strong candidate).
- (Bonus) Knowledge of public/private key cryptography or a willingness to learn.

Additional Requirements:
- Development must be conducted using our GitHub instance.
- We maintain ownership of all intellectual property and copyright throughout the development lifecycle.
- Inclusion of GPL or any "Copyleft" licensed code must be disclosed and discussed upfront.
- Use of generative AI is permitted, however, this should not be your primary area of expertise
- Ongoing maintenance is required to ensure compatibility with the latest iOS versions, compliance with Apple's App Store guidelines, and availability on the App Store as a free app. This is envisaged to be a long-term engagement with attractive ongoing revenue.