Bouw een interactieve app met SwiftUI.

Bouw een interactieve app met SwiftUI.

Wat gaan we maken?

Bekijk de twee onderstaande apps.

 

Hoe lijken ze op elkaar?

Hoe verschillen ze?

 

In deze les ga je een algoritme schrijven. 

Leg in je eigen woorden uit, hoe denk je dat het algoritme werkt.

 

In deze workshop leer je hoe je je eigen interactieve app kan maken met SwiftUI in Swift Playgrounds.

 

 

Over deze les

Programmeer een habit tracker app

Bouw een interactieve app met SwiftUI

 

Lesdoelen

  • Gegevens opslaan met variabelen
  • Voeg interactieve elementen toe aan je scherm
  • Schrijf een algoritme om verschillende weergaven te tonen met behulp van voorwaardelijke logica

 

Benodigde voorkennis

Voor deze les is geen voorkennis nodig, maar je zou kunnen overwegen om de lessen "Aan de slag met programmeren" en "Over mij" in Swift Playground van te voren te behandelen. 

 

Benodigdheden

  • Swift Playground app
  • iPad of Macbook
 

 

Voorbereiding

Voor de les heb je Swift Playground nodig op de iPad of op de Mac. Swift Playground is een gratis app en biedt leerlingen alles wat ze nodig hebben om hun eigen app te maken en deze te publiceren in de app store.

De tijdsinvestering van deze app is minstens 2 lesuren. Waarbij het eerste lesuren de docent stap voor stap alle stappen voordoet en de leerlingen volgen. Het tweede lesuur kunnen leerlingen gebruiken om of het algortime verder uit te bouwen of het design van de app aan te passen.

 

Over de auteur

Suzanne Lustenhouwer is docent Engels en sinds 2016 geef ik ook les in coderen en app-ontwikkeling vanuit het lesprogramma Iedereen kan programmeren van Apple. Daarnaast heb ik de aan de volgende projecten gewerkt om programmeren te integreren in het curriculum:

 

Indien je op zoek bent naar ondersteuning bij het implementeren van programmeeronderwijs kan je hier contact met mij opnemen.

Gegevens opslaan en wijzigen in een app.

 

 

 

Een nieuwe app maken

Tik in Playgrounds op "Nieuwe Playground" en dan op "app" op het scherm.

 

 

 

Haakjes tellen

Verwijder de wereldbolafbeelding en de tekstweergave, zodat je echt helemaal opnieuw kan beginnen.

SwiftUI werkt als een Russische Nesting Doll, een SwiftUI-app is opgebouwd uit meerdere lagen, waarbij elk de volgende inkapselt bij het toevoegen en verwijderen van elementen in je code. Zorg er altijd voor dat je evenveel openende haakjes { hebt als sluitende haakjes }.

Je krijgt een bug en je code stopt met draaien zodra dit niet klopt.

