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 programmeertalen. 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
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.
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 variabele 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.