Gli strumenti INDISPENSABILI di uno sviluppatore iOS

Mi occupo principalmente di sviluppo applicazioni mobile, in particolar modo di app iOS (iPhone e iPad). Ovviamente il mio lavoro richiede alcuni strumenti di cui non posso fare a meno o che dall’inizio della mia esperienza con lo sviluppo di applicazioni mi risultano indispensabili per essere veloce, preciso e attendo, e ottimizzare ciò che faccio. Di seguito voglio elencare una lista di software (per OS X) e di Web Services che utilizzo spesso per svolgere il mio lavoro, e che ottimizza la mia produttività. Questa lista è in continuo aggiornamento, perché magari passo ad altro, oppure aggiungo qualche software all’elenco. Nominerò solo i più importanti, quelli che reputo realmente indispensabili. Chiaro, ci sono software minori come Skype, Pocket ed simila, che tornano utili, ma che non sono prettamente legati allo sviluppo. Detto ciò, iniziamo con la lista, e nei commenti fatemi sapere i vostri software indispensabili per il vostro lavoro!

1) Xcode – Lo elenco per primo in quando senza di esso non potrei scrivere codice. O meglio, ho provato anche altre alternative, ma Xcode rimane il top come IDE per lo sviluppo di applicazioni iOS. Molti lo criticano, ma io lo trovo (quasi) perfetto sotto ogni aspetto. A volte crasha, è vero, ma è molto flessibile. Un must have. Lo uso anche per git, ritengo che il suo sistema di controllo di versione interno sia abbastanza buono, e mi ci son trovato sempre bene.

2) Timing – E’ un’app poco conosciuta, ma che ogni sviluppatore (e non solo, tutti i freelance possono utilizzarla) dovrebbe aver installata sul proprio Mac. Timing permette di tracciare con precisione il tempo che si perde durante l’utilizzo delle app installate. Immaginate una sessione di coding utilizzando Xcode, e qualche altro strumento. Potete tracciare alla perfezione le ore che passate nella scrittura di codice e in tutte le altre attività. Pensate che traccia anche quanto tempo passate sui singoli siti web oppure quali video (e quanto tempo) avete perso nella visione di video con VLC. E fa molto di più. E’ utile per fatturare al cliente le ore esatte che avete impiegato nello sviluppo di un’app ad esempio. Supporta anche tutta la suite Adobe e altri software indispensabili allo sviluppatore.

3) TextMate – Lo uso da diversi anni, da quando iniziai l’università, ed è il mio editor testuale preferito. Supporta praticamente di tutto, è veloce e non da alcun problema. Ho notato rallentamenti (e vi avvisa il programma stesso) solo quando si caricano al suo interno migliaia di righe. Ritengo che un text editor “di riserva” sia sempre necessario, quindi ho installato TextWrangler, che è gratuito ed altrettanto buono come TextMate.

4) Pixelmator – Di solito non sono io a realizzare gli elementi della UI delle app mobile che sviluppo, ma un buon editor grafico è sempre necessario, e torna utile praticamente sempre (ridimensiona, preleva colore, etc…). Gimp è gratuito, ma non mi è mai piaciuto, Photoshop si paga caro ed amaro, e per l’utilizzo che ne faccio il prezzo non è giustificato. Quindi dalla prima versione che uscì diversi anni fa, utilizzo con costanza Pixelmator, che è un ottimo editor e dispone, volendo, anche di funzioni avanzate. Come secondo strumento (per cose più rapide) utilizzo “Anteprima” di Apple.

5) Dash – Questa applicazione la metto tra le preferite, probabilmente nella top 3. Dash è un API Documentation Browser e un manager per gli snippet di codice. Vi permette di scaricare le documentazioni delle API di qualsiasi linguaggio, ed in più (la funzione che preferisco), è un ottimo gestore per gli snippet di codice che richiamate più spesso, con funzioni di ricerca avanzate e tag. E’ possibile salvare la sua libreria su cloud (io la ho su Dropbox), e avere il tutto perennemente sincronizzato con gli altri Mac.Dash

6) JSON Accelerator – Come suggerisce il nome, permette di lavorare con dati JSON, verificarli, ed eventualmente modellare gli oggetti in base al JSON, generando automaticamente le classi (Objective-C, Java o Python).

7) Localizable String Merge – Mi permette di generare i file Localizable.strings con l’elenco da tradurre nelle varie lingue. Un salvatempo eccezionale quando si deve localizzate l’applicazione in più lingue.

Localizable Strings Merge

8) SQLiteManager – Lasciate perdere le estensioni per firefox o software costosissimi per la gestione dei database SQLite. Una piccola software house Italiana ha rilasciato il software che secondo me rimane il più semplice e leggero per gestire i database in questione. Costa solo49€ ed è disponibile anche per Windows.

SQLiteManager

 

9) CocoaPods – Lo elenco qui tra i software, e lo uso praticamente in ogni progetto Xcode. Ma d’altronde credo che ogni sviluppatore iOS lo usi e ne sia a conoscenza. CocoaPods è un gestore di dipendenze, tipo Maven per Java, e permette di importare con facilità delle librerie (open source principalmente) che altrimenti dovrebbero essere importate a mano. Ma la cosa più bella, è che tutto funziona immediatamente (altre librerie o framework vengono importati automaticamente nel progetto) ed è possibile tenere aggiornate le librerie facilmente, senza dover scaricare e riconfigurare tutto di volta in volta. Basta un comando sul terminale. Grazie di esistere!

Lato web, utilizzo i seguenti servizi:

