Thursday, January 31, 2013

Thursday, January 17, 2013

iOS Peer-to-Peer Data Transfer Code Basics (e.g. sharing data among iPads in the same area)

(Disclaimer: These are only notes from research, not implementation.)
Problem:
You and your friends all have iPads and are all in a room, i.e. physically close to each other. You all would like to share some data among yourselves, but not through the cloud where each of you individually uploads then downloads data from.

Solution:
1. The iOS devices need to discover each other, i.e. each iPad in the room needs to know the presence/"name" of all the other iPads in the room.
For this device discovery, you will need to use Bonjour, and Bonjour's link 2.
2. Once the devices know the identity of each other, they will need to communicate through a network, which is a medium for their data transfer. This network can either be Bluetooth or WiFi. Bluetooth is more commonly used, and you can even use it for communications between iOS and Android devices.
But perhaps you want to use both Bluetooth and WiFi. Luckily, GameKit abstracts local network connections. GameKit's GKSession discovers and connects nearby iOS devices using either Bluetooth or WiFi, whichever one works.


Update: I'm told that GKSession also discovers devices.

Links:
Bonjour link 1
Bonjour link 2
GameKit GKSession link
Bonjour useful info, perhaps
GameKit GKSession useful info, perhaps
Sample application for GameKit GKSession