Swift From Scratch Introduzione


Nel 2014, Apple ha colto di sorpresa la community degli sviluppatori con l'introduzione di Swift, un linguaggio di programmazione completamente nuovo. Swift ha fatto molta strada, ed è difficile credere che la lingua celebra il suo terzo anniversario quest'anno. Alcuni mesi fa, Apple ha rilasciato Swift 3, una pietra miliare importante per la lingua. In questa serie, ti insegnerò i fondamenti di Swift 3.

Swift ti sembra familiare se hai usato Objective-C per sviluppare applicazioni iOS o macOS, ma ci sono alcune importanti differenze. Scaricherò questa serie mostrandoti in che modo Swift differisce da Objective-C e perché queste differenze sono una buona cosa. Iniziamo.

1. Prerequisiti

Programmazione

In questa serie, faccio riferimenti a Objective-C e confronta il linguaggio di programmazione Swift con Objective-C. Tuttavia, per seguire, c'è non è necessario avere familiarità con Objective-C.

Detto questo, è importante che tu abbia esperienza con un linguaggio di programmazione. Mentre questa serie si concentra su Swift, non copre le basi della programmazione. Mi aspetto che tu abbia familiarità con le variabili, le costanti, le funzioni, il flusso di controllo e la programmazione orientata agli oggetti.

Se hai familiarità con Objective-C, Java, Ruby, PHP o JavaScript, non avrai problemi a comprendere i concetti spiegati in questa serie. In effetti, noterai che Swift condivide somiglianze con numerosi linguaggi di programmazione popolari, incluso Objective-C.

Xcode

Swift 3 è supportato solo da Xcode 8 ed è necessario installare l'ultima versione dell'IDE di Apple (Integrated Development Environment) da seguire. Puoi scaricare Xcode dall'App Store o dal Centro per sviluppatori Apple.

2. Swift

Rispetto a Objective-C o Java, Swift è un linguaggio espressivo e succinto che spesso mi ricorda Ruby e JavaScript. Anche se il creatore di Swift, Chris Lattner, si è ispirato ad altre lingue, Swift è molto un linguaggio che si regge sui propri piedi.

Come forse sapete, Objective-C è un superset rigido di C. Swift, tuttavia, non lo è. Mentre Swift usa parentesi graffe e condivide diverse parole chiave con il linguaggio di programmazione C, non è compatibile con C.

Swift è un linguaggio di programmazione moderno che sembra intuitivo, specialmente se sei abituato a linguaggi di programmazione basati su Java o C come Objective-C. Durante lo sviluppo e la progettazione di Swift, Chris Lattner si è concentrato su una serie di caratteristiche chiave che hanno finito per definire la lingua.

Sicurezza

La sicurezza è una delle basi di Swift. In questa serie, impari rapidamente che Swift è molto diverso dall'Obiettivo-C in termini di sicurezza, e questo influenza direttamente il codice che scrivi. Se hai lavorato con Objective-C, ci vuole un po 'per abituarsi.

LLVM

Chris Lattner ha anche progettato il compilatore LLVM (Low Level Virtual Machine) e non dovrebbe sorprendere che Swift sia costruito con il compilatore LLVM. Il risultato è velocità, potenza e affidabilità. Swift è significativamente più veloce di Objective-C nella maggior parte degli scenari. Leggi questo articolo di Jesse Squires se sei interessato ai dettagli nitidi.

Tipo di inferenza

La sicurezza del tipo è una delle caratteristiche principali di Swift. Swift ispeziona il tuo codice in fase di compilazione e ti avvisa in caso di mancata corrispondenza dei tipi. Ciò significa che è possibile rilevare gli errori in anticipo, evitando una serie di errori comuni.

Fortunatamente, Swift ti aiuta con questo. Swift è spesso abbastanza intelligente da dedurre il tipo di variabili e costanti, il che significa che non è necessario dichiarare esplicitamente il tipo di ogni variabile o costante. Nel seguente snippet di codice, dichiariamo una variabile un e assegnagli il valore "questa è una stringa". Swift è abbastanza intelligente da dedurlo un è di tipo Stringa.

var a = "questa è una stringa"

Questo è un esempio banale, ma scoprirai che Swift può anche gestire scenari più complessi.

Variabili e costanti

Le costanti sono utili in C e Objective-C, ma la maggior parte degli sviluppatori le usa con parsimonia. In Swift, le costanti sono altrettanto importanti e comuni delle variabili. Se il valore di una variabile non cambia, allora quella variabile dovrebbe essere una costante. Le variabili sono dichiarate usando il var parola chiave. Le costanti sono dichiarate usando il permettere parola chiave.

var a = 1 // variabile let b = 1 // costante

Questo non solo migliora l'intento, ma migliora anche la sicurezza assicurando che il valore della variabile non venga modificato accidentalmente. Diamo uno sguardo più da vicino a variabili e costanti più avanti in questo tutorial.

Punto e virgola

In Swift non è richiesto il punto e virgola. È possibile utilizzare il punto e virgola, ad esempio, per scrivere più istruzioni sulla stessa riga, ma sono facoltative. Dai un'occhiata al seguente esempio per capire meglio l'uso del punto e virgola in Swift.

var a = 1 var b = 2 var c = 1; var d = 2;

