Swift programmeren – de Apple-programmeertaal

Marco den Teuling
0

Er zijn erg veel programmeertalen. Dat maakt kiezen lastig voor wie met programmeren begint of een andere taal wil aanleren. In Swift programmeren is een van de opties.

Swift is een rijzende ster onder de programmeer­talen. Bijna geen enkele andere taal heeft in korte tijd zo’n grote community opgebouwd. Bij het programmeren van apps voor
iPhones, iPads en computers met macOS kun je er dan ook nauwelijks omheen.

Swift programmeren logo

Swift programmeren

Apple heeft Swift helemaal nieuw ontworpen als opvolger voor het al wat verouderde en op C gebaseerde ­Objective-C. Sinds de eerste publicatie in 2014 heeft de taal een razendsnelle ontwikkeling doorgemaakt, met meerdere incompatibele veranderingen in de syntaxis. Ondertussen beloven de makers echter alleen kleine en compatibele verbeteringen.

Een hoge snelheid bij het uitvoeren en een goede leesbaarheid van de code waren belangrijke ontwerpcriteria. Zo is er een speciaal guard-statement bij Swift programmeren, dat kan worden gebruikt om voorwaarden te controleren voor het uitvoeren van erna volgende code. Als niet aan de voorwaarden voldaan wordt, moet de functie worden beëindigd. Swift onderscheidt constante waarden (gedeclareerd met let) en veranderlijke variabelen (gedeclareerd met var). Daardoor kan de compiler een aantal optimalisaties doorvoeren en is de code ook makkelijker te begrijpen.

Swift programmeren code

Swift onderscheidt veranderlijke variabelen (var) en constante waarden (let). Klassen definieer je met class.

Als een van de weinige talen dwingt Swift je optionele attributen te declareren, dat wil zeggen variabelen die nil (nul) kunnen zijn, met behulp van var attr:Type?. Dat voorkomt de gevreesde nul-verwijzingen – maar alleen als dat mechanisme niet wordt overschreven door de uitroepteken-operator: var attr:Type! wil zeggen dat de varia­bele niet meer nil is bij de eerste leestoegang, maar dat nog steeds kan zijn op het moment van de klasse-instantiëring.

Enumeraties (enums) zijn in Swift zeer krachtig en kunnen daarbij afhankelijk van de ­situatie zelfs verschillende typen waarden bevatten. Zo kan een enum voor een fout een error-object bevatten en bij een succesgeval het resultaat. De syntaxis is echter wel even wennen. Met extensions kunnen klassen (zowel eigen klassen als uit frameworks) worden uitgebreid met andere methoden en eigenschappen.

Geheugenbeheer, oftewel het vrijgeven van instanties die niet meer in gebruik zijn, gebeurt in Swift via Automatic Reference Counting. Het voordeel daarvan: in tegenstelling tot bij een asynchroon werkende garbage-­collector worden instanties altijd opgeruimd volgens een duidelijk gedefinieerde volgorde. Er zijn dus geen verrassende onderbrekingen in het programmaverloop. Dat betekent ook dat circulaire verwijzingen, oftewel klassen of closures die naar elkaar verwijzen, vermeden moeten worden. Dat kan worden bereikt met zwakke (weak) referenties.

Mac vereist

Voor je eerste stappen met Swift is een iPad of iPhone met de gratis app Swift Playgrounds genoeg. Het serieuzere werk als app ontwikkelaar is echter alleen mogelijk op Mac-hardware. Daarop maak je gebruik van de gratis en uiterst krachtige ontwikkelomgeving ­Xcode, die wat gewenning vergt. De problemen die Xcode aanvankelijk had bij het omgaan met Swift-code heeft Apple ondertussen vrij goed in de hand. Toch zijn er nog steeds situaties waarbij de IDE honderd procent van de cpu-tijd gebruikt of komt met vreemde foutmeldingen. Dat gebeurt bijvoorbeeld bij de moderne functionele UI-toolkit SwiftUI. Xcode compileert ook naar de nieuwe ARM-Macs.

De documentatie van de taal door Apple is voorbeeldig. Door de populariteit van Apple-­apparaten kun je op Stackoverflow of op speciale sites zoals raywenderlich.com een oplossing vinden voor bijna elk probleem. Door de snelle taalontwikkeling kom je echter vaak voorbeelden tegen met verouderde syntaxis, wat het voor beginners lastig maakt.

Een serie artikelen over verschillende andere talen vind je in c't sep/2020

Voor wie?

Swift is minder geschikt voor beginners. Ervaren programmeurs waarderen na enige gewenning de duidelijke en compacte vorm van de code en de hoge uitvoersnelheid. Als app ontwikkelaar voor Apple-apparaten kom je sowieso bij Swift terecht. Server Side Swift is een interessant en veelbelovend project om de taal beschikbaar te maken voor projecten buiten het Apple-­universum.

(Andreas Linke en Marco den Teuling, c’t magazine 9/2020, p. 87)

 


Blijf op de hoogte van de nieuwste informatie en tips!
Schrijf je in voor de nieuwsbrief:

Ontvang elke week het laatste IT-nieuws, de handigste tips en speciale aanbiedingen.

 

Lees uitgebreide achtergrond info en praktische workshops op je gemak in c't 05/2024

Meer over

Software

Deel dit artikel

Marco den Teuling
Marco den TeulingHad als eerste eigen computer ooit een 16-bit systeem, waar van de 48 kilobyte toch echt niet ‘genoeg voor iedereen’ was. Sleutelt graag aan pc’s, van de hardware tot het uitpluizen van de BIOS-instellingen. Vindt ‘Software as a Service’ een onbedoeld ironische naamgeving.

Lees ook

Dit kun je verwachten als je ChatGPT als hacking-tool wilt gebruiken

Kun je ChatGPT gebruiken als hacking-tool? We neigden naar de duistere kant en onderzochten of de assistentie van een AI van elke scriptkiddie een eli...

Raspberry Pi GPIO pinnen: een overzicht van de aansluitingen

Een kleine Raspberry Pi board is zo volgepakt met alle componenten dat er geen ruimte meer over was om de 40 GPIO pinnen van informatie te voorzien. O...

0 Praat mee
avatar
  Abonneer  
Laat het mij weten wanneer er