Verwijder het tekst en afbeelding element. Zorg ervoor dat je evenveel haakjes { heb die openen als sluiten.

 

 

Tekst toevoegen

Begin met het toevoegen van je eerste stuk tekst. In het voorbeeld van de mood tracker is dit de vraag. "Hoe gaat het vandaag?"

 

Een tekstweergave begint met Text(). Voeg het woord of de zin toe tussen de haakjes en tussen aanhalingstekens zodat het er als volgt uitziet:

Text(“Hoe gaat het vandaag?”)

 

Mogelijke fouten:

De hoofdletter T is belangrijk en onthoud dat elke haakjes ( en elk aanhalingsteken “ die je opent ook gesloten moet zijn.

Ga door met het toevoegen van meer tekstweergaven. Omdat ze in een VStack staan, worden ze verticaal gestapeld.

Voeg tekstelementen toe

 

De tekst interactief maken

Om de geslapen uren bij te werken, moet je van 6.5 een variabele maken.

 

Dit wordt gedaan tussen de ContentView en de body. Je kunt de plaats tussen contentView en body bekijken als het hoofd of de back-end van je app. Dit is waar alle logica en denkwerk plaats vindt.

 

@State var betekent dat dit een variabele is die een gebruiker kan wijzigen.

 

urenGeslapen Dit is de naam die je je variabele kunt geven. Het kan van alles zijn, maar het is het beste om het beschrijvend te maken om je code goed leesbaar te houden. Het moet één woord zijn, dus gebruik camelCase om woorden samen te voegen.

 

6.0 Is de waarde die wordt gezien de eerste keer dat de gebruiker dit scherm ziet, dus het kan ook beginnen met 0.0. Zorg ervoor dat je een decimaal gebruikt.

 

Hoe kan je nu urenGeslapen op je scherm zetten?

Voeg een variabele toe

 

Hoe zet je urenGeslapen op je scherm?

 

Dit kan worden gedaan met string-interpolatie. String interpolatie is een variabele in een tekstview plaatsen.

 

Text(“Ik heb \(urenGeslapen) uur geslapen”)

 

Met \() kun je variabelen toevoegen aan Text().

 

De bovenstaande code ziet er niet helemaal goed uit. Er worden te veel nullen op het scherm laten zien. Voeg .formatted() toe om ervoor te zorgen dat het alleen de benodigde decimalen toont.

 

Text(“Ik heb \(urenGeslapen.formatted()) uur geslapen vannacht")

 

Wat heeft dit voor zin? Het ziet er precies hetzelfde uit als het scherm op het vorige scherm? Dit is belangrijk omdat je nu een schuifregelaar (slider) kan toevoegen die de waarde van de variabele bijwerkt en live weergeeft in je Textview.

String interpolatie

 

Een schuifregelaar toevoegen

Om de waarde van de urenGeslapen-variabele te wijzigen, kunt u een schuifregelaar toevoegen.

 

De schuifregelaar verandert de waarde van $urenGeslapen. De $ wordt een binding genoemd. Dit zegt dat deze schuifregelaar wordt verbonden aan de waarde van @State var urenGeslapen.

 

in: schrijf de minimale en maximale waarden van de schuifregelaar.

step: schrijf met hoeveel de waarde wordt gewijzigd door te schuiven.

 

Gebruik de schuifregelaar om het getal te zien veranderen.

 

Schuifregelaar toevoegen

 

 

Logica toevoegen

Met behulp van if- en else-if-instructies kun je voorwaardelijke logica aan de app toevoegen. Met voorwaardelijke logica kan je beslissen wanneer je verschillende delen van de app wilt laten zien.

 

Gebruik logische operatoren om je algoritme complexer te maken.

 

== (equals) controleert of twee waarden gelijk zijn

>= (is groter dan of gelijk aan) controleert of een waarde groter of gelijk is

<= (is kleiner dan of gelijk aan) controleert of een waarde kleiner of gelijk is

!=  (is niet gelijk aan) Controleert of twee waarden niet gelijk zijn

&& (and) Geeft waar als zowel de voorwaarden aan de linker- als rechterkant waar zijn

|| (or) Geeft waar als ten minste één van de voorwaarden aan de linker- of rechterkant waar is.

! (not) Als de voorwaarde waar is, ! Maakt het onwaar; als de voorwaarde onwaar is, ! Maakt het waar.

Voorwaardelijke logica

 

Minimum viable product

Geweldig dat je nu je eerste app hebt gemaakt met een variabele, interactieve elementen en voorwaardelijk algoritme.

 

Om de app verder uit te bouwen kan je de volgende stappen herhalen:

 

Stap 1: Voeg een variabele toe

Stap 2: Voeg een interactief element toe

Stap 3: Pas het algoritme aan

 

Daarna kan je wat je hebt geleerd in “Over mij” gebruiken om het ontwerp van je app te veranderen.

 

Verdieping data types

Wanneer we een variabele of een constante in Swift maken, moeten we het gegevenstype opgeven. Dit vertelt de app wat voor soort informatie de eigenschap zal bevatten, en het helpt de app om die informatie efficiënter te beheren en te gebruiken.

Kijk naar de eigenschappen en match ze met het bijbehorende gegevenstype van de stapel aan de rechterkant.

 

De volgende variabele die je aan je gewoontetracker kan toevoegen, is een boolean. Een boolean geeft een waar of onwaar waarde.

 

Hierdoor werkt het goed met een schakelknop/toggle.

Welke andere gewoonten wil je bijhouden? Voeg nog minstens één variabele toe en schakel om.

 

Boolean toevoegen

 

Het algoritme verfijnen

Hoe meer variabelen er worden toegevoegd, hoe complexer het voorwaardelijke algoritme kan worden.

Het tekenen van een stroomdiagram kan je helpen het algoritme in kaart te brengen.

 

Verder leren

Als je verder wilt gaan met het bouwen van je eigen app, bekijk dan de suggesties van Apple het leren van programmeren binnen Playgrounds.

 

https://developer.apple.com/swift-student-challenge/get-ready/

 

Wil je verder gaan met het leren van andere programmeertalen kijk dan op: 
https://hedy.org

https://code.org/

scratch.mit.edu

Docentinformatie

Leerniveau

Deze les is ontwikkeld voor de onderbouw voortgezet onderwijs.

 

Tijdsduur

2 uur

 

Lesplanning

  • Een nieuwe app maken
  • Tekst toevoegen aan je app
  • De tekst interactief maken

  • Een schuifregelaar toevoegen

  • Voorwaardelijke logica

 

 

  • Het arrangement Bouw een interactieve app met SwiftUI. is gemaakt met Wikiwijs van Kennisnet. Wikiwijs is hét onderwijsplatform waar je leermiddelen zoekt, maakt en deelt.

    Auteur
    Suzanne Lustenhouwer
    Laatst gewijzigd
    2025-04-07 11:26:51
    Licentie

    Dit lesmateriaal is gepubliceerd onder de Creative Commons Naamsvermelding-GelijkDelen 4.0 Internationale licentie. Dit houdt in dat je onder de voorwaarde van naamsvermelding en publicatie onder dezelfde licentie vrij bent om:

    • het werk te delen - te kopiëren, te verspreiden en door te geven via elk medium of bestandsformaat
    • het werk te bewerken - te remixen, te veranderen en afgeleide werken te maken
    • voor alle doeleinden, inclusief commerciële doeleinden.

    Meer informatie over de CC Naamsvermelding-GelijkDelen 4.0 Internationale licentie.

    Aanvullende informatie over dit lesmateriaal

    Van dit lesmateriaal is de volgende aanvullende informatie beschikbaar:

    Toelichting
    In deze les maak je een interactieve app voor op je iPad of Mac met Swift Playground en de programmeertalen Swift & SwiftUI. Leerdoelen: Sla gegevens op met variabelen Voeg interactieve elementen toe aan je scherm Schrijf een algoritme om verschillende weergaven te tonen met behulp van voorwaardelijke logica
    Leerniveau
    VWO 2; HAVO 3; VWO 3; HAVO 2;
    Leerinhoud en doelen
    Kunst en cultuur; Produceren en presenteren; Media en communicatie; Techniek;
    Eindgebruiker
    leerling/student
    Moeilijkheidsgraad
    gemiddeld
    Studiebelasting
    2 uur 0 minuten
    Trefwoorden
    algoritmes, digitale geletterdheid, ict, informatica, ios app, mediawijsheid, programmeren, swift, swiftui
  • Downloaden

    Het volledige arrangement is in de onderstaande formaten te downloaden.

    Metadata

    LTI

    Leeromgevingen die gebruik maken van LTI kunnen Wikiwijs arrangementen en toetsen afspelen en resultaten terugkoppelen. Hiervoor moet de leeromgeving wel bij Wikiwijs aangemeld zijn. Wil je gebruik maken van de LTI koppeling? Meld je aan via info@wikiwijs.nl met het verzoek om een LTI koppeling aan te gaan.

    Maak je al gebruik van LTI? Gebruik dan de onderstaande Launch URL’s.

    Arrangement

    IMSCC package

    Wil je de Launch URL’s niet los kopiëren, maar in één keer downloaden? Download dan de IMSCC package.

    Voor developers

    Wikiwijs lesmateriaal kan worden gebruikt in een externe leeromgeving. Er kunnen koppelingen worden gemaakt en het lesmateriaal kan op verschillende manieren worden geëxporteerd. Meer informatie hierover kun je vinden op onze Developers Wiki.