Swift is in drie jaar tijd één van de meest populaire programmeertalen ter wereld geworden. Het is makkelijk te leren, de mogelijkheden zijn uitgebreid en, niet onbelangrijk, het is gratis te gebruiken.

Sander van der Heide

 

IMG 0052 2Swift werd in 2014 door Apple geïntroduceerd en komt voort uit de taal Objective-C, ook ontwikkeld door Apple, wat in feite weer een laag is over de programmeertaal C. Zoals de naam al aangeeft, is het een object-georiënteerde programmeertaal. Dit wil zeggen dat je bepaalde gegevens in een object kan zetten, dat je alleen weer via bepaalde opdrachten kan benaderen. Objective-C is intussen al meer dan 30 jaar oud en wordt nog steeds gebruikt voor het programmeren van apps voor OSX en iOS. Aangezien deze twee besturingssystemen zover zijn doorontwikkeld, was het nodig om Objective-C ook aan te passen en wat simpeler te maken, zodat er sneller apps mee te programmeren zijn. Vandaar dat Swift een aangepaste versie is van Objective-C en dat deze talen uiteindelijk ook te combineren zijn.

Open Source

IMG 0051 2Ook al is Swift ontworpen door Apple, het is een open source besturingssysteem, net zoals Linux. De broncode van Swift valt onder de Apache 2.0 licentie en is vrijgegeven op Github. Apple heeft er zelfs een eigen community voor opgezet met een website op www.swift.org. Het doel van het project is om Swift naar meerdere platforms en toestellen over te zetten, zonder de afhankelijkheid van Objective-C van Apple. Op dit moment kan Swift gebruikt worden op een Mac of Linux-systeem, maar het is dus niet ondenkbaar dat dit straks ook op Windows kan. Swift is voortdurend in ontwikkeling en is intussen aanbeland bij versie 4.1.

Makkelijk

Schermafdruk 2018 03 02 19.47.00 2Swift wordt vaak omschreven als een makkelijke programmeertaal. Zeker als je de reclamefilmpjes van Apple mag geloven, kan iedereen binnen een paar stappen al een eigen app bouwen. In werkelijkheid ligt het toch wat gecompliceerder. Sterker nog, hoe verder je komt in Swift, hoe pittiger het wordt en zijn er toch ook nogal wat ‘bugs’ te vinden. En dan heb ik het niet over de bugs in jouw coderegels, maar in de daadwerkelijke computertaal Swift. Er zijn dan ook aardig wat voor- en tegenstanders te vinden van Swift. Het is eigenlijk niet zo belangrijk om te bepalen of Swift een makkelijke of moeilijke programmeertaal is, beter is het om je af te vragen of je met Swift moet beginnen als je nog niet kan programmeren, of het makkelijk is aan te leren en wat je er uiteindelijk allemaal mee kunt.

Dat laatste is misschien nog wel het makkelijkst te beantwoorden. Swift is namelijk gericht op het maken apps en dan niet alleen mobiele apps, maar voor alle platforms die Apple op dit moment rijk is: iOS, tvOS, macOS en Watch OS. Ja, je leest het goed, als je Swift onder de knie hebt, kun je voor een Apple Watch, Apple TV, iPhone, iPad en Mac-computers apps maken.

Er is ook een versie van Swift te downloaden voor Ubuntu. Swift kan namelijk ook op Linux gebruikt worden. Het enige wat daarmee niet kan is apps maken voor de Apple-platformen, je schrijft dus code die draait onder Linux.

Groentje?

Extra foto 2Als je nog nooit hebt geprogrammeerd en je wilt leren programmeren, dan is Swift een prima programmeertaal om mee te beginnen. Je hebt eigenlijk geen basiskennis nodig van programmeren en de instap is heel laag. Swift is daarom net zo makkelijk op een basisschool te gebruiken als je nog niets weet van programmeren, als op de universiteit wanneer je al enige ervaring hebt met andere programmeertalen. Net als Python, een andere programmeertaal waar Swift erg op lijkt, is Swift simpel opgebouwd maar heeft veel mogelijkheden. De code is makkelijk te lezen en dwingt je tot een goeie programmeerstijl. En daarnaast is er nog een factor die heel bepalend is: programmeren in Swift is leuk om te doen. Je kunt het in feite vergelijken met het leren van een vreemde taal als Engels of Frans. Het is vrij makkelijk te leren en binnen 1 of 2 lessen kun je al een paar zinnen opschrijven en ook begrijpen. Wil je echter een boek in het Frans of Engels schrijven, is er wel wat meer nodig dan het leren van een paar zinnen. Je zult er veel tijd in moeten steken en veel moeten oefenen. Het mooie van Swift is dat je al bezig bent in de taal waar je uiteindelijk ook je programma’s in zal schrijven, in tegenstelling tot een taal als Scratch, die je wel de basisbeginselen van programmeren meegeeft, maar waar je uiteindelijk geen complete programma’s mee kan schrijven.

Do you speak English?

