Compatibile con Xcode 10.2

Le novità del linguaggio Swift 5

ENTRA NEL NOSTRO GRUPPO FACEBOOK

Apple ha appena rilasciato la quinta versione del nostro linguaggio di programmazione preferito, introducendo diverse interessanti novità.

ABI Stability

La novità più importante consiste nell’aver introdotto l’ABI Stability (ho accennato l’argomento in questo articolo), ma che vantaggi porterà a noi developers?

D’ora in poi, un’app compilata con Swift 5 potrà comunicare con una libreria compilata con un’altra versione di Swift. In passato potrà esserti capitato che, dopo un’aggiornamento di Swift, la tua applicazione che sfruttava CocoaPods non compilasse più, costringendoti ad aggiornare manualmente i Pods. Questo scenario in futuro non potrà mai più ripresentarsi!

Inoltre, le app presenti sull’App Store compilate con Swift 5 avranno una dimensione minore perché non incorporeranno più le Swift standard libraries, in quanto saranno incluse in iOS.

Ma veniamo a noi, e vediamo quali sono le vere novità di Swift 5!

String literals

Swift 5 introduce un nuovo modo di creare le stringhe, usando il simbolo # come delimitatore. Questo vuol dire che usando questa novità, non dovremo più usare il backslash (il carattere “\”) per inserire alcuni caratteri speciali (come ad esempio \n, \t, \”). Nel caso in cui dovessimo inserire un asterisco all’interno di una stringa, basterà delimitarla con un asterisco in più. Vediamo alcuni esempi:

Il tipo Result

Questo nuovo tipo è un enum composto da due cases: success e failure, entrambi implementati usando i generics. Tuttavia, failure dovrà essere conforme al tipo Error. Questo nuovo tipo potrebbe aiutarti a gestire meglio gli errori in una situazione complessa, come ad esempio una chiamata ad una API. Facciamo un esempio:

Ipotizza di dover implementare una chiamata ad un servizio che ti restituisce il saldo del tuo conto corrente.

String interpolation

Debuggando, ti sarà sicuramente capitato di stampare un oggetto in console, ed avrai notato che, nel caso di una classe, non vengano restituite informazioni particolarmente interessanti. Per ovviare a questo problema, d’ora in poi potrai estendere il metodo appendInterpolation della classe String.StringInterpolation aggiungendo le tue classi:

Ma qual è la differenza con CustomStringConvertible? È semplice, con appendInterpolation potrai aggiungere tutti i parametri che ti serviranno:

Gestire enum futuri

In passato, quando ti trovavi a gestire degli enum con possibili sviluppi futuri, avresti utilizzato la keyword default.

Ora invece, grazie all’introduzione della keyword @unknown default, hai la possibilità di gestire i casi di enum ad oggi inesistenti, triggerando un warning in fase di compilazione.

Opzionali nidificati

Finalmente con l’utilizzo della keyword try? in Swift 5 non ci verrà più restituito un doppio opzionale (se non triplo), bensì un singolo opzionale. Questo potrebbe succederti, ad esempio, se provassi a chiamare un metodo marcato come throws su un oggetto opzionale:

Il metodo compactMapValues dei dizionari

Questo metodo ti permette di creare un nuovo dizionario a partire dall’originale escludendo gli opzionali, ad esempio:

isMultiple(of:)

Questo nuovo metodo ti permette di verificare che un numero sia multiplo di un altro numero, ad esempio:

Ovviamente, scrivere:

Sarebbe stata la stessa cosa, ma questo nuovo metodo rende il codice più leggibile.

Start typing and press Enter to search

Come installare e usare Cocoapods