Swift From Scratch Introduksjon


I 2014 tok Apple utviklingssamfunnet overraskende med introduksjonen av Swift, et helt nytt programmeringsspråk. Swift har kommet langt, og det er vanskelig å tro at språket feirer sitt tredje jubileum i år. For noen måneder siden lanserte Apple Swift 3, en viktig milepæl for språket. I denne serien skal jeg lære deg grunnleggende om Swift 3.

Swift føler seg kjent hvis du har brukt Objective-C til å utvikle iOS- eller macOS-applikasjoner, men det er en rekke viktige forskjeller. Jeg slår av denne serien ved å vise deg på hvilke måter Swift skiller seg fra Objective-C, og hvorfor disse forskjellene er gode. La oss komme i gang.

1. Forutsetninger

programmering

Gjennom hele denne serien gjør jeg referanser til Objective-C og sammenligner Swift programmeringsspråket med Objective-C. Men for å følge med, er det Du trenger ikke å være kjent med Objective-C.

Når det er sagt, er det viktig at du har erfaring med en programmeringsspråk. Mens denne serien fokuserer på Swift, dekker det ikke grunnleggende programmering. Jeg forventer at du skal være kjent med variabler, konstanter, funksjoner, kontrollflyt og objektorientert programmering.

Hvis du er kjent med Objective-C, Java, Ruby, PHP eller JavaScript, vil du ikke ha problemer med å forstå konseptene som er forklart i denne serien. Faktisk vil du legge merke til at Swift aksjer likheter med en rekke populære programmeringsspråk, inkludert Objective-C.

Xcode

Swift 3 støttes bare av Xcode 8, og du må installere den nyeste versjonen av Apples IDE (Integrated Development Environment) for å følge med. Du kan laste ned Xcode enten fra App Store eller Apples Developer Center.

2. Swift

Sammenlignet med Objective-C eller Java, er Swift et uttrykksdyktig, kortfattet språk som ofte minner meg om Ruby og JavaScript. Selv om skaperen av Swift, Chris Lattner, tok inspirasjon fra andre språk, er Swift veldig mye et språk som står på egenhånd.

Som du kanskje vet, er Objective-C en streng erstatning for C. Swift, men det er det ikke. Mens Swift bruker krøllete braces og deler flere søkeord med C programmeringsspråket, er det ikke kompatibelt med C.

Swift er et moderne programmeringsspråk som føles intuitivt, spesielt hvis du er vant til Java eller C-baserte programmeringsspråk som Objective-C. Under utviklingen og utformingen av Swift fokuserte Chris Lattner på en rekke viktige egenskaper som endte med å definere språket.

Sikkerhet

Sikkerhet er en av Swifts grunnlag. I denne serien lærer du raskt at Swift er svært forskjellig fra Objective-C når det gjelder sikkerhet, og dette påvirker direkte koden du skriver. Hvis du har jobbet med Objective-C, tar dette litt vant til.

LLVM

Chris Lattner har også designet LLVM (Low Level Virtual Machine) kompilatoren, og det bør ikke være en overraskelse at Swift er bygget med LLVM kompilatoren. Resultatet er hastighet, kraft og pålitelighet. Swift er betydelig raskere enn Objective-C i de fleste scenarier. Les denne artikkelen av Jesse Squires hvis du er interessert i nitty-gritty detaljer.

Skriv innføring

Type sikkerhet er en av Swifts viktigste funksjoner. Swift inspiserer koden din på kompileringstid og advarer deg om type feilmatchinger. Dette betyr at du kan ta feil tidlig, og unngå en rekke vanlige feil.

Heldigvis hjelper Swift deg med dette. Swift er ofte smart nok til å avlede type variabler og konstanter, noe som betyr at du ikke må eksplisitt deklarere typen av hver variabel eller konstant. I den følgende kodestykket, erklærer vi en variabel en og tilordne verdien "dette er en streng". Swift er smart nok til å utlede det en er av typen string.

var a = "dette er en streng"

Dette er et trivielt eksempel, men du finner ut at Swift også kan håndtere mer komplekse scenarier.

Variabler og Konstanter

Konstanter er nyttige i C og Objective-C, men de fleste utviklere bruker dem sparsomt. I Swift er konstanter like viktige og vanlige som variabler. Hvis verdien av en variabel ikke endres, må den variabelen være en konstant. Variabler erklæres ved bruk av Var søkeord. Konstanter er erklært ved hjelp av la søkeord.

var a = 1 // variabel la b = 1 // konstant

Dette forbedrer ikke bare hensikten, det forbedrer også sikkerheten ved å sørge for at variabelenes verdi ikke endres ved et uhell. Vi ser nærmere på variabler og konstanter senere i denne opplæringen.

semikolon

I Swift er det ikke nødvendig med semikolon. Du kan bruke semikolon, for eksempel å skrive flere setninger på samme linje, men de er valgfrie. Ta en titt på følgende eksempel for å bedre forstå bruken av semikolon i Swift.

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

