To start, I want to clarify one point. You wrote:
In iOS 9 kCFStreamNetworkServiceTypeVoIP was deprecated but it has continued to be an effective way of allowing for real-time audio.
You’re using the phrase “real-time audio” is an unusual way here. Most folks who talk about real-time audio are referring to the streaming audio with latency concerns that reach down into the millisecond range.
kCFStreamNetworkServiceTypeVoIP
does not help with that in any way. Rather, folks with real-time audio needs will typically use
kCFStreamNetworkServiceTypeVoice
, which has
not been deprecated.
With regards the requirements of your push-to-talk app, you wrote:
Will apps that use this flag require special approval in iOS 10?
They already require special approval, in that you have to be a VoIP app to use them (you have to add
voip
in
UIBackgroundModes
).
Have the system rules regarding backgrounded apps with this flag changed at all?
We’ve nothing specific to announce at this time. However, I should stress that we’re actively encouraging VoIP developers to move from the legacy VoIP architecture to the new PushKit-based VoIP architecture. This has a number of consequences:
We’re not going to make any feature-level improvements to the legacy VoIP architecture.
The legacy VoIP architecture, which was never 100% reliable at the best of times, is unlikely to get more reliable. Moreover, as more apps make the switch it’s not hard to imagine the reliability decreasing.
At some point we may remove the legacy VoIP architecture although, as I said earlier, we’ve no announced plans on that front.
Into the future, what would you recommend developers use for instantaneous background audio? I fear that PushKit may be too slow for push to talk.
Have you tried PushKit? My experience is that it’s pretty darned responsive.
At this point my recommendation is that you experiment with PushKit. If it’s not responsive enough to meet your needs, you should file a bug explaining your unique requirements in this space.
Share and Enjoy
—
Quinn “The Eskimo!”
Apple Developer Relations, Developer Technical Support, Core OS/Hardware
let myEmail = "eskimo" + "1" + "@apple.com"