iOS app that can support multiple hardware devices simultaneously

Hello,

I am planning to create an app that can transfer files to hardware devices via WiFi. With devices like GoPro, I believe the typical setup involves the GoPro creating a WiFi hotspot to which the iOS app connects, allowing file transfers. But this setup establishes a 1:1 connection between the app and the hardware.

To support multiple hardware devices simultaneously, I am considering reversing this setup: the iOS device would create a personal hotspot, and the hardware devices would connect to it. However, I have concerns about this approach:

Reliability: I have read that the personal hotspot feature on iOS devices can be unreliable, especially with non-Apple devices, which tend to disconnect frequently.

Manual Setup: There is no API to programmatically create the personal hotspot, so users would have to enable it manually in the Settings.

I can use isIdleTimerDisabled to prevent the iOS screen from going to sleep, which might help with disconnection issues. Aside from this, are there other things I can do to ensure a stable connection?

Given my limited experience with hardware connections, I am uncertain if having the iOS device act as the WiFi access point is a good design. Any advice or alternative solutions would be greatly appreciated.

Thank you in advance!

Answered by DTS Engineer in 810200022
It's not within my control but I can provide some suggestions for the functionality.

OK, cool, that opens up more possibilities. For example:

  • You could have one of your accessories act as the ‘lead accessory’ and have the other accessories, and your iOS device, join its network.

  • If the accessories have Bluetooth LE you can use that to coordinate the Wi-Fi setup, even if it’s too slow for the actual data transfer.

I dunno if you’ve seen Extra-ordinary Networking but, if not, there’s a bunch of posts linked to from there that represent the distillation of my thoughts on this topic.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

You can try to make the iOS device as a HTTP server, then find a way to make your hardware device connect to it.


WindowsMEMZ @ Darock Studio

However, I have concerns about this approach:

I think you’re right to be concerned about this. Personal Hotspot is intended as a user-level feature, not an API, and the focus of that user-level feature is STA-to-Internet communication. I’ve talked about this before here on DevForums.

I’d like to get a better understanding of your goals here:

  • Do these accessories all need Wi-Fi performance? Or could you use BLE for some of them?

  • Are these accessories under your control? Or are you trying to create an app that works with accessories from other third-party vendors?

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

Thanks Eskimo! With regards to your question:

Do these accessories all need Wi-Fi performance? Or could you use BLE for some of them?

I considered using BLE, but its data bandwidth is too low for my needs which is why I am focusing on WiFi for this.

Are these accessories under your control? Or are you trying to create an app that works with accessories from other third-party vendors?

It's not within my control but I can provide some suggestions for the functionality.

It's not within my control but I can provide some suggestions for the functionality.

OK, cool, that opens up more possibilities. For example:

  • You could have one of your accessories act as the ‘lead accessory’ and have the other accessories, and your iOS device, join its network.

  • If the accessories have Bluetooth LE you can use that to coordinate the Wi-Fi setup, even if it’s too slow for the actual data transfer.

I dunno if you’ve seen Extra-ordinary Networking but, if not, there’s a bunch of posts linked to from there that represent the distillation of my thoughts on this topic.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

iOS app that can support multiple hardware devices simultaneously
 
 
Q