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 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, Objective C++ e Swift in un unico programma.
Swift linguaggio di programmazione | |
---|---|
![]() | |
Autore | Apple Inc. |
Data di origine | 9 settembre 2014 |
Ultima versione | 5.7.1 (3 novembre 2022) |
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/ |
Modifica dati su Wikidata · Manuale |
Il 25 marzo 2019 è stata pubblicata la versione 5.0 sotto licenza open source Apache 2.0 per sistemi Apple e Linux.[3]
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.
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] |
Hello, world! è il classico programma che scrive in output "Hello, world!".
import UIKit
print("Hello, world!")
import UIKit
La funzione "import" importa nel programma determinati metodi o classi che permettono a quest'ultimo di implementare determinati comandi. "UIKit" è 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 UIKit (è 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).
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)
In questo esempio convertiamo in maiuscolo solo il primo carattere di ciascuna parola e contiamo i caratteri che compongono la stringa stessa:
import UIKit
// 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")
In questo esempio sostituiamo una specifica parola con un'altra:
import UIKit
// 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)
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")
}
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)
}
// 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
// Con dichiarazione tipologia 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 della tipologia (String)
let c = "C"
// Dichiara le costanti da utilizzare
let π = 3.14159
let 你好 = "你好世界"
let 🍓 = "Fragola"; 🥝 = "Kiwi"; 🍎 = "Mela"
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).
Swift, rispetto a Java, non necessita di essere interpretato. Questa differenza fondamentale tra i due linguaggi di programmazione ha una notevole ripercussione sulla RAM (memoria). Infatti il sistema Android ne risulta svantaggiato rispetto al rivale iOS.[19]
Altri progetti
Controllo di autorità | LCCN (EN) sh2015001571 · GND (DE) 1066617112 · BNF (FR) cb17039945c (data) · J9U (EN, HE) 987007412504105171 |
---|
![]() | ![]() |