La condivisione, o Open Source, è ciò che ha reso e sta rendendo grande la programmazione dei giorni nostri.
Lo sappiamo! sviluppare un’app, sopratutto all’inizio, può essere un vero e proprio calvario.
Spesso vogliamo realizzare interfacce o funzionalità complesse. Vogliamo aggiungere quel quid in più che rende il nostro prodotto diverso e sempre competitivo.
Chi non lo vorrebbe?
Però, nella maggior parte dei casi si finisce per non avere le competenze o per non avere il tempo necessario a crearle.
Peppe, che si fa? scendiamo nella mediocrità o proviamo il passo più lungo?
Niente di tutto ciò.
Negli ultimi anni sono tantissimi gli sviluppatori che amano condividere il proprio lavoro, il proprio codice e le proprie soluzioni con il mondo intero.
Cercando in rete avrai sicuramente notato due siti saltar sempre fuori:
- Stack Overflow: Gli sviluppatori pongono delle domande e, generalmente, ricevono delle risposte con la soluzione al problema.
- Github: Vengono condivisi interi codici, framework ed app con l’intento di diffonderli gratuitamente e ricevere in cambio un aiuto nel mantenerli.
Da questi due siti puoi tirar fuori di tutto. Io li uso tutti i giorni per informarmi, vedere come fanno gli altri, per poi applicare ai miei progetti.
Quindi, che devo fare?
Non devi reinventare la ruota (anche se sono un po’ contrario a questo pseudo-principio).
Però, quando andiamo di fretta, il riutilizzo può essere una manna dal cielo nel velocizzare i nostri processi di sviluppo.
Ecco perché, oggi, voglio mostrarti come utilizzare il codice prodotto dagli altri nel tuo progetto iOS.
Lo faremo sfruttando CocoaPods.
CocoaPods?
Allaccia le cinture perché stai per entrare nel fantastico mondo dei Pods.
Cos’è CocoaPods?
Cocoapods è un’app per la gestione delle dipendenze dei nostri progetti. In pratica, ci permetterà di installare ed aggiornare automaticamente i framework degli altri sviluppatori.
Dietro le quinte è un aggregatore di risorse gratuite condivise da chi ha buon cuore.
Nel sito web, infatti, potrai sfogliare questa enorme libreria utilizzando la funzione di ricerca:

I Pods, come vengono chiamati, spaziano dalla grafica fino alle funzionalità più stravaganti ed utili.
Per esempio, potrai integrare un menu particolare come quello a scorrimento laterale, un bottone con stile material, una fotogallery, un network layer e così via.
Cos’è un Pod?
Un Pod è, nella maggior parte dei casi, un framework.
Cos’è un framework?
È un insieme di classi, strutture etc per la risoluzione di un problema. Una sorta di “cartella” con dei file che potrai importare nel tuo progetto.
Se vuoi approfondire, ho spiegato cos’è un framework e come crearlo in questo tutorial:
Quindi, in definitiva, CocoaPods ti permetterà di installare ed aggiornare automaticamente i framework, prodotti dagli altri sviluppatori, all’interno del tuo progetto Xcode.
Come installare CocoaPods
Installare CocoaPods è semplicissimo. Apri il terminale del tuo Mac e digita:
sudo gem install cocoapods
Premi invio.
Con questo comando, dai istruzione di scaricare ed installare quest’applicazione. Se hai impostato una password per il tuo mac, ti verrà richiesta.
Nel caso i comandi del terminale ti suonassero come nuovi:
- sudo: comando per i permessi di root/amministrazione del mac.
- gem install è il comando che permette di installare gemme (“applicazioni”) scritte in Ruby sul proprio Mac (Ruby è installato di default in tutti i Mac).
- cocoapods: Infine, stai chiedendo al manager di Ruby di installare cocoapods.
Come aggiungere un Pod al tuo progetto
Una volta installato CocoaPods, adesso potrai aggiungere i Pods ai tuoi progetti (nuovi o vecchi che siano).
Prima di tutto, naviga con il terminale fino alla cartella del tuo progetto. Nel mio Mac, il progetto d’esempio l’ho messo in /Documents/Progetti/CocoaTestApp.
Quindi, io digiterò il comando cd seguito dal path:
cd /Users/giuseppe/Documents/Progetti/CocoaTestApp
- cd: sta per change directory e serve per entrare in una directory del Mac.
PRO TIP: Nel caso dovessi avere difficoltà a trovare il percorso della cartella del tuo progetto, puoi trascinarla nel terminale ed il percorso verrà scritto in automatico.
Adesso digita il comando pod init per inizializzare CocoaPods:
pod init
Ora vai nella cartella del progetto, dovresti trovare un file chiamato PodFile.
Apri il PodFile con un editor di testo. Io uso Atom, che è un editor di testo gratuito, ma puoi usare tranquillamente il Text Edit.

