Visto che l'argomento interessa molti utenti e spesso in rete si trovano poche informazioni e confusionarie ho deciso di aprire questo post.

Partiamo dicendo che non possiamo creare componenti da collegare ai nostri iDevice senza il consenso si Apple. Per ottenere tale consenso esiste un programma apposito chiamato Apple MFI. Questo attivare questo programma bisogna fare richiesta diretta ad apple. Questo programma non si può attivare on-line e non si fa parte di questo programma con la semplice licenza di iOS developer. Partecipare a questo programma non è cosa facile bisogna preparare un sacco di documenti, ci vuole molto tempo e molto denaro e sopratutto è sconsigliato per aziende medio piccole... Non ci resta quindi che trovare altre soluzione rispetto alla connessione dock con cavo.

- iDevice <-> wifly + Arduino
La prima soluzione che ho testato è stata con arduino e un modulo wify (http://www.sparkfun.com/products/9367) utilizzando una libreria opens source (http://code.google.com/p/cocoaasyncsocket/) la comunicazione diventa molto semplice in wify tra iDevice e arduino. Eventualmente al posto del modulo wifly della sparkfun possiamo utilizzare un semplice router e collegarlo in ethernet ad arduino.

- Cavo seriale redPark + Arduino
Questa è una soluzione ad-hoc. Innanzi tutto dobbiamo acquistare il cavo seriale prodotto dalla redPark (http://www.redpark.eu/en_shop.php) al costo di 54€. Questo cavo permette la comunicazione tra iDevice e seriale (a cui possiamo collegare arduino o l altri micro). RedPark mette a disposizione un SDK gratuitamente per sviluppare con il cavo gratuitamente e molto semplice da usare. Ricordo che con questa soluzione non è possibile realizzare prodotti commerciali su appStore, tutte le app create dovranno essere distribuite ad-hoc. Il cavo inoltre deve contenere un componente attivo, o qualche sistema di controllo, in quanto con cavi realizzati a mano l'SDK non funziona. Il cavo inoltre non permette una comunicazione veloce come in wify

-Hijack
Questo componente permette la comunicazione tramite jack per creare periferiche hardware
(http://www.eecs.umich.edu/~prabal/projects/hijack/) il costo completo si aggira intorno agli 80$. Anche in questo caso viene fornito un SDK per la comunicazione semplicissimo da usare.Questa può essere una buona soluzione per creare oggetti da commercializzare (è pieno di gadget comandati da jack e penso usino questo sistema)


-Midi
L'idea è quella di utilizzare i file midi per instaurare una comunicazione tra iDevice e hardware esterno. Sinceramente ho trovato questo approccio un po' più complicato quello che serve é:
- camera connection kit (adattatore usb di apple)
- cavo usb to MIDI
- modulo MIDI per arduino
- Arduino

In tutto siamo sui 80€ e abbiamo un mucchio di adattatori e cose collegate. Qui trovate un semplice progetto (https://github.com/bjepson/iPad-MIDI-Simple-Demo) che utilizza MIDI, ma sinceramente lo trovo più complicato rispetto ad Hijack


Io ho utilizzato molto la prima soluzione perchè mi piace non essere vincolato ad una distanza tra device e hardware esterno, se però dovrei sviluppare un "telecomando" utilizzerei hijack, mi sembra la soluzione più facile da testare e riprodurre. Esiste anche un altra soluzione in wify ed è quella di utilizzare Xbee. Però è un po' un ibrido in quanto il primo Xbee deve essere collegato fisicamente al device mentre gli altri saranno collegati in cascata al primo.

Chiudo i commenti in questo post in modo da tenerlo pulito e sempre attivo. Se volete chiedere altre info aprite un altro post in questa sezione.
Grazie
Ciao Andrea