Swift (linguaggio di programmazione)
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.[2] 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.
Swift linguaggio di programmazione | |
---|---|
Autore | Apple Inc. |
Data di origine | 9 settembre 2014 |
Ultima versione | 5.10 (5 marzo 2024) |
Utilizzo | General purpose |
Paradigmi | Multiparadigma |
Tipizzazione | forte |
Specifiche di linguaggio | Manuale Swift |
Estensioni comuni | swift |
Influenzato da | C, Objective C, D[1] |
Implementazione di riferimento | |
Implementazione | compilatore LLVM |
Sistema operativo | macOS, iOS, watchOS, tvOS, Linux |
Licenza | Apache 2.0 |
Sito web | swift.org/ |
Il 25 marzo 2019 è stata pubblicata la versione 5.0 sotto licenza open source Apache 2.0 per sistemi Apple e Linux.[3]
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".[4]
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",[5] 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.[6] Apple resta lo sviluppatore principale e ne rende disponibile anche una versione del compilatore per Linux (Creato appositamente per Ubuntu).[7]
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 | [8] |
3.1 | 27 marzo 2017 | |
4.0 | 19 settembre 2017 | [9] |
4.1 | 29 marzo 2018 | |
4.2 | 17 settembre 2018 | [10] |
5.0 | 25 marzo 2019 | [11] |
5.1 | 10 settembre 2019 | [12] |
5.2 | 24 marzo 2020 | [13] |
5.3 | 16 settembre 2020 | [14] |
5.4 | 26 aprile 2021 | [15] |
5.5 | 20 settembre 2021 | [16] |
5.6 | 14 marzo 2022 | [17] |
5.7 | 12 settembre 2022 | [18] |
5.8 | 30 marzo 2023 | [19] |
5.9 | 18 settembre 2023 | [20] |
5.10 | 5 marzo 2024 | [21] |
Sintassi
Hello, world!
Hello, world! è il classico programma che scrive in output "Hello, world!".
import SwiftUIprint("Hello, world!")
Analisi
import SwiftUI
La 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 = "Draghi"// 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
- Wikimedia Commons contiene immagini o altri file su Swift
Collegamenti esterni
- (EN) Sito ufficiale, su swift.org.
- Repository sorgenti di Swift, su github.com.
- (EN) Handbook, su developer.apple.com/
- (IT) Sito in italiano, su apple.com/it/
Controllo di autorità | LCCN (EN) sh2015001571 · GND (DE) 1066617112 · BNF (FR) cb17039945c (data) · J9U (EN, HE) 987007412504105171 |
---|