In 2014 nam Apple de ontwikkelaarsgemeenschap overrompeld met de introductie van Swift, een geheel nieuwe programmeertaal. Swift heeft een lange weg afgelegd, en het is moeilijk te geloven dat de taal dit jaar zijn derde verjaardag viert. Een paar maanden geleden bracht Apple Swift 3 uit, een belangrijke mijlpaal voor de taal. In deze serie leer ik je de basisprincipes van Swift 3.
Swift voelt vertrouwd als je Objective-C hebt gebruikt om iOS- of macOS-applicaties te ontwikkelen, maar er zijn een aantal belangrijke verschillen. Ik zal deze serie schoppen door je te laten zien in welke opzichten Swift verschilt van Objective-C en waarom die verschillen een goede zaak zijn. Laten we beginnen.
In deze reeks verwijs ik naar Objective-C en vergelijk ik de Swift-programmeertaal met Objective-C. Echter, om mee te volgen, is er geen behoefte om vertrouwd te zijn met Objective-C.
Dat gezegd hebbende, is het belangrijk dat je ervaring hebt met een programmeertaal. Terwijl deze serie zich concentreert op Swift, behandelt het niet de basis van programmeren. Ik verwacht dat je bekend bent met variabelen, constanten, functies, besturingsstroom en objectgeoriënteerd programmeren.
Als u bekend bent met Objective-C, Java, Ruby, PHP of JavaScript, dan zult u geen problemen ondervinden bij het begrijpen van de concepten die in deze serie worden uitgelegd. In feite zul je merken dat Swift gelijkenissen deelt met een aantal populaire programmeertalen, waaronder Objective-C.
Swift 3 wordt alleen ondersteund door Xcode 8 en u moet de nieuwste versie van Apple's IDE (Integrated Development Environment) installeren om te volgen. Je kunt Xcode downloaden vanuit de App Store of via het Developer Center van Apple.
Vergeleken met Objective-C of Java is Swift een expressieve, bondige taal die me vaak doet denken aan Ruby en JavaScript. Hoewel de maker van Swift, Chris Lattner, zich liet inspireren door andere talen, is Swift een taal die op eigen benen staat.
Zoals je wellicht weet, is Objective-C een strikte superset van C. Swift, maar dat is het niet. Terwijl Swift accolades gebruikt en verschillende trefwoorden deelt met de C-programmeertaal, is het niet compatibel met C.
Swift is een moderne programmeertaal die intuïtief aanvoelt, vooral als je gewend bent aan Java of C-gebaseerde programmeertalen zoals Objective-C. Tijdens de ontwikkeling en het ontwerp van Swift concentreerde Chris Lattner zich op een aantal sleuteleigenschappen die uiteindelijk de taal bepaalden.
Veiligheid is een van de pijlers van Swift. In deze serie leert u snel dat Swift heel verschillend is van Objective-C in termen van veiligheid, en dit heeft direct invloed op de code die u schrijft. Als je met Objective-C hebt gewerkt, is dit even wennen.
Chris Lattner ontwierp ook de LLVM (Low Level Virtual Machine) -compiler, en het zou geen verrassing moeten zijn dat Swift is gebouwd met de LLVM-compiler. Het resultaat is snelheid, kracht en betrouwbaarheid. Swift is aanzienlijk sneller dan Objective-C in de meeste scenario's. Lees dit artikel van Jesse Squires als je geïnteresseerd bent in de subtiele details.
Type veiligheid is een van Swift's belangrijkste kenmerken. Swift inspecteert uw code tijdens het compileren en waarschuwt u voor mismatches van het type. Dit betekent dat u fouten vroegtijdig kunt herkennen en een aantal veelvoorkomende fouten kunt voorkomen.
Gelukkig helpt Swift je hiermee. Swift is vaak slim genoeg om het type variabelen en constanten af te leiden, wat betekent dat u niet het type van elke variabele of constante expliciet hoeft aan te geven. In het volgende codefragment verklaren we een variabele een
en wijs het de waarde toe "dit is een string"
. Snel is slim genoeg om dat af te leiden een
is van het type Draad
.
var a = "dit is een string"
Dit is een triviaal voorbeeld, maar u zult ontdekken dat Swift ook meer complexe scenario's aankan.
Constanten zijn handig in C en Objective-C, maar de meeste ontwikkelaars gebruiken ze spaarzaam. In Swift zijn constanten net zo belangrijk en vaak voorkomend als variabelen. Als de waarde van een variabele niet verandert, moet die variabele een constante zijn. Variabelen worden gedeclareerd met behulp van de var
trefwoord. Constanten worden aangegeven met behulp van de laat
trefwoord.
var a = 1 // variabele laat b = 1 // constant
Niet alleen verbetert dit de intentie, het verbetert ook de veiligheid door ervoor te zorgen dat de waarde van de variabele niet per ongeluk wordt gewijzigd. We bekijken variabelen en constanten later in deze tutorial.
In Swift zijn puntkomma's niet vereist. U kunt bijvoorbeeld puntkomma's gebruiken om meerdere instructies op dezelfde regel te schrijven, maar deze zijn optioneel. Bekijk het volgende voorbeeld om het gebruik van puntkomma's in Swift beter te begrijpen.
var a = 1 var b = 2 var c = 1; var d = 2;
We krabben alleen maar aan het oppervlak. In deze serie leer je over veel meer functies en concepten. In plaats van je te overladen met meer theorie, raad ik je aan om je voeten nat te maken door een code te schrijven. Dit brengt ons bij een van de beste functies van Swift en Xcode: speeltuinen.
Apple introduceerde speelplaatsen in Xcode 6. Speelplaatsen zijn de perfecte tool om Swift te leren. Een speeltuin is een interactieve omgeving waarin je Swift kunt schrijven en direct het resultaat kunt zien. Het maakt Swift niet alleen leuker, het is veel sneller en intuïtiever dan het opzetten van een project in Xcode.
Het is trouwens zo eenvoudig dat je net zo goed kunt instappen en je eerste speeltuin kunt maken. Open Xcode 8 en selecteer Nieuw> Speeltuin ... van de het dossier menu. Geef de speelplaats een naam en stel deze in Platform naar iOS.
Vertel Xcode waar je de speeltuin wilt opslaan en klik creëren. In plaats van een project met een aantal bestanden en mappen te maken, is een speeltuin niets meer dan een bestand met een .speelplaats uitbreiding. Een speeltuin is meer dan een bestand onder de motorkap, maar daar hoeven we ons nu geen zorgen over te maken.
De gebruikersinterface die u krijgt, kan niet eenvoudiger zijn. Aan de linkerkant ziet u een code-editor met bovenaan een opmerking, een importinstructie voor het importeren van het UIKit-framework en een regel code die niet al te moeilijk te begrijpen is. Aan de rechterkant ziet u de uitvoer of resultaten die worden gegenereerd door de code aan de linkerkant.
Laten we een moment nemen om de code in uw nieuwe speeltuin te begrijpen. De eerste regel moet bekend voorkomen als u met Objective-C, PHP of JavaScript hebt gewerkt. Opmerkingen in Swift beginnen met twee schuine strepen of, in het geval van multilijn commentaar, beginnen met / *
en eindigen met * /
.
Omdat we hebben geselecteerd iOS als platform toen we de speeltuin vormden, voegde Xcode een importverklaring toe voor het UIKit-framework. Dit geeft ons toegang tot elk symbool dat is gedefinieerd in het UIKit-framework.
De derde regel ziet er bekend uit, maar er zijn een paar details die verduidelijking behoeven. We verklaren een variabele str
en wijs er een string aan toe. Deze regel code is gemakkelijk te begrijpen, maar houd er rekening mee dat de naam van de variabele wordt voorafgegaan door de var
sleutelwoord in plaats van het type van de variabele zoals je zou verwachten in Objective-C. Dezelfde bewering in Objective-C zou er ongeveer zo uitzien.
NSString * str = @ "Hallo, speeltuin";
In Objective-C zouden we de var
sleutelwoord met het type van de variabele, voorzie de tekenreeks met een @
symbool en beëindig de instructie met een puntkomma. Het is belangrijk om te begrijpen dat de var
trefwoord niet vervangen de typespecificatie in Objective-C. Het is niets meer dan een sleutelwoord om dat aan te geven str
is een variabele, geen constante.
Laat me dit in meer detail uitleggen. Voeg de volgende regel code toe aan de speeltuin.
hallo = "Hallo, speeltuin"
De laat
keyword vertelt de compiler dat Hallo
is een constante, geen variabele. Beide str
en Hallo
zijn van het type Draad
, maar str
is een variabele en Hallo
is een constante. Het verschil is eenvoudig te begrijpen als we nog twee regels code toevoegen.
str = "Dit is een variabele." hallo = "Dit is een constante."
Een nieuwe waarde toewijzen aan str
vormt geen probleem. Een nieuwe waarde toewijzen aan Hallo
, dit levert echter een fout op. Xcode vertelt ons dat het geen a kan toewijzen nieuwe waarde voor Hallo
, omdat Hallo
is een constante, geen variabele. Dit is een ander belangrijk kenmerk van Swift, dat zal even wennen zijn.
Het idee is eenvoudig. Als de waarde van een variabele niet gaat veranderen, moet deze een constante zijn in plaats van een variabele. Hoewel dit een semantisch detail lijkt, garandeer ik dat het uw code veiliger maakt en minder vatbaar voor fouten. Wees voorbereid, want je gaat het zien laat
sleutelwoord veel in deze serie.
We gebruiken speeltuinen uitgebreid in deze serie omdat het een geweldige manier is om de taal te leren. Er zijn een paar andere krachtige speeleigenschappen die we nog niet hebben besproken, maar we moeten eerst de basis van de Swift-taal begrijpen voordat we kunnen profiteren van die.
Ik moet nog steeds een ontwikkelaar ontmoeten die niet van Swift houdt, en dat zegt iets. Swift heeft een aantal concepten waaraan je moet wennen, maar ik ben er zeker van dat jij ook zult genieten van Swift en de kracht, elegantie en beknoptheid zult waarderen. In de volgende aflevering van deze serie gaan we de basis van Swift verkennen.
We hebben een complete gids samengesteld om je te helpen snel te leren, of je nu net begint met de basis of als je meer geavanceerde onderwerpen wilt verkennen.
Als je snel met de Swift-taal aan de slag wilt, bekijk dan onze cursus over het maken van iOS-apps met Swift.
Of bekijk enkele van onze andere tutorials en cursussen over Swift- en iOS-ontwikkeling!