Come promesso eccoci con una nuova puntata dedicata ad XCode 4, oggi parliamo degli snippet, ma cosa sono esattamente? Gli snippet non sono altro che frammenti riutilizzabili di codice sorgente. Hanno un’utilità molto “pratica”, perché ci permettono di non dover riscrivere codice noioso, dalla struttura relativamente fissa e su cui è facile che sfuggano errori (in gergo si parla di codice boilerplate).
Xcode 4 fornisce pieno supporto per gli snippet: possiamo utilizzare quelli che Apple ha già creato per noi o aggiungerne di nuovi. E’ importante conoscerli e padroneggiarli, perché sono molto efficaci per aumentare la produttività e ridurre gli errori di distrazione. Vediamo come.
Dove troviamo gli snippet in Xcode 4?
E’ facile, dobbiamo semplicemente aprire l’ “Utility area” e poi scegliere la “Code Snippet Library”!

Eccone alcuni tra la cinquantina che Apple ha già creato per noi:

Attraverso la barra di ricerca posta in basso possiamo fare rapidamente delle ricerche tra i tanti disponibili, cercando, ad esempio, solo quelli che hanno a che fare con Core Data:

Se ne selezioniamo uno, si aprirà un popup che ci mostra il codice associato a quello snippet:

Come possiamo notare, ci sono delle sezioni marcate in modo particolare (nell’esempio “deallocations”), che non sono altro che dei placeholder che nel nostro caso specifico dovremo andare a sostituire opportunamente.
Come possiamo inserire gli snippet nel nostro codice?
Ci sono due modi: il primo, più intuitivo, consiste semplicemente nel trascinare lo snippet dalla “Code Snippet Library” al nostro codice.
Il secondo, più rapido, consiste nello sfruttare la funzionalità di autocompletamento del codice. Ad esempio, se cominciamo a scrivere dealloc nel blocco @implementation di una classe, potremo scegliere l’ “Objective C dealloc method” (che è appunto uno snippet, come evidenziato dall’icona {} a sinistra):

Premendo INVIO sulla tastiera verrà inserito in automatico il codice dello snippet. Non solo: verrà anche selezionato in automatico il primo dei parametri che dovremo rimpiazzare:

Davvero comodo, non è vero? A questo punto, però, probabilmente vi starete chiedendo: “ok, ma dove trovo la parola da usare per l’autocompletamento di un certo snippet?”. Facile: occorre aprire nuovamente il popup che mostra il codice dello snippet e premere sul bottone “edit”. Troviamo il testo da usare accanto a “completion shortcut”:

Un dettaglio: come possiamo notare dalla figura, ad uno snippet è anche associato uno scope, cioè un contesto in cui questo snippet “ha senso”. Nel caso della dealloc è ovviamente il solo blocco @implementation di una classe. Ciò significa che per lo snippet dealloc l’autocompletamento si attiverà se e solo se ci troveremo in quello scope.
Possiamo creare e aggiungere uno snippet tutto nostro?
Certamente. E’ sufficiente selezionare il codice nell’editor e trascinarlo nella “Code Snippet Library”. Operazione che, a dire il vero, inizialmente si rivela più frustrante di quanto potrebbe apparire a prima vista. Ma per fortuna c’è un trucco: una volta selezionato il codice, occorre premerci sopra con il mouse per circa un secondo, fino a che il cursore non diventa una freccia nera. A questo punto possiamo trascinare il codice senza problemi.
Una volta trascinato il codice comparirà questo popup, attraverso cui possiamo assegnare un nome allo snippet, una parola da usare per l’autocompletamento, un contesto di validità e qualche altro parametro:

Come possiamo notare, i nostri snippet vengono contrassegnati con un’icona particolare avente la scritta “user” in sovraimpressione.
E’ molto interessante il fatto che nei nostri snippet possiamo anche prevedere la presenza dei placeholder: è sufficiente usare la sintassi <#paramName#>.
Possiamo trasferire i nostri snippet personali su un altro computer?
Certamente, anche se non esiste un modo comodo per farlo. Occorre portarsi nella directory ~/Library/Developer/Xcode/UserData/CodeSnippets/, all’interno della quale troveremo un file .plist per ciascuno snippet. Non aspettatevi però dei nomi amichevoli, perché troveremo solo delle cose del tipo CBA0922F-7714-404A-B3E2-6058F5CBD76D.codesnippet.
L’autore
Valerio Dutto. Ingegnere informatico con oltre 5 anni di esperienza nella realizzazione di software professionali. Dal 2009 si occupa a tempo pieno di sviluppo su piattaforme iOS e Mac OS X. Ha contribuito a oltre 15 applicazioni iPhone e iPad, alcune delle quali hanno ricevuto importanti riconoscimenti. Il suo sito Web è http://www.valeriodutto.com.











6 Responses to “Xcode 4: scopriamo che cosa sono gli snippet e come possiamo usarli in modo efficace”
28 Aprile 2011
DavideDavvero interessante, mi sono due mesi che cerco di capire come aggiungere i miei snippet.
28 Aprile 2011
Carda1989Grandi!
Fate presto anche l’articolo per pubblicare le app con xcode 4 per favore! 😀
Ciao!
30 Aprile 2011
CIRsi..interesserebbe anche a me, grazie
4 Maggio 2011
Xcode 4 Code Snippets | Valerio Dutto[…] My article on Xcode 4 Code Snippets (in italian) is now live on devApp.it website (link). […]
6 Maggio 2011
MarcoEsiste un modo per rimuovere uno snippet facilmente ?
6 Maggio 2011
Valerio DuttoCiao Marco, sì, puoi rimuoverne uno creato da te semplicemente selezionandolo e premendo BACKSPACE. Non puoi invece eliminare quelli predefiniti inseriti da Apple.