CHICIO CODING
Android Studio vs Xcode vs AppCode: un breve confronto sulla velocità di codifica
16 Jan 2018 – 4 min read
In questo post confronterò la velocità di codifica che è possibile ottenere con Android Studio, Xcode, e alcuni IDE di JetBrains in termini di creazione e refactoring del codice.
IDE, Integrated Development Environment, sono le cassette degli attrezzi degli sviluppatori di software. Quando ho iniziato a lavorare al gruppo lastminute.com la mia conoscenza della piattaforma Android era molto limitata. Ma… lastminute.com group è una società di sviluppo software agile e una delle tecniche che usiamo durante il nostro flusso di lavoro di sviluppo è la programmazione a coppie: due sviluppatori lavorano alla stessa funzione sulla stessa workstation.Come riportato su Wikipedia, uno dei principali vantaggi della programmazione a coppie è la condivisione della conoscenza:
La conoscenza è costantemente condivisa tra i programmatori a coppie, sia nell’industria che in una classe, molte fonti suggeriscono che gli studenti mostrano maggiore fiducia quando programmano in coppia, e molti imparano sia dai consigli sulle regole del linguaggio di programmazione all’abilità generale di progettazione. Nell'”accoppiamento promiscuo”, ogni programmatore comunica e lavora con tutti gli altri programmatori della squadra piuttosto che accoppiarsi solo con un partner, il che fa sì che la conoscenza del sistema si diffonda in tutta la squadra. La programmazione in coppia permette ai programmatori di esaminare il codice del loro partner e fornire un feedback che è necessario per aumentare la propria capacità di sviluppare meccanismi di controllo per le proprie attività di apprendimento.
Ecco perché ho iniziato a lavorare con il mio collega Francesco Bonfadelli, uno sviluppatore senior Android, iOS e Backend. Durante le nostre sessioni di programmazione in coppia ho imparato molto sullo sviluppo di applicazioni mobili per la piattaforma Android. Una delle cose che ho imparato nei primi giorni è la differenza tra gli IDE ufficiali: Android Studio e Xcode. Dopo aver visto la velocità di codifica che Francesco è stato in grado di raggiungere durante una sessione di codifica Android, e quanto più lento sia fare le stesse cose in Xcode per iOS, ho capito quanto più avanzato sia Android Studio con il suo set di funzioni di refactoring rispetto a Xcode.
In questo post analizzerò brevemente alcuni IDE comunemente usati per lo sviluppo di applicazioni mobili concentrandomi sulla velocità di codifica che è possibile ottenere usandoli e vi spiegherò perché, al momento di questo scritto, ho iniziato a preferire la famiglia di IDE JetBrains (non solo per lo sviluppo di applicazioni mobili ).
Xcode
Ho sempre amato Xcode. Ho iniziato a usarlo 8 anni fa ed è ancora qui con me durante il mio lavoro quotidiano. Si apre in pochi secondi e si può iniziare a codificare molto rapidamente. Ma…. cosa succede quando il codice della tua app inizia ad aumentare in termini di complessità e hai bisogno di fare una semplice operazione di refactoring? Ti aiuta in qualche modo quando hai bisogno di creare una nuova classe/proprietà? Ti aiuta quando hai bisogno di navigare nel tuo codice e devi saltare velocemente da una classe all’altra? Beh, ad essere onesti non vi aiuta molto. Anche una semplice rinominazione potrebbe diventare un’operazione dolorosa, specialmente se avete un progetto con parti miste Swift/Objective-C. Tutto deve essere fatto manualmente. Considerate per esempio questo elenco di operazioni di creazione/refactoring di codice misto:
- creare una nuova classe
- instanziarla e tenerla come variabile locale
- aggiungere un metodo alla classe precedente
- aggiungere un parametro al metodo precedentemente creato
- estrarre la variabile locale come proprietà del controller in cui l’ho creata
Nel seguente video proverò a fare queste operazioni in Xcode. Al momento in cui scrivo la versione di Xcode disponibile è la 9.2.
Più di 2 minuti per implementare tutte le cose nella lista di cui sopra.Davvero lento, vero?!?
Android Studio
Prima del gruppo lastminute.com, avevo usato Android Studio solo poche volte per alcune applicazioni Android molto semplici. Poi ho iniziato a lavorare con Francesco e mi ha introdotto alla potenza degli IDE di JetBrains. Questo IDE ti dà la possibilità di navigare velocemente nel tuo codice sorgente, creare e modificare classi, e ti permette di fare un sacco di altre operazioni di refactoring senza lasciare la tastiera! In pratica puoi scrivere codice e dimenticarti del tuo mouse! . L’elenco delle scorciatoie da tastiera che potete usare nel vostro flusso di sviluppo è infinito. Potete trovare la lista completa qui. Proviamo a fare le stesse identiche operazioni che ho fatto prima con Xcode, e aggiungo anche una rinominazione della classe creata alla fine di tutte le operazioni precedenti. Al momento in cui scrivo la versione disponibile di Android Studio è la 3.0.1.
Solo 50 secondi e ho fatto tutte le cose (e non stavo spingendo forte sulla tastiera…).Come potete vedere, Android Studio vi dà la possibilità di scrivere codice alla velocità della luce!!! .
AppCode
Come potete immaginare, dopo aver lavorato qualche ora con Android Studio, ho iniziato a chiedermi se ci fosse un IDE che mi permettesse di impostare lo stesso stile di scrittura del codice e il flusso di lavoro. Qui un altro collega con cui ho lavorato, Tommaso Resti, uno sviluppatore iOS e Android senior, mi ha mostrato AppCode per la prima volta. Questo è un altro IDE di JetBrains per lo sviluppo iOS. Permette di migliorare la velocità di sviluppo consentendo di utilizzare alcuni degli strumenti di refactoring che si possono trovare in Android Studio. Tuttavia non è tutto pace e luce in questo caso. Alcuni degli strumenti di refactoring non sono disponibili per Swift e avrete ancora bisogno di Xcode per lavorare su Xib e Storyboard (il team JetBrains ha sviluppato un plugin per interface builder, ma è stato interrotto). Comunque, se cominciate ad abituarvi al flusso di lavoro di scrittura del codice di Android Studio, vi sentirete a casa con AppCode .
Pensieri finali
Android Studio e AppCode sono basati su IntelliJ IDEA, il famoso IDE Java di JetBrains. Ma questa è la metà della storia: La famiglia IDE di JetBrains è davvero grande. Puoi trovare un IDE per ogni tuo linguaggio preferito:
- CLion, per C e C++
- PhpStorm
- PyCharm
- RubyMine per Ruby
- GoLand per GO
- Rider per C#
Quindi non preoccuparti: se volete iniziare a migliorare la vostra velocità di codifica probabilmente c’è un IDE per il vostro linguaggio preferito. Xcode avrà sempre un posto speciale nel mio cuore. Continuerò ancora ad usarlo nel mio lavoro quotidiano come sviluppatore mobile. Ma… la velocità di codifica che ho guadagnato con gli IDE JetBrains non poteva essere ignorata . Ecco perché ho iniziato a preferirli .