Nu we het toch over taal hebben, er is toch één basisvereiste waaraan je moet voldoen wil je met Swift aan de slag gaan: je moet het Engels redelijk beheersen. Swift zelf is opgebouwd uit functies die in het Engels zijn opgesteld. Lees het volgende stukje code maar eens:

 

let firstMessage = "Swift is leuk."

let secondMessage= “Wat vind jij?”

var message = firstMessage + secondMessage

println(message)

Het resultaat:

Swift is leuk. Wat vind jij?

De uiteindelijke uitkomst is een stukje tekst in het Nederlands, maar de functies worden bepaald in het Engels. Over het algemeen is dit goed te volgen, maar hou er rekening mee dat het meeste studiemateriaal ook in het Engels wordt aangeboden en als je op een forum vragen wilt stellen, zal dit vaak op een Engels forum zijn.

Extra foto 4 2

Apple-apparatuur

Voordat je verdergaat om je eerste stappen met Swift te zetten en te leren om in Swift te programmeren, er is één vereiste: je hebt een Mac nodig of in ieder geval een iPad. Linux is natuurlijk ook een mogelijkheid, maar dat ik raad ik je alleen aan als je al wat verder bent met programmeren en ook daadwerkelijk Linux-programma’s wil gaan schrijven. Als je echt ook apps wil gaan maken, zul je toch ook nog een apparaat nodig hebben waarvoor je de app maakt, bijvoorbeeld een Apple Watch, iPod Touch (een stuk goedkoper dan een iPhone en werkt nagenoeg hetzelfde) of een Apple TV.

Xcode

Voor de Mac heeft Apple een ontwikkelomgeving gemaakt, XCode. Hierin bevinden zich allerlei tools voor alles wat je nodig hebt om een app van begin tot eind te ontwikkelen. Natuurlijk vind je hier een editor om je Swift-code te schrijven, inclusief een goeie debugger. Zo zie je heel gemakkelijk wanneer je iets fout hebt geschreven in de code of een functie aanmaakt die niet klopt. Verder zijn er Swift en Object-C compilers, een interface builder, analyse tools en verschillende simulators die bijvoorbeeld een iPhone op je beeldscherm tevoorschijn laten komen waar je je app op kan testen. Kortom alles wat je nodig hebt en het mooie is, het is gratis te downloaden vanaf de App Store.
xcode 9 hero large 2x 2
Nu nog een goeie handleiding of instructievideo die je de taal Swift kan uitleggen. Het web staat vol met cursussen, apps en video’s over programmeren met Swift, maar het handigste is gewoon te beginnen bij alle gereedschap die Apple ter beschikking stelt. Je kunt deze op verschillende plekken terugvinden.

iBooks

intro to app development in swift 2
Allereerst heeft Apple een paar hele goeie e-boeken in de iBookstore geplaatst. Ze zijn gratis te downloaden. Gewoon zoeken op ‘Swift’ en dan krijg je zeker 10 boeken voorgeschoteld die Apple over Swift heeft aangemaakt. Let daarbij goed op dat je een boek uitkiest dat past bij de versie van Swift waar jij mee gaat werken. Verder zul je ook boeken vinden waar ‘Teacher Guide’ bij staat, dit zijn de boeken die je leraar gebruikt als je ergens een Swift-cursus gaat volgen. De boeken die het meest interessant zijn heten ‘App Development with Swift’ en ‘Intro to App Development with Swift’. De boeken zijn in het Engels geschreven, maar heel overzichtelijk en duidelijk opgesteld. De boeken zijn interactief en gaan al van enige kennis uit, die in de vorm van meerkeuzevragen herhaaldelijk bij je getest wordt.

 

iTunes U

iTunes U is een iTunes-store met allerlei cursussen, inclusief cursusmateriaal als video’s, apps, PDF’s en oefeningen. Niet alleen van Apple, maar ook van universiteiten als Stanford, Yale en Harvard. Je kunt allerlei lessen volgens van talen tot en psychologie en van biologie tot informatica. En het is niet alleen gericht leerlingen, maar ook op leraren. Zo heeft Apple een beginnerscursus onder de noemer ‘Everyone Can Code’ genaamd ‘Swift Playgrounds: Learning to code 1&2’. Met een serie video’s waarin aan de hand van praktische voorbeelden, afgewisseld met video’s over het daadwerkelijke coden, stapsgewijs wordt uitgelegd hoe Swift werkt. Niet voor niets staat deze cursus hoog in de top 10, hij is duidelijk en overzichtelijk opgezet. Maar let wel: volledig in het Engels. Probeer vier of vijf video’s en je hebt snel door of het goed te volgen is. Wil je wat dieper op de materie ingaan en heb je al meer ervaring met object-georiënteerd programmeren, kijk dan eens naar de nummer 1 van de top 10, ‘Developing iOS 11 Apps with Swift’ van Stanford. iTunes U werkt overigens alleen op een iOS-apparaat als een iPhone of iPad.

Learn to code 2In de video’s van Learn to code worden praktische voorbeelden gegeven
om een programmeerprincipe begrijpelijk uit te leggen

Swift Playgrounds

IMG 0034 2
De Playgrounds zijn stuk voor stuk te downloaden of zelf aan te maken

 

 

 

