Swift (dall'inglese "rapido, svelto") è un linguaggio di programmazione orientato agli oggetti per sistemi macOS, iPadOS, iOS, watchOS, tvOS e Linux, presentato da Apple durante la WWDC 2014. Rispetto al linguaggio Objective-C, tipico dei sistemi operativi Apple, Swift semplifica il lavoro di scrittura del codice. Swift è stato progettato per coesistere con Objective-C ma anche per essere più resiliente agli errori. Il compilatore LLVM è incluso in Xcode e Swift utilizza il run time di Objective-C, permettendo l'uso di codice Objective C, C e Swift in un unico programma.
Il 25 marzo 2019 è stata pubblicata la versione 5.0 sotto licenza open source Apache 2.0 per sistemi Apple e Linux.
Storia Lo sviluppo di Swift è iniziato nel 2010 grazie a Chris Lattner, programmatore informatico della Apple. Swift ha preso in prestito idee "da Objective-C, Rust, Haskell, Ruby, Python, C#, CLU, e da troppi altri per elencarli tutti".
Al WWDC del 2 giugno 2014 la prima app scritta in Swift è proprio l'app ufficiale dell'evento. E, durante lo svolgimento dello stesso, Apple divulga ai presenti un manuale di 500 pagine: "The Swift Programming Language", disponibile gratuitamente sull'iBookstore di casa Cupertino.
Al keynote dell'8 giugno 2015 Apple ha annunciato la distribuzione di Swift 2.0 con notevoli miglioramenti nella struttura del linguaggio e aggiunta di funzioni, impegnandosi per rendere il progetto open source nel futuro prossimo. Il 3 dicembre dello stesso anno viene lanciato il sito swift.org e il codice sorgente del linguaggio è pubblicato con licenza Apache 2.0 su un repository GitHub. Apple resta lo sviluppatore principale e ne rende disponibile anche una versione del compilatore per Linux (Creato appositamente per Ubuntu).
Il 13 settembre 2016, durante la WWDC 2016, Apple ha presentato la terza versione del suo linguaggio di programmazione insieme ad un'applicazione per iPad, Swift Playgrounds, che permette, tramite una grafica semplice e intuitiva, di imparare a programmare con Swift.
Cronologia delle versioni Versione Data rilascio Novità 1.0 9 settembre 2014 1.1 22 ottobre 2014 1.2 8 aprile 2015 2.0 21 settembre 2015 2.1 20 settembre 2015 2.2 21 marzo 2016 2.3 12 giugno 2016 3.0 13 settembre 2016 3.1 27 marzo 2017 4.0 19 settembre 2017 4.1 29 marzo 2018 4.2 17 settembre 2018 5.0 25 marzo 2019 5.1 10 settembre 2019 5.2 24 marzo 2020 5.3 16 settembre 2020 5.4 26 aprile 2021 5.5 20 settembre 2021 5.6 14 marzo 2022 5.7 12 settembre 2022 5.8 30 marzo 2023 5.9 18 settembre 2023 5.10 5 marzo 2024 6.0 17 settembre 2024
Sintassi
Hello, world! Hello, world! è il classico programma che scrive in output "Hello, world!".import SwiftUI
print("Hello, world!")
Analisi import SwiftUILa funzione "import" importa nel programma determinati metodi o classi che permettono a quest'ultimo di implementare determinati comandi.
"SwiftUI" è un framework front end, sviluppato da Apple, che fornisce le funzioni per gestire l'interfaccia grafica (GUI) e gli input dell'utente. In questo caso il codice compila anche senza importare SwiftUI (è stato importato solo come esempio) in quanto l'unica funzione utilizzata è stata la funzione "print" che fa parte del core del linguaggio.print("Hello, world!")La funzione "print" permette di mostrare a schermo ciò che viene scritto tra le virgolette dentro le parentesi tonde.
In Swift non è necessario inserire il punto e virgola (;) alla fine di ogni istruzione (a differenza di C o altri linguaggi).
Esempi pratici Maiuscolo e minuscolo In questo esempio convertiamo una parola in maiuscolo e l'altra in minuscolo:
// Dichiara le variabili da utilizzare var nome = "Mario", cognome = "Rossi"
// Converti la stringa in maiuscolo nome = nome.uppercased()
// Converti la stringa in minuscolo cognome = cognome.lowercased()
// Stampa il risultato print(nome, cognome)
Prima lettera maiuscola di ogni parola In questo esempio convertiamo in maiuscolo solo il primo carattere di ciascuna parola e contiamo i caratteri che compongono la stringa stessa:
import SwiftUI
// Dichiara le variabili da utilizzare var stringa = "stringa di prova"
// Stampa il risultato print("La frase \"\(stringa.capitalized)\" è composta da \(stringa.count) caratteri, inclusi gli spazi")
Sostituzione parole In questo esempio sostituiamo una specifica parola con un'altra:
import SwiftUI
// Dichiara le variabili da utilizzare var stringa = "Questo è il risultato precedente"
// Sostituisci la parola "precedente" con "successivo" (var.replacingOccurrences) stringa = stringa.replacingOccurrences(of: "precedente", with: "successivo")
// Stampa il risultato print(stringa)
Condizione su parola palindroma Una parola palindroma è una parola che, sia la si legga da destra che da sinistra, risulta sempre uguale (ad esempio, "anna" è una parola palindroma). A seguito verrà mostrato che, data una parola, questo scriva a schermo se è palindroma o no.
// Dichiara le variabili da utilizzare var parola = "anna" var parolaInvertita : String
// Inverti la stringa parolaInvertita = String(parola.reversed())
// Confronta le variabili e stampa il risultato if (parola == parolaInvertita) { print("La parola \(parola) è palindroma") } else { print("La parola \(parola) NON è palindroma")
Array e cicli Infine, nell'esempio seguente, vediamo la dichiarazione di un array e la stampa di esso con il ciclo for-in
// Dichiara array var alfabetoArray = ["Alpha", "Beta", "Gamma", "Delta"]
// Stampa l'array dichiarato for (indice, elemento) in (alfabetoArray.enumerated()) { print(indice, ":", elemento)
Dichiarare costanti e variabili // Metodo 1 var nome = "Mario", cognome = "Rossi", genere = "M", età = 46
// Metodo 2 var (nome, cognome, genere, età) = ("Mario", "Rossi", "M", 46)
// Metodo 3 var nome = "Mario" var cognome = "Rossi" var genere = "M" var età = 46 Non è obbligatorio dichiarare il tipo di costanti e variabili (String, Int, Double, ...); Le parentesi tonde () per racchiudere condizioni di confronti (if-else, switch...) e cicli (for in, do-while...) sono facoltative; Il punto e virgola ";" a fine istruzione, anch'esso è facoltativo; // Con dichiarazione del tipo tra parentesi tonde e punto e virgola alla fine let a: (String) = "A";
// Senza parentesi tonde e punto e virgola alla fine let b: String = "B"
// Senza nemmeno la dichiarazione del tipo (String) let c = "C" Il nome delle costanti e delle variabili può contenere quasi tutti i caratteri, inclusi i caratteri Unicode: // Dichiara le costanti da utilizzare let π = 3.14159 let 你好 = "你好世界" let 🍓 = "Fragola"; 🥝 = "Kiwi"; 🍎 = "Mela"
SwiftUI
SwiftUI è un framework di sviluppo realizzato da Apple Inc. e scritto interamente in Swift.
Presentato nel WWDC 2019, SwiftUI è stato pensato per costruire interfacce utente tramite un unico set di tool e API che coinvolge tutto l'ecosistema Apple (precedentemente si faceva uso di frameworks distinti: AppKit per macOS, UIKit per iOS e WatchKit per watchOS).
Note
Altri progetti
Collegamenti esterni
Handbook, su developer.apple.com/ Sito in italiano, su apple.com/it/
Categoria:Linguaggi di programmazione orientati agli oggetti