Swift From Scratch Introduktion


I 2014 tog Apple överraskande utvecklingssamhället med introduktionen av Swift, ett helt nytt programmeringsspråk. Swift har kommit långt, och det är svårt att tro att språket firar sitt tredje årsjubileum i år. För några månader sedan släppte Apple Swift 3, en viktig milstolpe för språket. I denna serie lär jag dig grunderna för Swift 3.

Swift känner sig bekant om du har använt Objective-C för att utveckla iOS- eller macOS-applikationer, men det finns ett antal viktiga skillnader. Jag slår av denna serie genom att visa dig på vilka sätt Swift skiljer sig från Objective-C och varför dessa skillnader är en bra sak. Låt oss börja.

1. Förutsättningar

Programmering

I hela denna serie gör jag referenser till Objective-C och jämför Swift-programmeringsspråket med Objective-C. Men för att följa med, finns det behöver inte vara bekant med Objective-C.

Det sagt är det viktigt att du har erfarenhet av en programmeringsspråk. Medan denna serie fokuserar på Swift, täcker den inte grunderna för programmering. Jag förväntar mig att du är bekant med variabler, konstanter, funktioner, kontrollflöde och objektorienterad programmering.

Om du är bekant med Objective-C, Java, Ruby, PHP eller JavaScript, har du inga problem med att förstå de begrepp som förklaras i denna serie. Faktum är att du kommer märka att Swift delar likheter med ett antal populära programmeringsspråk, inklusive Objective-C.

Xcode

Swift 3 stöds endast av Xcode 8, och du måste installera den senaste versionen av Apples IDE (Integrated Development Environment) för att följa med. Du kan ladda ner Xcode antingen från App Store eller Apples utvecklingscenter.

2. Swift

Jämfört med mål-C eller Java är Swift ett uttrycksfullt, kortfattat språk som ofta påminner mig om Ruby och JavaScript. Trots att skaparen av Swift, Chris Lattner, tog inspiration från andra språk, är Swift väldigt mycket ett språk som står på sina egna fötter.

Som du kanske vet är Objective-C en strikt superset av C. Swift, men det är det inte. Medan Swift använder lockiga axlar och delar flera nyckelord med C-programmeringsspråket, är det inte kompatibelt med C.

Swift är ett modernt programmeringsspråk som känns intuitivt, särskilt om du är van vid Java eller C-baserade programmeringsspråk som Objective-C. Under utvecklingen och utformningen av Swift fokuserade Chris Lattner på ett antal nyckelegenskaper som slutade definiera språket.

Säkerhet

Säkerhet är en av Swifts stiftelser. I denna serie lär du dig snabbt att Swift är väldigt annorlunda än Objective-C när det gäller säkerhet, och detta påverkar direkt koden du skriver. Om du har arbetat med Objective-C, tar det lite att vänja sig.

LLVM

Chris Lattner utformade också kompilatorn LLVM (Low Level Virtual Machine), och det ska inte vara en överraskning att Swift är byggt med LLVM-kompilatorn. Resultatet är hastighet, kraft och tillförlitlighet. Swift är betydligt snabbare än mål-C i de flesta scenarier. Läs den här artikeln av Jesse Squires om du är intresserad av nitty-gritty detaljer.

Skriv inferens

Typ av säkerhet är en av Swifts nyckelfunktioner. Swift inspekterar din kod vid kompileringstid och varnar dig om typmatchningar. Det innebär att du kan fånga fel tidigt och undvika ett antal vanliga buggar.

Lyckligtvis hjälper Swift dig med detta. Swift är ofta smart nog att avleda typen av variabler och konstanter, vilket innebär att du inte behöver uttryckligen deklarera typen av varje variabel eller konstant. I följande kodstämpel, förklarar vi en variabel en och tilldela värdet "detta är en sträng". Swift är tillräckligt smart för att döma det en är av typ Sträng.

var a = "detta är en sträng"

Detta är ett trivialt exempel, men du får reda på att Swift också kan hantera mer komplexa scenarier.

Variabler och konstanter

Konstanter är användbara i C och Objective-C, men de flesta utvecklare använder dem sparsamt. I Swift är konstanter lika viktiga och vanliga som variabler. Om värdet på en variabel inte ändras, bör den variabeln vara en konstant. Variabler förklaras med hjälp av var nyckelord. Konstanter förklaras med hjälp av låta nyckelord.

var a = 1 // variabel låt b = 1 // konstant

Inte bara förbättrar detta avsiktet, det förbättrar också säkerheten genom att säkerställa att variabelns värde inte oavsiktligt ändras. Vi tar en närmare titt på variabler och konstanter senare i denna handledning.

Semikolon

I Swift krävs inte semikolon. Du kan använda semikolon, till exempel, skriva flera uttalanden på samma rad, men de är valfria. Ta en titt på följande exempel för att bättre förstå användningen av semikolon i Swift.

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

