What's the best lib for communicating with Windows?

We wrote an app that uses MultipeerConnectivity to talk to macOS.

Now we want to expand that iOS app to talk to Microsoft Windows.

Is Bonjour still (the only) way to go in 2020?

What are the best libs for achieving this? Any recommendations?

Replies

The Multipeer Connectivity protocol is not documented for third-party use, so you can only use it between Apple platforms.

Is Bonjour still (the only) way to go in 2020?

Bonjour isn’t a communications protocol, it’s a service discovery protocol [1]. Bonjour is absolutely the best way for your apps to find each other on the network. Once they’ve done that, it’s up to you as to how they should communicate. How you chose a communication protocol largely depends on what you’re requirements are. Can you explain more about what your app does with the network?

Share and Enjoy

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

[1] Well, it’s a marketing name for a collection of service protocols:
Thank you for the quick reply.

The iOS app sends simple instructions to the macOS helper app and the helper app returns whether the call was successful. The helper app should also inform the iOS about it's status.

In future we additionally want to stream audio from iOS to the macOS and Windows based helper app.

But my question here is mainly how to get the iPhone working with Windows. So main app sits on the iPhone and the client on Windows.
Based on your description I’m going to recommend:
  • Bonjour for the service discovery

  • WebSocket for the on-the-wire protocol

iOS and macOS have WebSocket client and server implementations available via the Network framework (see WWDC 2019 Session 712 Advances in Networking, Part 1). I can’t offer any suggestions on the Windows side, but WebSocket is a pretty common protocol so I don’t expect you’d have problems finding an implementation there.

Share and Enjoy

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