Demanding hardware integration
Bluetooth Low Energy, sensors, accessories: latency, battery and reconnections are handled as close to the system as possible.
Technology
Native apps and modules, iOS in Swift and Android in Kotlin: hardware integrations, Bluetooth Low Energy, system APIs and critical performance, as a complete app or alongside a Flutter or React Native codebase.
1// SensorBLE.swift — illustration2func peripheral(_ p: CBPeripheral,3didUpdateValueFor c: CBCharacteristic,4error: Error?) {5guard let data = c.value else { return }6channel.send(Measurement(data))7}
Situations
Bluetooth Low Energy, sensors, accessories: latency, battery and reconnections are handled as close to the system as possible.
The product must use new Apple or Google APIs as soon as they ship, without waiting for a package to expose them.
A Swift or Kotlin codebase to evolve, modernise or take over after a team has left.
Most of the product is shared, but one part must be written in Swift and Kotlin.
Scope of work
Complete apps or targeted modules, with the same standards for testing and release.
Interfaces, navigation, background tasks and App Store release.
Interfaces, lifecycle, services and Google Play release.
Real-time exchanges with sensors, battery and reconnection management.
Native bridges that expose a system feature to a cross-platform codebase.
Measuring start-up time, memory and crashes, and fixing the critical points.
Signing, releases, operating system and store updates.
Method
Fully native, cross-platform or mixed: the comparison is made on your real constraints, with measurements when needed.
The riskiest integration, hardware or system, is prototyped first.
Features delivered with their tests on real devices, with code review at every step.
Store releases, crash monitoring and operating system updates.
Responsibilities
A typical division of responsibilities, agreed for each engagement.
| Topic | Your team | Black Tide |
|---|---|---|
| Hardware | You provide the accessories and their documentation | We develop and test the integration |
| Store accounts | You keep the accounts in your name | We prepare builds and releases |
| Technical choices | You approve the chosen approach | We compare the options, with measurements |
| Acceptance | You test on your target devices | We fix within the agreed scope |
| Production release | You decide the date | We release and monitor |
Selected work
Native Swift and Kotlin modules exposing an asynchronous Bluetooth Low Energy channel to the app, with under 100 ms latency required on some events. A React Native bridge was ruled out after comparative measurements.
Read the Meduz caseEach case describes the work delivered, its scope and the current status of the product.
Budget and next steps
For a defined Swift or Kotlin product or increment: discovery sets the scope, the estimate and the delivery increments.
A senior native mobile engineer joins your team at our public day rate of €750 excl. VAT, for a short or long engagement.
For an existing native app: a diagnostic of the code, dependencies and release pipeline, then stabilisation or progressive modernisation.
Budget ranges by maturity level, from prototype to scalable product, are published on our pricing page.
Useful questions
Native gives direct access to each system; Flutter shares the product layer. We work with both and recommend based on usage, hardware and the team that will maintain the app.
Not necessarily two teams, but two codebases. API contracts, business rules and the design system stay shared.
Yes. That is what we did on Meduz: Swift and Kotlin modules expose Bluetooth to the Flutter app.
Yes, after a diagnostic of the code, dependencies and release pipeline.
Next step
The target platforms, any hardware and the deadline: that is the starting point.