Vi klipper bara på ytan. Du lär dig om många fler funktioner och koncept i hela serien. Istället för att överbelasta dig med mer teori, föreslår jag att du får dina fötter blöt genom att skriva lite kod. Detta ger oss en av de bästa funktionerna i Swift och Xcode: lekplatser.

3. Lekplatser

Apple introducerade lekplatser i Xcode 6. Lekplatser är det perfekta verktyget för att lära Swift. En lekplats är en interaktiv miljö där du kan skriva Swift och genast se resultatet. Det gör inte bara lärandet Swift roligare, det är mycket snabbare och mer intuitivt än att skapa ett projekt i Xcode.

Faktum är att det är så enkelt att du också kan hoppa in och skapa din första lekplats. Öppna Xcode 8 och välj Ny> Lekplats ...  från Fil meny. Namn på lekplatsen och uppsättningen Plattform till iOS.

Berätta Xcode där du vill spara lekplatsen och klicka Skapa. I stället för att skapa ett projekt med en massa filer och mappar är en lekplats ingenting annat än en fil med en .lekplats förlängning. En lekplats är mer än en fil under huven, men det är inte något vi behöver oroa oss för nu.

Användargränssnittet du presenteras kan inte vara enklare. Till vänster ser du en kodredigerare med en kommentar högst upp, en importförklaring för import av UIKit-ramverket och en kodlinje som inte borde vara för svår att förstå. Till höger ser du resultatet eller resultatet som genereras av koden till vänster.

Låt oss ta en stund att förstå koden på din nya lekplats. Den första raden ska se väl om du har arbetat med Objective-C, PHP eller JavaScript. Kommentarer i Swift start med två spår framåt eller, om det gäller multiline kommentarer, börja med / * och sluta med * /.

Eftersom vi valde iOS Som plattform när vi skapade lekplatsen lade Xcode ett importdeklaration till UIKIT-ramen. Detta ger oss tillgång till varje symbol som definieras i UIKIT-ramverket.

Den tredje raden ser bekant ut, men det finns några detaljer som behöver klargöras. Vi förklarar en variabel str och tilldela det en sträng. Den här koden är lätt att förstå, men notera att variabelns namn föregås av var sökord i stället för variabelns typ som du förväntar dig i mål-C. Samma uttalande i mål-C skulle se ut så här.

NSString * str = @ "Hej, lekplats";

I Mål-C skulle vi ersätta var sökord med variabelns typ, prefix strängen med en @ symbol, och avsluta uttalandet med en semikolon. Det är viktigt att förstå att var sökordet gör det inte byta ut typspecifikationen i mål-C. Det är inget mer än ett nyckelord för att indikera det str är en variabel, inte en konstant. 

Låt mig förklara detta mer i detalj. Lägg till följande rad kod till lekplatsen.

låt hej = "Hej, lekplats"

De låta sökord berättar kompilatorn att Hej är en konstant, inte en variabel. Både str och Hej är av typ Sträng, men str är en variabel och Hej är en konstant. Skillnaden är lätt att förstå om vi lägger till ytterligare två rader av kod.

str = "Detta är en variabel." hej = "Detta är en konstant."

Tilldela ett nytt värde till str utgör inget problem. Tilldela ett nytt värde till Hej, resulterar emellertid i ett fel. Xcode berättar att den inte kan tilldela en ny värde till Hej, därför att Hej är en konstant, inte en variabel. Detta är ett annat viktigt inslag i Swift, vilket kommer att ta lite att vänja sig vid.

Tanken är enkel. Om värdet på en variabel inte kommer att förändras, borde det vara en konstant istället för en variabel. Även om detta kan verka som en semantisk detalj garanterar jag att det gör din kod säkrare och mindre benägen för fel. Var beredd, för att du ska se låta nyckelord mycket i denna serie.

Vi använder lekplatser i hela serien eftersom det är ett bra sätt att lära sig språket. Det finns några andra kraftfulla lekplatser som vi inte har täckt än, men vi behöver först förstå grunden för Swift-språket innan vi kan dra nytta av dem.

Slutsats

Jag måste fortfarande träffa en utvecklare som inte gillar Swift, och det säger något. Swift har ett antal koncept som kräver att vissa vänjer sig, men jag är övertygad om att du också kommer att tycka om att njuta av Swift och uppskatta dess makt, elegans och koncision. I nästa del av denna serie börjar vi utforska grunderna i Swift.

Lär dig Swift

Vi har byggt en komplett guide för att hjälpa dig att lära dig Swift, oavsett om du bara har börjat med grunderna eller vill utforska mer avancerade ämnen.

Om du vill komma igång med snabbt språk snabbt, kolla in vår kurs om att skapa iOS-appar med Swift.

Eller kolla in några av våra andra handledning och kurser om Swift och iOS utveckling!