Vi skraper bare overflaten. Du lærer om mange flere funksjoner og konsepter i hele denne serien. I stedet for å overbelaste deg med mer teori, foreslår jeg at du får føttene våte ved å skrive noen kode. Dette bringer oss til en av de beste funksjonene i Swift og Xcode: lekeplasser.

3. Lekeplasser

Apple introduserte lekeplasser i Xcode 6. Lekeplasser er det perfekte verktøyet for å lære Swift. En lekeplass er et interaktivt miljø der du kan skrive Swift og umiddelbart se resultatet. Ikke bare gjør det å lære Swift mer moro, det er mye raskere og mer intuitivt enn å sette opp et prosjekt i Xcode.

Faktisk er det så enkelt at du også kan hoppe inn og lage din første lekeplass. Åpne Xcode 8 og velg Ny> Lekeplass ...  fra Fil Meny. Navn lekeplassen og settet Plattform til iOS.

Fortell Xcode hvor du vil lagre lekeplassen og klikk Skape. I stedet for å lage et prosjekt med en masse filer og mapper, er en lekeplass ikke noe mer enn en fil med en .lekeplass forlengelse. En lekeplass er mer enn en fil under hetten, men det er ikke noe vi trenger å bekymre deg for nå.

Brukergrensesnittet du presenteres med, kan ikke være enklere. Til venstre ser du en kodeditor med en kommentar øverst, en importerklæring for import av UIKit-rammen, og en linje med kode som ikke skal være for vanskelig å forstå. Til høyre ser du utgangen eller resultatene som genereres av koden til venstre.

La oss ta et øyeblikk for å forstå koden i din nye lekeplass. Den første linjen skal se kjent om du har jobbet med Objective-C, PHP eller JavaScript. Kommentarer i Swift start med to fremoverstreker eller, når det gjelder multiline kommentarer, begynner med / * og avslutt med * /.

Fordi vi valgte iOS Som plattform da vi opprettet lekeplassen, la Xcode til en importerklæring for UIKit-rammen. Dette gir oss tilgang til hvert symbol som er definert i UIKIT-rammeverket.

Den tredje linjen ser kjent ut, men det er noen detaljer som trenger å avklare. Vi erklærer en variabel str og tilordne den en streng. Denne linjen med kode er lett å forstå, men merk at variabelenes navn går foran av Var søkeord i stedet for variabeltype som du forventer i Objective-C. Den samme uttalelsen i Mål-C ville se noe ut som dette.

NSString * str = @ "Hei, lekeplass";

I Mål-C ville vi erstatte Var søkeord med variabelenes type, prefiks strengen med en @ symbol, og avslutt setningen med et semikolon. Det er viktig å forstå at Var Søkeordet gjør det ikke erstatte type spesifiserer i mål-C. Det er ikke noe mer enn et søkeord for å indikere det str er en variabel, ikke en konstant. 

La meg forklare dette mer detaljert. Legg til følgende linje med koden til lekeplassen.

la hei = "hei lekeplass"

De la søkeord forteller kompilatoren det Hallo er en konstant, ikke en variabel. Både str og Hallo er av typen string, men str er en variabel og Hallo er en konstant. Forskjellen er enkel å forstå hvis vi legger til to flere linjer med kode.

str = "Dette er en variabel." hei = "Dette er en konstant."

Tilordne en ny verdi til str utgjør ikke et problem. Tilordne en ny verdi til Hallo, resulterer imidlertid i en feil. Xcode forteller oss at den ikke kan tilordne en ny verdi til Hallo, fordi Hallo er en konstant, ikke en variabel. Dette er en annen viktig egenskap ved Swift, som vil ta litt til å bli vant til.

Ideen er enkel. Hvis verdien av en variabel ikke skal endre, bør den være en konstant i stedet for en variabel. Selv om dette kan virke som en semantisk detalj, garanterer jeg at det gjør koden sikrere og mindre utsatt for feil. Vær forberedt, fordi du skal se la søkeord mye i denne serien.

Vi bruker lekeplasser i hele denne serien fordi det er en fin måte å lære språket på. Det er noen andre kraftige lekeplasser som vi ikke har dekket ennå, men vi må først forstå grunnleggende om Swift-språket før vi kan dra nytte av de.

Konklusjon

Jeg må fortsatt møte en utvikler som ikke liker Swift, og det sier noe. Swift har en rekke konsepter som krever at noen blir vant til, men jeg er sikker på at du også vil ende opp med å nyte Swift og sette pris på sin kraft, eleganse og konsisjon. I neste utgave av denne serien begynner vi å utforske grunnleggende om Swift.

Lær Swift

Vi har bygget en komplett guide for å hjelpe deg med å lære Swift, enten du er bare i gang med det grunnleggende eller du vil utforske mer avanserte emner.

Hvis du vil komme raskt og raskt med Swift-språket, sjekk ut kurset vårt på å lage iOS-apper med Swift.

Eller sjekk ut noen av våre andre opplæringsprogrammer og kurs på Swift og iOS-utvikling!