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
Written by happy in 810004022
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

Written by happy in 766583021
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.

Written by happy in 810004022
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