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:


 

Lees uitgebreide achtergrond info en praktische workshops op je gemak in c't magazine okt/2021

Meer over

Software

Deel dit artikel

Lees ook

Scannen onder Linux – oude scanner gebruiken

Scannen onder Linux gaat vaak heel eenvoudig, ook oude scanners waar geen ondersteuning met speciale drivers meer voor geleverd wordt kun je nog gebru...

Monitor kalibratie & kleurbeheer onder Linux instellen

Matige monitorkalibratie en kleurbeheer van Linux is een (onterechte) reden voor fotografen en vormgevers om te twijfelen aan een overstap naar Linux.

Interessant voor jou

0 Praat mee
avatar
  Abonneer  
Laat het mij weten wanneer er