programmare-applicazioni-iphone-ipad-francesco-novelliLa recensione di oggi è per uno dei pochi libri italiani che affronta un argomento che ci sta a cuore: Programmare applicazioni per iPhone e iPad di Francesco Novelli, edito da Edizioni FAG (25,90€). Non è il primo che leggo e probabilmente non sarà l'ultimo, ma è sicuramente quello che fino ad ora ho maggiormente apprezzato. Il libro ha un taglio molto pratico ed escludendo la programmazione di giochi ed Open GL, nelle sue 372 pagg esamina tutte le più importanti tematiche che ci si trova ad affrontare durante sviluppo di un'app.

Quando ci si accinge a scegliere un manuale ci sono almeno due aspetti da tenere in considerazione: se rientriamo nel giusto target cui è indirizzato e se contiene le informazioni utili ai nostri scopi. Per questo ho pensato di chiarire nel miglior modo possibile proprio questi due aspetti.

A chi è indirizzato
Programmare applicazioni per iPhone e iPad è consigliato in modo particolare a chi abbia già un po' di esperienza con altri linguaggi di programmazione e voglia avvicinarsi al mondo di iOS ed all'ambiente Xcode. È sufficientemente comprensibile anche per chi sia a digiuno di programmazione, ma in tal caso sarà necessario un po' di impegno in più per alcuni argomenti che probabilmente avrebbero meritato maggiore approfondimento ed eventualmente più di un capitolo.

Il contenuto
Per darvi una chiara visione di ciò che l'ottimo manuale scritto da Francesco Novelli insegna, ho pensato di descrivervi nel dettaglio il contenuto dei 25 capitoli di cui è composto. Andando ovviamente più in profondità rispetto ai semplici titoli che si trovano nell'indice.

Il primo capitolo introduce la storia del C, dell'Objective C, quindi il primo iPhone fino ad arrivare all'iPhone 4 e all'iPad. Il capitolo termina con la descrizione della procedura di installazione dell'SDK, così dopo la prima infarinatura siamo pronti a rimboccarci le maniche ed a realizzare i primi esercizi pratici.

Il secondo e terzo capitolo descrivono i passi necessari per creare il primo progetto in Xcode con un semplice programma privo di interfaccia utente in Objective-C, che utilizza la console per scrivere l'output. In particolare nel terzo capitolo si introduce la programmazione orientata agli oggetti e come essa viene implementata da Objective-C.

I capitoli quarto e quinto invece approfondiscono Objective-C. Vengono descritti i tipi di dati primitivi e i relativi attributi e successivamente gli oggetti Cocoa per lavorare con le stringhe e con gli array: NSString, NSMutableString, NSArray, MSMutableArray, NSDictinary e NSMutableDictionary.

Il capitolo 5 passa in rassegna i cicli e le strutture condizionali, mentre il successivo è completamente dedicato alla gestione della memoria in iOS, cosa molto importante per l'ottimizzazione delle performance sui dispositivi mobili come l'iPhone.

Dal settimo capitolo si entra nel vivo della programmazione per iPhone: una descrizione sui vari template di applicazione messi a disposizione da XCode quindi la creazione del primo vero progetto. Viene proposta una panoramica sull'ambiente di sviluppo con i vari componenti come il debugger, la console, ed il class browser, per poi passare alla descrizione dei componenti del progetto creati automaticamente da Xcode. Uno sguardo all'interface builder per gestire i file XIB dell'interfaccia utente completano il capitolo.

I capitoli dall'ottavo al decimo approfondiscono la gestione della UI. In particolare l'ottavo espone gli oggetti Cocoa che derivano da NSView e che sono utilizzati nell'interfaccia dalle applicazioni (UIImageView, UIButton, UIDatePicker e molti altri).

I capitoli nono e decimo descrivono le tecniche da utilizzare per le applicazioni con più viste: si parla di TabBar Applications e di NavigationController. Specificatamente il decimo capitolo è interamente dedicato alla UITableView, uno dei componenti più versatili per esporre dati in forma tabellare. Si parla di caricamento dei dati e di personalizzazione delle celle e della tabella fino alle operazioni di modifica ed eliminazione dei dati.

L'undicesimo capitolo affronta una situazione tipica della maggior parte degli applicativi: la gestione delle impostazioni personalizzate. Quelle che permettono ad esempio di memorizzare le preferenze dell'app.

Il capitolo successivo è invece dedicato alla gestione di file e directory, con una introduzione alla sandbox e alle relative limitazioni, mentre il tredicesimo affronta la problematica relativa al parsing (analisi sintattica) di file XML e HTML, utilizzando sia le API native di iOS sia framework esterni.

I capitoli 14 e il 15 sono dedicati allo storage dei dati: si parla quindi di database SQLite e di Core Data.

I successivi tre capitoli affrontano problematiche molto pratiche come il recupero della posizione attuale (capitolo 16), la riproduzione di file multimediali, la registrazione audio, l'utilizzo della fotocamera (capitolo 17) e la gestione dei contatti della rubrica per mezzo dei framework AddressBook e AddressBookUI (capitolo 18).

Nel diciannovesimo capitolo viene illustrato il funzionamento delle notifiche push, remote e locali. Per quando concerne le remote viene anche descritta la procedura per chiedere i certificati necessari per attivare le notifiche sui server di Apple.

Il capitolo ventesimo è dedicato alla gestione avanzata delle gesture dell'utente, quindi sui metodi per intercettare tap, slide, rotation e altre. Viene altresì descritto come utilizzare l'accelerometro, come effettuare richieste HTTP (in GET ed in POST) e come inviare mail.

Il capitolo ventunesimo conclude con le novità introdotte dalla versione 4 di iOS: Retina display, giroscopio, multitasking, il framework eventkit, il framework iAd, QuickLook, MessageUI (per inviare SMS) ed il supporto a schermi esterni.

I successivi due capitoli danno una panoramica dell'iPad e su come andrebbe progettata un'applicazione, evidenziando le principali differenze rispetto ad una per iPhone. Viene descritto il template messo a disposizione da Xcode e di nuovi oggetti disponibili nell'SDK: SplitView, PopOver e ModalView.

Il capitolo 24 introduce il nuovo ambiente di sviluppo Xcode 4 e l'ultimo capitolo da indicazioni su come provare un'app su dispositivi reali e rilasciarla nell'App Store.

In definitiva un ottimo manuale per avventurarsi nel mondo della programmazione per iOS, scritto in Italia da un italiano e venduto direttamente sul sito della casa editrice ad un prezzo più che ragionevole di 25,90€ (link alla sua pagina).