1) TestFlight – Con il rilascio della versione per mac del loro uploader, ne faccio un uso massiccio. TestFlight permette di gestire i beta tester delle proprie app, ed è un servizio eccellente sotto tutti gli aspetti. Non è un caso che Apple abbia acquisito la società. Al volo è possibile integrare (o meno) il loro SDK, e uplodare sul servizio le build da testare. I beta tester iscritti, riceveranno una notifica e potranno provare di volta in volta le build, e potranno segnalarvi bug e miglioramenti da effettuare.

2) Trello – Ho iniziato a usarlo solo da qualche mese. Qualcuno lo odia (non gli piace l’interfaccia?), ma io ho iniziato ad apprezzarlo moltissimo quando ho cominciato a lavorare con team distribuiti. Trello è un sistema di project management (praticamente utilizza SCRUM) e permette di coordinare le attività in tempo reale con tutto il team di lavoro (developer, designer, etc…). Ci sono delle “tabelle”, all’interno del quale è possibile inserire e spostare i vari task, in base alla fase in cui quel task si trova. E’ totalmente customizzabile, e supporta anche le to-do list e l’upload di immagini. Con il piano free è possibile utilizzarlo al 100% delle sue funzioni. Il piano gold da qualche feature in più, non indispensabile.

3) GitHub – Credo lo conoscono tutti, ma siccome è tra i servizi web che uso di più, lo devo segnalare. GitHub è il più grande “raccoglitore” sul web di progetti Open Source riguardanti “il codice”. Per iOS è possibile trovare le librerie più disparate, e io lo uso con molta costanza per aggiornarmi, migliorare codice altrui, o semplicemente seguire persone che mi interessano. E’ ovviamente possibile utilizzare Git come sistema di controllo di versione, ma GitHub con il piano gratuito permette di pubblicare solo progetti che siano pubblici. Sotto questo punto di vista c’è di meglio. Questo mi da l’occasione di passare a parlare del successivo web service.Github social coding

4) BitBucket – “Sia lode a te”. Prima ho citato GitHub. BitBucket è sostanzialmente la stessa cosa: un gestore per il “Source Control”, che funziona sia con Git (prima era SVN) sia con Mercurial. Io preferisco Git, e siccome offre spazio infinito, e un numero di progetti illimitato, attualmente lo reputo il migliore sul mercato sotto un sacco di punti di vista. Limita il numero di collaboratori a 5 per progetto con il piano free, ma direi che vale lo stesso la pena. Provatelo.

5) App Annie – Io lo definirei come un servizio di Analytics per App Store (e anche altri store) molto più completo e con un sacco di feature. Si collega al proprio account Apple (ma anche a piattaforme di advertising mobile come AdMob) e monitora tutto. Vi da statistiche dettagliate, e informazioni persino sulle keywork (vostre e dei competitor). Le funzioni sono tante da elencare, fate prima a dargli un’occhiata.

6) Google Analytics – Di recente (si fa per dire) Google ha introdotto Analytics anche per mobile. Basta integrare il loro SDK (attualmente in beta) all’interno della propria app, configurare il tutto come meglio vi aggrada, a avrete tutte le statistiche d’uso che vi servono direttamente su Google Analytics. Potrete elaborare i dati e visionare il tempo che gli utenti perdono nell’utilizzo della vostra app fino al singolo bottone che è stato tappato. Ovviamente tutto in forma anonima, ma funziona egregiamente.

7) Parse – Lo nomino verso la fine, ma ormai è diventato il mio Backend as a Service (BAAS) preferito, meriterebbe il podio. Come per Google Analytics, è necessario prima integrare l’SDK nella propria applicazione, dopodiché potrete implementare tutto ciò che vi serve, perdendo veramente pochissimo tempo nella realizzazione del backend. Potete realizzare ad esempio un clone di instagram, visionare le statistiche d’utilizzo, inviare notifiche push (fino ad 1.000.000 di utenti con il piano free!) e tanto altro ancora. Un  backend in piena regola, ma con le potenzialità offerte da un SDK scritto bene e da un team che è stato acquisito assieme all’intera società da Facebook. Login con i social network, e tanto altro, è tutto AGGRATIS, e offerto da Parse. Cosa ci guadagnano? Bhe, se avrete successo si presume che il piano free non vi basti più, quindi dovrete pagare. Ma merita, merita tanto secondo me.Parse

 

Per ora il mio elenco si ferma qui. E voi, che software utilizzate per il vostro lavoro? Fatemelo sapere nei commenti.

8 thoughts on “Gli strumenti INDISPENSABILI di uno sviluppatore iOS

    1. Ciao Federico.

      Per installare cocoapods ti basta lanciare il comando:
      sudo gem install cocoapods

      ovviamente devi avere Ruby installato, ma di default su OS X ci dovrebbe già essere.
      Fammi sapere se ci riesci.

        1. No, assolutamente, Ruby è gratuito. Non è da installare tramite Mac App Store.

          Prova a dare il comando
          ruby -v
          dovrebbe restituirti la versione di ruby installata sul tuo mac. Se il comando non viene preso, allora lo devi installare.
          A questo punto, con una semplice ricerca su google trovi come installare Ruby su Mac.

          1. allora metto sudo gem install… e mi viene questo messaggio:
            WARNING: Improper use of the sudo command could lead to data loss
            or the deletion of important system files. Please double-check your
            typing when using sudo. Type “man sudo” for more information.

            To proceed, enter your password, or type Ctrl-C to abort.

            Password:
            e dove la password nn riesco a mettere nulla perché digito ma nn mi appare nulla :/

          2. al massimo guarda visto che ci divento scemo oppure sn scemo io ihihih prova a mettermi tutti i passaggi per bene e vediamo se mi riesce a venire qualcosa 🙂 grazie e scusa dell immenso disturbo 😉

Leave a Reply to Federico Grigolini Cancel reply

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