Come avevo avuto modo di preannunciarvi, nei giorni 10, 11 e 12 ottobre ho seguito online il corso base di programmazione per iPhone ed iPad organizzato da iPhoneDeveloper. Sono stati tre giorni molto intensi con 9 ore di lezione dalle 9.00 alle 19.00 (pausa pranzo 13.00/14.00). Sul sito trovate già queste informazioni ma quello che molti mi chiedevano è cosa realmente lasciasse un corso di soli 3 giorni su un argomento così complesso come la programmazione in C/Objective-C per iOS.

iphone

Iniziamo da una cosa: i requisiti. Il docente, l'Ing. Pierpaolo Marturano, all'inizio ha fatto un rapido sondaggio tra gli allievi in aula (compresi quelli che seguivano via web) per valutare quali fossero le nostre attuali conoscenze. Questo perché nel corso si daranno per scontati i principi della programmazione e concetti come variabili, funzioni, classi e strutture di controllo if .. then, case, for, do while, ecc.. dovranno già far parte del nostro know how. Tali nozioni sono radicate in me dalla prima media (classe sperimentale, corso di Turbo Pascal) ma come sviluppatore web il mio pane quotidiano sono PHP e JavaScript, ovvero linguaggi di scripting di "bassa lega" rispetto C/Objective-C. Chi tra gli allievi aveva già conoscenze di Java o C si è trovato sicuramente avvantaggiato rispetto a me che non avevo mai dovuto preoccuparmi nelle web-application di gestire la memoria, giusto per fare un esempio. Ed anche se mi è capitato di usare tanti altri linguaggi, tra cui perfino il vecchio Visual Basic 6, devo ammettere che questo è il più complesso. Non fosse altro perché, sviluppando in XCode, ci si trova ad incrociare costantemente C ed Objective-C, i quali hanno logiche e sintassi differenti.

Nelle prime ore del corso l'approccio è assolutamente discorsivo e nella mattinata si offre una panoramica completa del mondo della programmazione per iOS, nonché una "rinfrescata" di C (per i pochi concetti che serviranno) ed un primo approccio teorico ad Objective-C. Il secondo è essenzialmente un'estensione del primo orientata agli oggetti, ma dal momento che alcuni frameworks per iOS sono scritti in C sarà necessario utilizzarli entrambi. Il docente è stato sempre molto chiaro nell'illustrazione dei vari oggetti e della loro implementazione ed ho apprezzato in modo particolare anche l'attenzione verso l'architettura del software con i design pattern MVC e Singleton.

In passato avevo provato a leggere un libro per la programmazione in Objective-C ed avevo anche visto le prime lezioni del podcast su iTunesU dell'Università di Pisa ma in entrambi i casi mi sono scoraggiato facilmente. Il linguaggio adoperato dal docente di iPhoneDeveloper è stato invece molto chiaro e comprensibile e solo verso la fine del terzo giorno ho iniziato a ravvisare un po' di stanchezza mentale. Quello che colpisce è la grande preparazione del docente, non solo dal punto di vista puramente didattico, ma anche per la sua esperienza sul campo. Tant'è che se molti concetti si trovano scritti più o meno ovunque, anche nella stessa documentazione Apple, molte "chicche" che ho imparato in questi giorni avrei probabilmente impiegato anni per scoprirle.

Se si vuole fare il falegname e ci si mette all'opera pieni di buone intenzioni e di preparazione teorica, presto ci si sconterà con esigenze e problemi concreti ai quali dover trovare soluzione. Solo dopo anni di lavoro si matura un buon livello di esperienza. Facendo invece un po' di pratica con un falegname esperto, questo può in poco tempo offrire quelle dritte che mettono sulla giusta strada fin da principio e che forniscono la soluzione ai problemi più frequenti prima che questi si presentino mettendoci in difficoltà.

Il grande valore aggiunto che ho percepito in questi 3 giorni è stato proprio quello dell'esperienza diretta del docente, il quale ci ha già messo in riga su tanti aspetti, sia della programmazione che sul processo di approvazione da parte di Apple. Oltre alla semplice conoscenza della sintassi e delle logiche, ci sono state illustrate anche le varie convenzioni in modo tale da iniziare le nostre prime di codice già consapevoli della Best Pratice che solo un programmatore navigato conosce. Proprio per questo credo che questo corso possa essere utile anche a chi ha già tentato un primo approccio all'Objective-C e sa fare qualcosa con XCode ma vuole essere meglio indirizzato.

L'Ing. Marturano conosceva già molto bene anche tutte le novità di iOS5 e durante il corso sono state evidenziate le differenze tra passato e futuro in modo da avere già chiari quali sono i nuovi metodi di lavoro introdotti. Anche in questo caso l'esperienza sul campo ha permesso al docente di non illustrare semplicemente un "changelog" di novità ma di far vedere il tutto con degli esempi concreti: prima si faceva così, ora in questo modo.

Alla fine di questi tre giorni abbiamo imparato e visto veramente tanto. Con XCode in condivisione schermo abbiamo avuto modo di creare e di analizzare piccoli progetti che fanno un po' di tutto, dalla gestione dei dati all'uso delle mappe di Google. Certamente oggi non sarei in grado di iniziare a scrivere un progetto da zero senza andare a riguardare qualche scorcio di codice ma questo è assolutamente normale e non mi preoccupa. Dopotutto ancora oggi utilizzo sovente le guide di riferimento anche per linguaggi semplici come PHP o JavaScript, non si può pretendere di sapere tutto a memoria, specie quando si ha a che fare con frameworks di tale vastità. Ma ho capito i concetti, ho ben chiari gli errori più frequenti nella gestione della memoria ed ho una visione globale di quello che si può fare e di come si procede per realizzare un'applicazione per iPhone ed iPad. Da ora in poi tutto dipende da me e dal tempo che avrò a disposizione. Ma aprendo XCode ho finalmente la sensazione di sapere dove mettere le mani. Mi ritengo estremamente soddisfatto del corso anche se, fossi stato in aula, probabilmente avrei fatto qualche domanda in più al docente: la chat in alcuni casi non è sufficiente ad illustrare concetti complessi.

Per chi fosse interessato il prossimo corso base si terrà a Roma dal 18 al 19 ottobre 2001. Anche in questo caso si parlerà già di iOS5 ed XCode 4.2.

iphonedeveloper-corso

Vi ricordo che per i nostri utenti è anche previsto uno sconto di 24€ su tutti i costi attivi, selezionando SaggiaMente nel campo “Ho conosciuto grazie a” nella pagina di iscrizione.