Exploring App Use Cases: Laying the Foundation for a Seamless Experience

The best place to start any Bluetooth integration is by breaking down the use cases for the app.

This is because the Bluetooth stacks on the iOS/Android are each going to behave a little differently. They may not all implement the same Bluetooth features as your device or dev board. Plus each mobile platform has its own limiations around scanning, connection, and data transfter.

Key Questions to Explore

  1. Platform and Device Context:

    • Will your device interact with mobile phones, tablets, or kiosks?
    • Are you supporting a BYOD (Bring Your Own Device) model or supplying dedicated devices?
    • What mobile platforms (iOS, Android) and OS versions need to be supported?
    • Will the app be used in background scenarios, like when the phone is in a pocket or across the house?
  2. Connection Expectations:

    • Should the device maintain a persistent connection, or will users connect for specific sessions?
    • If the connection drops, how will users know? Should the app automatically reconnect?
  3. Data Integrity:

    • Does your use case require real-time data, or can it tolerate delays?
    • Do you need to know if data is dropped or missing? What should happen in those cases?
  4. User Interaction Patterns:

    • Are users expected to pair devices manually, or will there be seamless auto-pairing?
    • How will the device be set up initially—QR codes, NFC, or manual pairing?
    • Does the user interact with the device via notifications or just the app?
  5. Discoverability:

    • Should the app find the device even when running in the background?
    • Does the app need to detect when the user is near the device or has moved out of range?

Using the answers to these questions, we can understand how to structure the Bluetooth protocol and discovery/connectivity plan.

You may be wondering how the answer to these questions directly affects firmware and app code.

That is a great question and more than would be suitable to put in this message for today. (See here for an example of how discoverability requirements affect things)

In the meantime - if you have a specific use case you are curious about, reply and let me know.