Stiamo solo grattando la superficie. Imparerai molte altre funzionalità e concetti in questa serie. Invece di sovraccaricarti di più teorie, ti suggerisco di bagnarti i piedi scrivendo del codice. Questo ci porta a una delle migliori caratteristiche di Swift e Xcode: i parchi giochi.

3. Playgrounds

Apple ha introdotto i parchi giochi in Xcode 6. Playgrounds è lo strumento perfetto per imparare Swift. Un campo da gioco è un ambiente interattivo in cui è possibile scrivere Swift e vedere immediatamente il risultato. Non solo rende l'apprendimento di Swift più divertente, è molto più veloce e intuitivo rispetto alla creazione di un progetto in Xcode.

È un dato di fatto, è così facile che puoi anche saltare e creare il tuo primo campo da gioco. Apri Xcode 8 e seleziona Nuovo> Parco giochi ...  dal File menu. Dai un nome al parco giochi e al set piattaforma a iOS.

Dillo a Xcode dove desideri salvare il parco giochi e fai clic Creare. Invece di creare un progetto con un sacco di file e cartelle, un campo da gioco non è altro che un file con a .terreno di gioco estensione. Un parco giochi è più di un file sotto il cofano, ma non è qualcosa di cui dobbiamo preoccuparci per ora.

L'interfaccia utente che ti viene presentata non potrebbe essere più semplice. Sulla sinistra, si vede un editor di codice con un commento in cima, una dichiarazione di importazione per l'importazione del framework UIKit e una riga di codice che non dovrebbe essere troppo difficile da capire. Sulla destra, vedi l'output o i risultati generati dal codice a sinistra.

Prendiamo un momento per capire il codice nel tuo nuovo parco giochi. La prima riga dovrebbe sembrare familiare se hai lavorato con Objective-C, PHP o JavaScript. I commenti in Swift iniziano con due barre in avanti o, nel caso di commenti su più righe, iniziano con / * e finisci con * /.

Perché abbiamo selezionato iOS come piattaforma quando abbiamo creato il parco giochi, Xcode ha aggiunto una dichiarazione di importazione per il framework UIKit. Questo ci dà accesso a tutti i simboli definiti nel framework UIKit.

La terza riga sembra familiare, ma ci sono alcuni dettagli che devono essere chiariti. Dichiariamo una variabile str e assegnagli una stringa. Questa linea di codice è facile da capire, ma si noti che il nome della variabile è preceduto dal var parola chiave al posto del tipo della variabile come ci si aspetterebbe in Objective-C. La stessa affermazione in Objective-C sarebbe simile a questa.

NSString * str = @ "Ciao, parco giochi";

In Objective-C, sostituiremmo il var parola chiave con il tipo della variabile, prefissa la stringa con un @ simbolo e termina l'istruzione con un punto e virgola. È importante capire che il var la parola chiave no sostituire lo specificatore di tipo in Objective-C. Non è altro che una parola chiave per indicarlo str è una variabile, non una costante. 

Lasciatemi spiegare questo in modo più dettagliato. Aggiungi la seguente riga di codice al campo da gioco.

lascia Ciao = "Ciao, parco giochi"

Il permettere parola chiave dice al compilatore che Ciao è una costante, non una variabile. Tutti e due str e Ciao sono di tipo Stringa, ma str è una variabile e Ciao è una costante La differenza è semplice da capire se aggiungiamo altre due righe di codice.

str = "Questa è una variabile." ciao = "Questa è una costante."

Assegnare un nuovo valore a str non pone un problema Assegnare un nuovo valore a Ciao, tuttavia, genera un errore. Xcode ci dice che non può assegnare un nuovo valore a Ciao, perché Ciao è una costante, non una variabile. Questa è un'altra caratteristica chiave di Swift, a cui ci vorrà un po 'di tempo per abituarsi.

L'idea è semplice. Se il valore di una variabile non cambierà, dovrebbe essere una costante anziché una variabile. Anche se questo può sembrare un dettaglio semantico, ti garantisco che rende il tuo codice più sicuro e meno soggetto a errori. Sii preparato, perché vedrai il permettere parola chiave molto in questa serie.

Usiamo ampiamente i campi di gioco in questa serie perché è un ottimo modo per imparare la lingua. Ci sono alcune altre potenti funzionalità per i giochi che non abbiamo ancora affrontato, ma dobbiamo prima capire le basi del linguaggio Swift prima di poter beneficiare di quelle.

Conclusione

Devo ancora incontrare uno sviluppatore a cui non piace Swift, e questo sta dicendo qualcosa. Swift ha una serie di concetti che richiedono un po 'di abituarsi, ma sono certo che anche tu finirai per goderti Swift e apprezzarne la potenza, l'eleganza e la concisione. Nella prossima puntata di questa serie, inizieremo ad esplorare le basi di Swift.

Impara Swift

Abbiamo creato una guida completa per aiutarti a imparare Swift, sia che tu stia appena iniziando con le basi o che desideri esplorare argomenti più avanzati.

Se desideri iniziare subito a utilizzare la lingua Swift, consulta il nostro corso sulla creazione di app iOS con Swift.

Oppure guarda alcuni dei nostri altri tutorial e corsi sullo sviluppo di Swift e iOS!