Compatibile con Xcode 10

Le novità del linguaggio Swift 4.2

ENTRA NEL NOSTRO GRUPPO FACEBOOK

Come di consueto, assieme ad Xcode 10 (di cui puoi vedere le novità nell’articolo di Peppe), Apple alla WWDC ha ufficialmente presentato anche la nuova versione del linguaggio Swift 4.2.

Swift 4.2?

Assieme ad iOS 12, non dovrebbe essere rilasciata una major release di Swift come tutti gli altri anni?

No, quest’anno la Apple ha deciso di prendersi un po’ più di tempo e rilasciare Swift 5.0 ad inizio 2019, per poter raggiungere la stabilità delle ABI (Application Binary Interfaces).

Attualmente, Swift non è ancora “ABI Stable”, quindi tutti i file binari delle App incorporano la versione delle Swift Dynamic Libraries con la quale il codice è stato compilato (ad esempio, se hai compilato un’App usando Swift 4.1, il binario incorporerà SOLO le librarie di Swift 4.1, e così via dicendo).

Questo perché Swift non convive ancora con iOS, ma viene “definito” assieme ai file binari dell’App.

Ma veniamo a noi, e vediamo le novità del linguaggio Swift 4.2.

Nota bene: attualmente, Swift 4.2 è incluso solamente nella beta di Xcode 10, la versione finale verrà rilasciata a settembre assieme ad iOS 12. Inoltre, da qui al rilascio definitivo, alcune funzionalità potrebbero cambiare, quindi torna qui tra un paio di mesi per scoprire gli ultimi cambiamenti!

Il protocollo CaseIterable

Grazie a questo nuovo protocollo, sarà possibile rendere gli enum iterabili! Ti basterà aggiungere la conformità al protocollo CaseIterable ed il gioco sarà fatto:

Verrà generato la computed property allCases, che in questo caso restituirà un array di UserRole.

Nell’eventualità volessi personalizzare la allCases puoi ridefinirla manualmente:

Questa particolarità è utilissima quando hai un case unavailable. In questo caso il CaseIterable non riuscirà a definire la property allCases e dovrai implementarla manualmente:

Le direttive #warning e #error

Sono state introdotte due nuove direttive che generano rispettivamente un warning ed un errore in fase di compilazione:

Nuove direttive

Questo ti permetterà di eliminare o dar più forza ed importanza a quei commenti “TODO: ….”.

Nuova API per la generazione di variabili casuali

Il linguaggio Swift 4.2 introduce una nuova API nativa di Swift per la generazione di variabili casuali, migliorando la casualità dell’output rendendola veramente casuale. Basterà chiamare la proprietà random del tipo di dato da randomizzare in questo modo:

Inoltre, gli Array hanno guadagnato dei comodissimi metodi, shuffle(), shuffled() e randomElement():

Nota che quest’ultimo metodo restituisce un opzionale, perché potrebbe essere usato su un Array vuoto.

Il metodo removeAll delle collezioni

Il metodo removeAll, introdotto per tutti i tipi di Collection, permette di rimuovere in modo efficiente gli elementi di una Collection che non soddisfino i requisiti presenti nella closure, come ad esempio:

Il metodo allSatisfy delle sequenze

Al contrario del metodo removeAll per le collezioni, la funzione allSatisfy restituisce una sequenza di elementi che soddisfino una determinata condizione:

Ma come, questi ultimi due nuovi metodi sono inutili! Potevo fare già tutto ciò con filter 😎”
Hai ragione, ma rispetto alla funzione filter, i nuovi metodi sono ottimizzati per eseguire l’operazione molto più velocemente.

Bool.toggle()

Infine, è stato aggiunto un simpatico metodo per invertire il valore di un Bool, quindi anziché scrivere:

Potremo scrivere:

Comodo, no?

Conclusioni

Ovviamente queste sono solo una piccola parte di tutte le modifiche apportate a Swift, quindi per vedere tutte le modifiche che Apple ha apportato a Swift 4.2, dai un’occhiata al changelog ufficiale.

Nell’eventualità mi volessi far presente altre modifiche importanti, scrivimi pure un commento in qui sotto.

Mentre se sei interessato alle novità di Xcode 10 puoi leggere questo nostro articolo e se vuoi rimanere aggiornato su tutte le novità presentate alla WWDC 2018, ti consiglio di leggere tutti gli articoli che trovi su iSpazio o sull’app che gli abbiamo sviluppato.

Buona Programmazione!

Start typing and press Enter to search

xcode-10-le-novit-del-wwdc-2018