The Sorry State of Peer-to-Peer iOS-to-Android connectivity
blog.moritzhaarmann.de
blog.moritzhaarmann.de
The Android stuff alone is an inconsistent trainwreck (because not all hardware supports all options on a given version of the OS either) and it took them a long time to get there.
Apple really have been leading the sane local peer-to-peer world ever since Bonjour first appeared, and the new developments have just extended their lead.
It will be interesting to see just how this difference affects the nature of their respective wearables.
jMDNS works fine on Android but it is a 3rd party dependency you have to add and it is slow to start up.
Android 4.1 started shipping their own native Zeroconf implementation (Network Service Discovery) which kind of works, but is buggy as hell.
Google aren't helped when people like Samsung decide to redefine the bump to file transfer to mean NFC to initiate WiFi Direct, not what everyone else had deployed which was Bluetooth, and without the fallback position of making that work. That's the curious thing with Android, they did in many ways engage in the wider world hoping for a bit more wider co-operation (at least within the OHA), but you'd be hard pressed to find an area of the OS anyone other than Google had a positive impact on, but there is plenty of the reverse going on.
Shitty networking stacks abound all because everybody is trying to get an edge in battery life.
Castration indeed.
Either that or they just think this is some critique of their beloved Apple.
I'm referring to the TUN/TAP driver.
All BSD's have it (/dev/tap).
And to easily do encapsulation, which is very handy for VPNs and peer-to-peer, you need it.
OSX has it. iOS does not.
So, downvoters, why is TAP missing from iOS?
Why is iOS crippled? Or "castrated" to use the parent's terminology.
I've got peer-to-peer that relies on TAP. Not a problem with any BSD or Linux or even OSX.
The exception is iOS. Why?
It's not hard to be a 'leader' when there's only 5 or so products to communicate with.
Clearly they don't support anything other than this, and so calling it a 'lead' is hilarious when you have to have everyone you might want to communicate with buy the same product as you.
What rot.
But apparently Apple has kept it out of iOS Safari and doesn't allow other browsers to implement it?
http://labs.ericsson.com/apps/bowser,
which has since been retired (although as far as I know, not due to any conflict with Apple):
WebRTC also requires a central server for discovery (typically overy HTTP I think?). It maybe possible to replace that with Bluetooth LE, but then the WebRTC connections to each other will need to run over an TCP network.