Oggi, insieme al rilascio di Xcode 6.3 beta è stato rilasciato swift versione 1.2. Questa beta contiene un compilatore swift con prestazioni migliorate e nuove funzioni nel linguaggio stesso. In questo post andremo ad analizzare le parti salienti.

Miglioramenti nel compilatore

Il compilatore in Swift 1.2 è stato progettato per essere più stabile e per migliorare le prestazioni in generale, in modo da fornire una migliore esperienza quando si lavora con Swift in Xcode.  Alcuni dei miglioramenti più importanti comprendono:

Builds incrementali – I file di origine che non hanno subito modifiche non saranno più ri-compilati per default, il che migliorerà in modo significativo il tempo di compilazione nella maggior parte dei casi.
Eseguibili più veloci – La nuova versione del compilatore offre binari ancora più veloci nell’esecuzione e nella compilazione
Diagnostica del compilatore migliorata – Messaggi di avvertimento e di errore ancora più chiari, rendendo più facile la stesura di codice in Swift.
Risolti diversi bug e stabilità migliorata– miglioramenti della stabilità.
Nuove funzionalità del linguaggio

In Swift 1.2, il linguaggio è stato ulteriormente affinato per garantire sicurezza, affidabilità e facilità di programmazione. Continuiamo inoltre a migliorare l’interazione tra Swift e Objective-C. Alcune delle più importanti modifiche includono:

Ora  è possibile fornire framework Objective-C che funzionano alla perfezione con il codice Swift,  migliorarando quindi la vostra esperienza di programmazione in Swift miscelandovi del codice Objective-C.
Le enumerazioni Swift possono ora essere esportate in Objective-C con l’attributo objc – Ad esempio, il seguente codice Swift:

@objc enum Bear: Int {
	case Black, Grizzly, Polar
}

imports into Objective-C as:

typedef NS_ENUM(NSInteger, Bear) {
	BearBlack, BearGrizzly, BearPolar
};
    • Una nuova regola prevede che una costante let debba essere inizializzata prima dell’uso (come una var), e che può essere solamente inizializzata, non riassegnata o modificata dopo l’inizializzazione.

Questo permette patterns come:

let x : SomeThing
if condition {
	x = foo()
} else {
	x = bar()
}
use(x)

Questo precedentemente richiede l’uso di un var anche se non vi è alcuna modifica in atto.

Il costrutto if leave ora può scartare più optionals in una volta, questo permette di esprimere un flusso di controllo condizionale senza nidificazioni inutili.

Swift 1.2 è un importante passo in avanti sia per il linguaggio sia per gli strumenti di programmazione che andrete ad utilizzare. Xcode 6.3 include un migratore per automatizzare il processo di passaggio da codice scritto nell’attuale Swift a Swift versione 1.2. Per iniziare la migrazione, fare clic sul menu Modifica, quindi scegliere Converti> Per Swift 1.2 …

Per la lista completa dei cambiamenti vi lasciamo alla release notes.