Compatibile con Xcode 10

Xcode 10: Cosa c’è di nuovo?

ENTRA NEL NOSTRO GRUPPO FACEBOOK

Il WWDC 2018 è giunto a termine. Come ormai consuetudine il keynote è più un momento di puro intrattenimento che una vera e propria developers conference. Qui vengono mostrate le novità dei nuovi OS e si lasciano i dietro le quinte di questi update a tutte le piccole sessioni d’approfondimento che si protraggono nei giorni successivi.

Noi di una cosa possiamo cominciare già a parlarne, ovvero del nostro compagno quotidiano: Xcode 10 (puoi scaricarlo in beta dal seguente link).

dark mode Xcode 10

La domanda che ci facciamo tutti, esploderanno i miei progetti con Xcode 10?

L’anno scorso è stato un vero e proprio incubo con la beta di Xcode 9. Se ti ricordi, sembrava più il frutto di una sbronzata e di un upload partito per sbaglio che di una vera e propria beta pubblica. Tantè che in molti siamo stati a lamentarci dei continui crash inaspettati, della lentezza e dei vari dettagli non curati (che si sono protratti anche nelle versioni definitive).

Con Xcode 10 sembra che Apple abbia recepito il messaggio. A primo acchitto Xcode 10 (beta) sembra mettere nel cassetto molti dei problemi che avevamo incontrato nelle puntate precedenti.

Quindi, si, puoi scaricare senza problemi in nuovo Xcode 10 (con le dovute accortezze! è sempre in beta).

Ma veniamo subito al nocciolo della questione, cosa porta di nuovo Xcode 10?

Xcode 10 è il frutto di un processo lento ma continuo che porta l’IDE di mamma Apple da un programmino di seconda categoria ad un vero e proprio caposaldo dello sviluppo. Vedrai che non ci sono novità rivoluzionarie ma tante piccole cose che messe insieme cominciano a fare la differenza.

P.S. Passa di tanto in tanto da qui o seguici su Slack o Facebook perché aggiornerò di continuo questo articolo. Nel frattempo ti avviso che aggiornerò il corso gratuito sul linguaggio Swift, il corso iOS Top Down e Auto Layout Ground per supportare le ultime novità.

Adesso veniamo ad Xcode 10.

DarkMode

Penso non ci sia niente d’aggiungere se non quello che vedi nello screen che ho messo sopra. Con Xcode 10, grazie a macOS Mojave, avremo una Dark Mode all’interno dell’Editor.

Editor migliorato

Apple ha un amore maniacale per il testo ed i font. Con Xcode 10 noterai un enorme salto di qualità all’interno dell’editor. Il testo ti apparirà più morbido e con delle tonalità di colori differenti (per supportare la Dark Mode). 

La prima novità riguarda la velocità dell’editor. A detta di apple, ma si nota già con progetti corposi, il tempo di apertura è stato aumentato di 2x volte. 

È stato introdotto il folding, ovvero la capacità di accorpare righe per leggere il codice più velocemente:

xcode-10-folding

Con il Source Control abilitato, all’interno dell’Editor, potrai vedere delle barrette colorate accanto al numero di linee che ti identificheranno lo status del codice in relazione a quello del tuo git. 

Per esempio se quella porzione di codice che hai modificato entra in conflitto con quella del tuo team (rossa/arancione), oppure se di quella parte devi ancora fare il push…

In più dal click alla barra potrai eseguire diverse operazioni:

source-control-editor-xcode-10

editor-xcode-10-discard

Hanno migliorato il pannello delle Actions alla selezione del codice. Nel particolare la funzione Jump To Definition adesso aprirà un menù contestuale che mostrerà tutte le definizioni e la loro posizione di quella particolare funzione/metodo, proprietà, classe etc selezionato.

In un esempio ho creato una classe MyLogger in cui ho definito un metodo debug() ed una subclass MySpecialLogger in cui ho eseguito un override del debug(). Nella fase di utilizzo il Jump To Definition mi permetterà di saltare al metodo genitore o al figlio:

xcode-10-jump-to-definition

Infine, un’ultima novità dell’editor di Xcode 10 degna di nota è la possibilità di editare diversi componenti del codice in maniera simultanea.

Questa nuova funzionalità si chiama Multi-Cursor Editing e si attiva:

  1. Tenendo premuti ⌃+⇧+Click e cliccando sugli elementi
  2. o con la tastiera premendo ⌃+⇧+Up⌃+⇧+Down 
  3. oppure ancora premendo ⌥+Click+Drag e trascinando il mouse

Quello che potrai fare sarà la seguente:

quick-editing-xcode-10

Il tempo di prendere dimestichezza con questo strumento e vedrai che non ne potrai fare più a meno!

Source Control

Ora il Source Control di Xcode 10 supporta Bitbucket Cloud e Server, GitLab.com e GitLab self-hosted (oltre al già presente GitHub).

Xcode genera in maniera automatica l’SSH key e fa l’upload in maniera automatica ed il navigator del Source Control è stato leggermente migliorato (per esempio adesso ti basterà fare un doppio click su un commit e non si aprirà più una finestra a parte).

E attenzione, adesso Xcode permette il rebase delle tue modifiche quando esegui in pull dell’ultima versione dalla tua repo.

Build System

Xcode 10 porta con se un nuovo build system che aumenta le performance in maniera drastica. Nel caso in cui volessi utilizzare ancora il Legacy build system puoi riattivarla andando su File/Project Settings.

xcode-10-build-system

Questo nuovo build system (che già era disponibile in preview in Xcode 9) è completamente riscritto con il linguaggio Swift. Ti assicuro che noterai immediatamente la differenza di velocità non appena farai partire i Build dei progetti (e sopratutto nei successivi).

Testing

Le maggiori novità di Xcode 10 le si hanno in ambito di XCTest ed UITest. Xcode 10, per la prima volta, supporta il testing parallelo (in macOS, tvOS e ovviamente iOS).

Per implementare il testing parallelo devi andare su Product/Scheme/Edit-Scheme. Da lì selezionare Test e cliccare sul bottone Options. Si aprirà un menù in cui potrai spuntare Execute in parallel on Simulator:

testing-parallelo-xcode-10

Dalle stesse opzioni potrai anche sattivare l’esecuzione randomica dei test.

Una volta abilitato il parallelismo, avviando i Test verrano avviate N istanze del simulatore in base al grado di parallelismo che può erogare la tua CPU.

Conclusione

Di default Xcode 10 beta include il linguaggio Swift 4.2 e le beta SDKs per iOS 12, watchOS 5, tvOS 12, e macOS Mojave.

Aggiornerò l’articolo di giorno in giorno in modo tale da poterti lasciare con un resoconto completo di tutte le novità.

Se ti fa piacere darmi una mano ed hai notato qualche novità che manca all’articolo, scrivimela pure nei commenti in modo tale da poterla aggiungere.

Buona programmazione!

Start typing and press Enter to search

prinicpio-di-singola-responsabilitLe novità del linguaggio swift 4.2