Target – do – end
Il blocco target – do – end sta ad indicare in quale target della tua app verranno installati i pods.
Tecnicamente dentro un PodFile puoi aggiungere diversi di questi blocchi in modo tale da installare i pods solamente dove necessario.
Esempio?
Se mi serve un pod solamente nel Today Extension, allora aggiungerò un nuovo target – do – end a tale scopo.
Alamofire
Il pod che voglio farti installare si chiama Alamofire ed è un framework che ti aiuterà nella scrittura di richieste HTTP.

Non entrerò nei dettagli di Alamofire perché non è il focus di questo tutorial. A noi interessa semplicemente come installare un framework usando cocoapods.
Generalmente i framework hanno un Readme (le istruzioni) nella pagina principale di Github. Se non lo hanno è già un campanello d’allarme (ti consiglio di non installare il pod).
Nel caso di Alamofire, se scorri nel paragrafo dedicato all’installazione dice, per quanto riguarda CocoaPods, di scrivere la seguente riga:
pod 'Alamofire', '~> 5.0.0.beta.1'
Dove devo aggiungere quest’istruzione?
La devi inserire dentro il blocco target – do – end. Nel mio caso, il file PodFile, sarà il seguente (se copi ed incolli ricordati di cambiare il nome del target e la versione di Alamofire dato che potrebbe essere stato aggiornato):
target 'CocoaTestApp' do
use_frameworks!
pod 'Alamofire', '~> 5.0.0.beta.1'
end
Posso aggiungere più pod?
Ovviamente si!
Ti basterà aggiungere una nuova riga con il nome del pod da installare. Per esempio, se volessi aggiungere Firebase insieme ad Alamofire il mio PodFile diventerà questo:
target 'CocoaTestApp' do
use_frameworks!
pod 'Alamofire', '~> 5.0.0.beta.1'
pod 'Firebase'
end
Firebase è il SaaS di Google: Ti permette di aggiungere velocemente Database, Login, Analytics etc alla tua app. Ne ho parlato in questo tutorial introduttivo.
Installare i Pods
Salva il PodFile. Torna al terminale e digita il comando pod install:
pod install
Dovrebbe scaricare tutti i pods inseriti ed installarli all’interno del tuo progetto.
A termine del processo, nella cartella dovrebbero essere comparsi dei nuovi file e cartelle:

