Se siete programmatori iPhone, o comunque volete diventarlo, sappiate che prima o poi sentirete il bisogno di provare a realizzare qualcosa anche per il fratello maggiore di iPhone e iPod touch: l’iPad. Il fascino che porta con se il fratellone più grande è qualcosa di irresistibile e state certi che anche voi, prima o poi, vorrete visualizzare le vostre creazioni sul suo “immenso” display.
Ma cosa significa passare dalla programmazione iPhone a quella iPad?
Di fatto questi dispositivi mobili anno stesso sistema operativo (iPhone OS o iOS), anche se con qualche “minima” differenza e il salto da iPhone a iPad è in realtà davvero molto più semplice di quanto crediate. Ecco innanzitutto cosa potrete sfruttare a vostro vantaggio:
- un unico ambiente di sviluppo (SDK: Xcode, Interface Builder, iPhone Simulator, Instruments, …);
- solito linguaggio di programmazione (Objective-C in primis, ma anche C, C++, ..);
- identico paradigma di programmazione (MVC – Model View Controller, Programmazione ad Oggetti);
- il framework che già conoscete (Cocoa Touch) con qualche piccola differenza dovuta alle differenti caratteristiche Hardware tra i diversi device;
Insomma, tutte cose che già dovreste conoscere e tolto qualche piccolo accorgimento, la strada per ottenere i primi risultati è davvero rapida e indolore.
Ma a potervi portare a programmare iPad non è il solo fascino “iPaddiano”, potreste aver bisogno, infatti, di offrire ai vostri utenti compatibilità delle vostre applicazioni esistenti su iPhone anche per iPad e in tal caso avrete davanti a voi due possibilità:
- creare una nuova versione del vostro programma, appositamente studiato per iPad e al cui nome aggiungerete parole come “HD”, “per iPad” o ancora “iPad Edition”, tecnica scelta dalla maggior parte degli sviluppatori (grandi o piccoli che siano) e che io personalmente non condivido affatto (non mi sembra corretto obbligare a comprare lo stesso programma/gioco 2 volte allo stesso eventuale cliente);
- creare un’applicazione universale (Universal App) in grado di funzionare correttamente ed “adeguarsi” a seconda del dispositivo su cui è avviato. In questo caso, (mio preferito e credo più corretto), dovrete creare un’unico programma studiato sia per iPhone che per iPad (maggiori informazioni in questo articolo e un nostro tutorial in quest’altro)
Per entrambi i casi, però, dovrete considerare alcune cosette, vediamo quali.
Orientamento
Mentre per iPhone (e iPod) abbiamo un orientamento predefinito, portrait (verticale), essendo l’iPhone un telefono, anche se possiamo prevedere il funzionamento delle nostre app anche in landscape mode (orizzontale), per iPad non è tutto così scontato. L’iPad è una nuova concenzione di dispositivo e di fatto non ha un orientamento predefinito. Il grande display è comodo da usare sia in modalità verticale che orizzontale, ma non solo, dobbiamo prevedere rotazioni a 360° per le nostre applicazioni, ovvero tutti e 4 i sensi in cui l’utente potrebbe tenere il suo iPad. Per garantire la massima esperienza d’uso per le nostre applicazioni dovremo far in modo che le nostre visuali si adattino e perfezionino in base quindi all’orientamento, cercando di sfruttare nel migliore dei modi lo spazio disponibile che avremo di volta in volta.
Dimensioni display
Altro fattore chiave di cui tener conto durante lo sviluppo iPad è la dimensione del suo display, forse la più importante caratteristica che tramuterà i nostri amati gioiellini nel dispositivo del futuro di cui non potremo più fare a meno (ok ok.. forse sono un po’ di parte.. ma è questo che Apple trasmette, che ci volete fare?). Per il passaggio da iPhone, e soprattutto durante lo sviluppo di un’universal app, considerate che le proporzioni dei display dei vari dispositivi sono differenti:
- iPhone 3Gs e iPod Touch: 480×320 pixel per 163 ppi (pixel per pollice)
- iPhone 4: 960×640 pixel per 326 ppi (pixel per pollice)
- iPad: 1024×768 pixel per 132 ppi (pixel per pollice)
Gli iPhone hanno identiche proporzioni ma risoluzioni differenti, con iPad, invece, differiscono anche nelle proporzioni. Questo fattore è molto importante e dovrete progettare nel miglior modo le vostre interfacce grafiche, se non volete ottenere effetti indesiderati.
Split View
Dove prima eravamo abituati alla creazione di navigation-based app, ora avremo qualche strumento in più in nostro aiuto, che ci permetterà di sfruttare al meglio il grande display iPad. In parole povere, mentre su iPhone dovevamo ragionare pensando ad un elenco, al cui tap su di una voce potevamo scendere di un livello inferiore e così via fino a raggiungere una pagina di dettaglio (ad esempio il nostro prodotto), ora potremmo avere contemporaneamente lista e dettaglio sulla stessa schermata. Questo è possibile grazie all’uso delle SplitView, un nuovo tipo di vista, compatibile, per ovvi motivi, solo con iPad. In modalità landscape (orizzontale) vedremo sulla sinistra la nostra tabella che ci permetterà di navigare ed effettuare le nostre scelte, mentre sulla destra la view del dettaglio. In modalità portrait, invece, avremo la view dettaglio (detail View) a tutto schermo e la tabella di navigazione all’interno di un popover che comparirà alla pressione di un tasto. Potete visionare un nostro tutorial su questo argomento al seguente link.
Popover
Il grande display dell’iPad ha permesso l’introduzione non solo delle SplitView, ma anche di altri elementi interessanti e disponibili solo per iPad, ad esempio le Popover View. Di cosa si tratta? Premettiamo che anche questo elemento è compatibile con il solo iPad, quindi nelle vostre universal app dovrete ben progettare le diverse interfacce offrendo alternative valide alla versione iPhone e iPod. Un popover non è nient’altro che una particolare vista che appare nello schermo tramite tap su di un tasto e che scompare al tap su un qualsiasi altro punto del display al di fuori di esso. Questo tipo di oggetto è lo stesso che viene usato nelle SplitView visualizzate in modalità Portrait (verticale) per mostrare la tabella di navigazione. Noi, potremmo sfruttare le sue potenzialità per mostrare, ad esempio, menù contestuali, raccolte di strumenti e via dicendo. Unica accortezza durante la loro progettazione sta nel prevedere uno spazio esterno per il tap che permetterà la sua chiusura.
Rilevamento tocco e gesture possibili maggiori
Il grande display dei nostri iPad ci permetterà inoltre di rilevare più tocchi e più gesture. Se prima eravamo limitati a causa del “piccolo” display dei nostri iPhone, ora potremmo progettare app su cui potranno interagire, tramite il tocco, anche più utenti contemporaneamente. Immaginate lo sviluppo di questa caratteristica abbinata, ad esempio, a giochi multiplayer, solo la fantasia, ora, potrà limitare le nostre creazioni.
Multimedia, GPS, bluetooth, …
Vediamo infine alcune altre funzionalità minori, ma non meno importanti di cui dovremo tener conto durante il passaggio dalla programmazione iPhone a iPad. A differenza di quanto accade su iPhone, la versione iPad delle vostre app potranno dedicare una piccola porzione del display per l’esecuzione di video (anzichè esclusivamente a tutto schermo), questo vi permetterà di offrire applicazioni multimediali più funzionali (vedi app nativa YouTube). Potrete godere inoltre dell’uso del cavo Video-out o ancora di supporto a cuffie e microfono wireless. Grazie al bluetooth invece potrete sfruttare la connessione di tastiere esterne. Anche la condivisione di file tra diversi dispositivi (iPad, Mac, PC, ..) è stata migliorata e potrete oro spostare, condividere e sincronizzare file nel migliore dei modi. Per quanto riguarda il GPS, sappiate che non tutti i dispositivi ce l’hanno, ma a questo dovremmo già essere abituati da un pezzo.
Conclusioni
Ovviamente questo non vuole essere un articolo esaustivo, ma una sorta di panoramica per mostrarvi la semplicità del passaggio dalla programmazione per iPhone a quella per iPad e al tempo stesso per indicarvi le principali funzionalità introdotte che, come abbiamo visto, dipendono in gran parte dal grande display (ma non solo).
6 Responses to “Passare dalla programmazione iPhone a quella iPad, breve panoramica”
6 Luglio 2010
Riccardo DanzoPraticamente non c’é nessuna differenza tra iPad e iPhone a parte la grafica… Mi sbaglio?
6 Luglio 2010
PaoloAbbiamo scritto un articolo a tal proposito: http://www.appletribu.com/2010/07/06/passare-dalla-programmazione-iphone-a-quella-per-ipad-cosa-cambia/ 😉 speriamo sia cosa gradita!
6 Luglio 2010
AndreaUIPopoverController può essere utilizzato solo su iPad anche dato che su iPhone sarebbe impossibile per questioni di spazio!
Cmq apparte qualche piccola differenza è praticamente uguale programmare per iPad.
6 Luglio 2010
El JobsoSi, hai ragione! Le differenze sono davvero poche… 🙂
7 Ottobre 2011
klodbersaGrazie! avevo bisogno di una visione panoramica, e questo articolao da una bella infarinatura, Bravi!
20 Ottobre 2011
DieparComplimenti, finalmente un riassunto chiaro ed esaustivo sulle novità dell’ iPad.
Grazie e continuate così !!!