I 10 strumenti indispensabili per uno sviluppatore iOS

iOS_Development_tipsLa pigrizia degli sviluppatori (e così la mia) è abbastanza proverbiale.
Essi tendono a riusare il codice quante più volte possibile e spesso cercano degli strumenti che consentano di rendere il proprio lavoro meno tedioso. Per quanto riguarda la piattaforma per cui mi capita principalmente di sviluppare software (iOS, il sistema operativo dell’iPhone per chi non fosse pratico), devo dire che esiste un sottobosco di utility, applicazioni e tweaks mica da ridere.

Ecco un piccolo estratto di quelli che comunemente dovrebbero essere installati nel Mac di ciascun sviluppatore di app per iOS (con, in caso, qualche nota sull’installazione).

  1. CocoaPods (Free)Schermata 2015-01-14 alle 12.35.17Senza CocoaPods non siete nessuno.
    CocoaPods  è “IL” sistema di gestione delle librerie esterne per i progetti di iOS.
    S’installa sulla vostra macchina da riga di comando con:

    sudo gem install cocoapods

    e sarà subito accessibile da riga di comando.
    Tramite un semplice

    pod search nomelibreria

    sarete in grado di sapere se la libreria che cercate è presente nel DB di CocoaPod e tramite un file di configurazione chiamato Podfile, con una sintassi molto semplice, si inserisce il nome e la versione della libreria che si intende utilizzare. Basterà a questo punto un:

    pod install

    per configurare il progetto con le librerie esterne. Basta riaprire il progetto dal file .xcworkspace ed il gioco è fatto. Potrete istanziare le librerie esterne con un semplice #include. Nulla di più semplice.

  2. AFNetworking (Free)Schermata 2015-01-14 alle 12.29.00Sì, d’accordo, direte voi AFNetworking non è uno strumento, ma una libreria.
    Però se per scrivere un’app non usi AFNetworking sei un pazzo.Per chi non fosse al corrente stiamo parlando della libreria di terze parti più utile sulla faccia della terra. Gestisce per noi tutte le richieste asincrone (e sincrone, ma voi utilizzerete più che altro le seconde), in maniera trasparente e tramite dei metodi che gestiscono il GET/POST il l’invio multipart, insomma tutte le menate di cui avete bisogno se la vostra applicazione ha una parte di rete (e 99 su 100 l’avrà), per cui affrettatevi ad inserire

    pod 'AFNetworking', '~> 2.0'

    nel vostro PodFile e dare

    pod update
  3. CocoaLumberJack (Free)

    LumberjackLogoAnche CocoaLumberJack è uno di quei tool (in realtà una libreria) davvero utile e che può essere installata con CocoaPods.Consente di gestire in maniera capillare, infatti, i livelli di logging della vostra app assegnando diversi profili a seconda del profilo che state eseguendo (per esempio se l’app gira in release oppure in debug) ed assegnare diverse funzioni per ciscun tipo di log, anche con colori diversi.Io ad esempio utilizzo diversi colori per i diversi tipi di gravità dei log (banalmente rosso per gli errori, giallo per i warning e così via).Al solito la documentazione sul sito è ottima.
  4. Testflight (Free)

    Anche se è stata acquistata da Apple in tempi recenti ed il suo sistema di test delle build in beta è stato spostato completamente lato iTunes Connect e l’app omonima su AppStore, rimane il sistema più utilizzato per il testing delle app in beta tramite invito più importante per uno sviluppatore la cui app è ancora “legacy”.Tramite un semplice sistema di notifiche tutti i tester vengono avvisati via mail della nuova build disponibile da parte degli sviluppatori e possono installare l’app direttamente sul proprio device e testarla senza nessun intervento esterno. Possono altresì fornire dei feedback agli sviluppatori rispondendo direttamente alla mail di notifica.Schermata 2015-01-14 alle 12.36.52

    Sebbene TestFlight sia in via di dismissione e sia stato già rimosso il supporto per Android già da qualche tempo (Google ha rimediato a questo) potete anche usare app simili come HockeyApp (che ho appena scoperto esser stata acquistata da Microsoft) e DeployGate  che hanno prezzi che variano dai $10/month ai $45/month.

  5. Sketch (€ 99.00)

    Sketch Anche se questo non è proprio un tool per programmatori, forse è meglio che iniziate ad usarlo. Sketch ha soppiantato nel giro di poco tempo tutti i tool (anche piuttosto blasonati) di grafica, per via della sua impostazione app-friendly.

    Difatti fornisce una serie di tools e componenti già pronti per creare la UI della vostra app. Inoltre la comunità ha riempito i siti specializzati di plugin per le varie esigenze di design.Inoltre Sketch fornisce dei tool per l’esportazione rapida di assets con le varie grandezze già pronte da inserire nel vostro .xcassets.

  6. PaintCode (€ 99.00)

    Schermata 2015-01-14 alle 12.50.11PaintCode è un software unico nel suo genere.
    Consente infatti di “disegnare” il codice.Tramite l’ausilio di un interprete, infatti genera del codice che disegna i vostri file di tipo PSD e SVG che importerete nel programma (o genererete al suo interno).

    Il prezzo è un po’ alto effettivamente ma la sua peculiarità è dovuta al fatto che che i simboli generati (ad esempio bottoni o tasti) verranno inclusi in una classe con dei metodi che possono essere poi riutilizzati diverse volte, in parti differenti del vostro elaborato (StyleKit).

  7. ASCIIWWDC (Free)

    Anche se non fondamentale, ho comunque voluto mettere in evidenza questa idea un po’ fuori di testa. Alcuni sviluppatori hanno recuperato tutti i video delle conferenze WWDC degli ultimi 4 anni e ne hanno indicizzato i sottotitoli in modo da poter rintracciare semplicemente un determinato video a partire da una o più parole chiave.Dato che molto spesso le conferenze WWDC risolvono o spiegano dei concetti fondamentali durante lo sviluppo, la possibilità di avere a portata di mano diversi video d’interesse indicizzati in questo modo costituisce sicuramente un valido apporto per lo sviluppo nonché alla nostra crescita professionale.

  8. Alcatraz Xcode Package Manager (Free)

    Schermata 2015-01-14 alle 12.55.07Alcatraz è un semplice tool che consente di installare sul nostro Xcode tutte le estensioni più famose e utili, in un semplice click del mouse.Possiamo inserire nuovi temi, avere delle piccole estensioni o amenità varie, come la sincronizzazione degli snippets con un repository Git, oppure di postare un gist direttamente da Xcode o ancora meglio per eliminare i Derived Data (tanto odiati). Infine possiamo dare uno sguardo all’effetto del plugin prima d’installarlo. L’installazione è semplice ed indolore:

    curl -fsSL https://raw.github.com/supermarin/Alcatraz/master/Scripts/install.sh | sh

    Davvero notevole.

  9. Magical Record (Free)

    awesome_logo_smallAvete mai avuto a che fare con Core Data?Beh, se la risposta è si vi sarete accorti di come in alcuni casi sia veramente complicato doverci lavorare.Magical Record fa un’opera veramente magistrale e vi fornisce i tools per scordarvi la complessità di Core Data, mantenendo la possibilità di avere tutti i suoi strumenti a disposizione, nascondendo per noi la complessità e fornendoci delle API davvero semplici da usare per accedere e modificare il nostro DB SQLite.Anche in questo caso si tratta di una libreria che può essere installata da CocoaPods aggiungendo le righe:

    pod 'MagicalRecord', '~> 2.2'

    al vostro Podfile.

  10. Crashlytics (Free)
    CrashlyticsCrashlytics è un tool che tramite un plugin s’installa nell’app e fornisce un monitoraggio remoto davvero formidabile, riscontrando crash e dati di utilizzo della stessa.Inoltre fornisce informazioni addizionali sulla posizione dei crash a livello di codice, per ottenere tempi di fio molto più bassi e grafici dell’andamento dell’utilizzo dell’app su base giornaliera ( e funziona anche su Android).Infine integra un servizio per la distribuzione delle beta on-the-fly, alla stregua delle app già menzionate precedentemente.

Sono molte altre le automazioni disponibili per Xcode e gli strumenti che ci rendono il suo utilizzo poco meno frustrante rispetto ad altri IDE, ma avevo premura d’individuare solo i primi dieci che utilizzo quotidianamente. E voi, che altri tools di sviluppo accessori usate?

One thought on “I 10 strumenti indispensabili per uno sviluppatore iOS

Leave a Reply

Your email address will not be published. Required fields are marked *