Nel particolare dovresti trovare:
- La cartella Pods che conterrà i framework scaricati
- Il file con estensione xcworkspace che dovrai usare per aprire il progetto.
Da ora in avanti dovrai aprire il progetto con il file xcworkspace. In questo modo potrai utilizzare correttamente i Pods scaricati.
Aperto il workspace, potrai utilizzare il pod come un normalissimo framework (quindi con l’import nel file etc). Se non ti ricordi come si fa, puoi leggere il tutorial in cui ho spiegato come si creano ed utilizzano.
Aggiornare i Pods
Dopo un po’ sicuramente ti capiterà di voler aggiornare i pods. Generalmente accadrà o perché non sono più compatibili con iOS/watchOS/etc oppure perché presentavano dei bug.
Per aggiornare i pod ti basterà digitare il comando pod update all’interno della cartella del progetto:
pod update
Prima di farlo, ti consiglio di controllare sempre la documentazione ed i changelog dei framework. In questo modo potrai decidere meglio se aggiornare o meno.
Platform
Se hai notato, nel PodFile in alto c’è un’istruzione che è commenta e riguarda la versione di iOS:
platform :ios, 'x.x'
Se togli l’asterisco, che indica la non esecuzione, abiliterai la versione di compatibilità minima dei pods con iOS.
Così facendo, durante un pod update o pod install verranno scaricati i pod compatibili con quella versione o le successive di iOS.
Nel caso in cui stessi supportando diverse piattaforme, ti basterà aggiungere altre istruzioni platform al tuo podfile.
Versione dei Pods
Se dovessi aver bisogno di installare una versione ben specifica, dopo il nome del pod, metti una virgola ed aggiungi una stringa con la versione desiderata:
pod 'Firebase/Firestore', '5.10.1'
Se invece vuoi installare delle versioni definendo delle specifiche più complesse, puoi usare i seguenti simboli:
- ‘= 1.2.0’ installerà esattamente la versione 1.2.0 (il numero è un esempio). L’equivalente del comando visto sopra.
- ‘> 1.0.0’ le versioni successive alla 1.0.0. Puoi aggiungere anche il ‘>=’ per includere anche l’estremo inferiore.
- ‘<‘ o ‘<=’ seguiti dalla versione, fanno l’opposto del comando precedente.
- ‘~> 5.0.0’ installerà le versioni superiori alla 5.0.0 fino alla versione 6.0.0. Come se fosse un >= e <= di una versione solo che l’estremo superiore è definito partendo dall’incremento di una unità sull’inferiore.
pod 'Firebase/Auth', '> 5.0.0' // qualsiasi versione superiore alla 5
pod 'Firebase/Auth', '<= 5.0.0' // qualsiasi versione inferiore o compresa la 5
pod 'Firebase/Auth', '~> 5.0.0' // dalla 5 alla 6
Disinstallare i pods
Una delle cose più fastidiose riguardo CocoaPods è quella legata alla rimozione di uno o più pods.
Così è praticamente impossibile.
Allora, come fare?
Dovrai utilizzare una gem esterna che si chiama cocoapods-deintegrate. Quindi, installala utilizzando il comando:
sudo gem install cocoapods-deintegrate
Completata l’istallazione, spostati con il cd nel progetto incriminato ed avvia il comando deintegrate:
pod deintegrate
Così facendo verranno rimossi tutti i pods ed il progetto tornerà alla forma base. All’interno della cartella ritroverai solamente il PodFile.
A questo punto rimuovi dal PodFile i pod che non ti servono, salva e re-installa i pod rimasti con il comando pod install.
Semplice, veloce ed indolore.
La lista dei migliori Framework
Dove trovo i pods e framework per la mia app?
Qualcuno ha ben pensato di creare una lista con i migliori framework in circolazione.

La repo Awesome iOS contiene un’infinità di framework ordinati per tipologia. Viene costantemente aggiornata, quindi salvati il link tra i preferiti perché è un must have.
Conclusione
Prima di lasciarti, voglio darti un suggerimento.
CocoaPods, come anche altri strumenti (Carthage o lo Swift Package Manager), aggiungono delle dipendenze esterne al tuo progetto.
Come tutte le dipendenze, se assunte in eccesso, possono portare a dei veri e propri disastri.
Peppe, che vuoi dire?
I disastri avvengono per un motivo semplicissimo: molti framework potrebbero non essere aggiornati di anno in anno.
In questa situazione potresti decidere di dover rimuovere il framework o, se è proprio necessario e questo è open source, dovrai rimboccarti le maniche per risolvere i suoi problemi.
Quindi, fai molta attenzione 😂
Il mio consiglio è di installare solamente quelli necessari, ben mantenuti (basta vedere la frequenza di aggiornamenti) e con un’ottima documentazione.
Ti lascio il link all documentazione ufficiale di CocoaPods.
E, se ti fa piacere, ricordati di seguirmi anche su Youtube ed Instagram dove rilascio tutorial settimanalmente e piccole tips (su IG).
Buona Programmazione!
👨💻
Hai bisogno d’aiuto?
Scrivi un commento in fondo alla lezione