Het beste hebben we voor het laatst bewaard: Swift Playgrounds. Swift Playgrounds is een iPad-app waarmee je spelenderwijs leert programmeren in Swift. Het misschien een beetje verwarrend, maar Swift Playgrounds is een soort verzamelplek voor kleine apps die werken met Swift

De opbouw is altijd hetzelfde: aan de linkerkant van je scherm heb je een gedeelte tekst met uitleg, daaronder een plek waar je je code kunt invoeren en rechts een live-weergave waar het resultaat is te zien van de uitgevoerde code.

IMG 0045 2

Apple heeft een paar Playgrounds (playground betekent speeltuin) aangemaakt waarin je kunt uitleven op het leren programmeren met Swift code. In deze eerder al genoemde cursus ‘Swift Playgrounds: Learn to code 1 & 2’, die je vindt in iTunes U, wordt je stap voor stap wijzer gemaakt. Door het oplossen van puzzels en het aanklikken van voorbepaalde codefuncties, verplaats je een klein wezentje genaamd Bit door allerlei opdrachten. Voordat je het beseft, leer je alle basisbeginselen van Swift als commando’s, functies, loops, parameters, voorwaarden, variabelen, operatoren en typen. Als je allebei de delen hebt doorgewerkt (en dan ben je echt wel een paar uur zoet geweest), kun je overstappen naar Playgrounds met specifieke uitdagingen. Zo maak je met allerlei functies een kleine game, die nog niet helemaal af was, werkend of kun je wat stoeien met Augmented Reality. Het formaat van deze Playgrounds, die dan ook de extensie .playground dragen, is ook te gebruiken in Xcode en door externe partijen. Dat betekent dat er naast Apple ook wat Playgrounds zijn te vinden voor bijvoorbeeld leraren die het leuk vinden om een opdracht met hun studenten te delen. Je kunt namelijk een Playground delen via een link. Het leuke is dat bedrijven als Sphero, Lego en Parrot de Playgrounds gebruiken als formaat om hun robots te programmeren. Deze vind je dan ook terug in de app. Ook als je niet van plan bent om apps te gaan ontwikkelen is Swift in combinatie met Playgrounds enorm leerzaam en leuk en daarom een enorme aanrader.

Extra foto 1 2

Voor Lego Mindstorm is er ook een Playground,
waarin wordt uitgelegd hoe je de functies kunt programmeren en waarmee je je eigen creaties kunt bedienen

Verder op het web

Nu Swift in 3 jaar tijd enorm populair is geworden, springen steeds meer cursuswebsites op de Swifttrein. De populaire site http://lynda.com heeft zelfs meerdere cursussen door verschillende instructeurs en op verschillende niveaus. Verder zijn er apps als Coursera, Udacity en Udemy, die hetzelfde doen. Wil je liever een leraar die in het Nederlands uitlegt via video’s en Nederlandse opdrachten, kun je terecht bij http://iosacademie.nl en http://everlearn.nl. Wie serieus een jaar opzij wil zetten om het onderste uit de kan te halen, kan terecht bij de Hogeschool van Arnhem en Nijmegen die zowel bacheloropleidingen als kortere beroepscursussen aanbieden onder het “iedereen kan programmeren”-programma van Apple. Het Ichthus Lyceum in Haarlem biedt deze cursussen voor scholieren aan.

Genoeg links en plekken dus waar je aan de slag kan met Swift. En zoals je hebt gelezen, kun je heel makkelijk zelf je instapniveau bepalen. Wie weet heb jij binnen een paar weken ook jouw eerste iOS-app gemaakt.

 IMG 0048 2

 

Woordenlijst

Apache Licentie - licentie voor open source software die gebruikers toestaat de software te gebruiken voor elk doel, te wijzigen of opnieuw te verspreiden.
Code - de leesbare tekst die in een programmeertaal is geschreven.
Compiler - verwerkingsprogramma dat een programma in een hogere programmeertaal (zoals Swift) vertaalt naar een lagere programmeertaal, meestal een assembleertaal of machinecode.
Debugger - onderdeel van een editor die alle fouten in je code zichtbaar maakt.
Gits - houden veranderingen bij van de verschillende versies van software.
Github - website, de hub, waar verschillende gits te vinden zijn. Vanwege de mogelijkheid hier als een gemeenschap gebruik van te maken zijn hier veel open source projecten te vinden.
iOS - besturingssysteem voor iPhone en iPad.
Open Source - filosofie waarbij de broncode van software vrij beschikbaar is, zodat iedere enthousiaste programmeur toevoegingen of verbeteringen kan aanbrengen.
OSX - versie 10 van Apples besturingssysteem, tevens het eerste waarbij Apple overging op UNIX, wat multitasking mogelijk maakt. Inmiddels is Apple weer overgestapt op de naam macOS.
Syntax - grammatica van de programmeertaal, met daarin de opbouw, volgorde, functies en codes die worden gehanteerd bij het invoeren van de instructies.
Ubuntu - is een linuxdistributie, ofwel een versie van Linux, aangevuld met extra software zoals een installatieprogramma.