Week 5: Project plan maken met UML

1 / 24
next
Slide 1: Slide
Application DevelopmentMBOStudiejaar 2

This lesson contains 24 slides, with interactive quizzes and text slides.

time-iconLesson duration is: 60 min

Items in this lesson

Slide 1 - Slide

This item has no instructions

Ga er goed voor zitten

Slide 2 - Slide

This item has no instructions

Lesdoelen
  1. Jij kan uitleggen waarom de huidige state management niet goed is voor een grote app.

Slide 3 - Slide

This item has no instructions

Wat heb je nodig?
Laptop en de nieuwste versie van Dart. 


Slide 4 - Slide

This item has no instructions

Oude kennis
Oude kennis ophalen

Slide 5 - Slide

This item has no instructions

Wat is het probleem?
In grote apps met veel meer widgets, moeten wij de data managen.

Normaal gesproken doe je dit in de hoogste widget zodat meer Child widgets de data kunnen gebruiken. 

Slide 6 - Slide

This item has no instructions

Wat is het probleem?
Stel de ProductDetailPage widget heeft data nodig. 

Nu gaat vanuit MyApp data naar Products naar SingleProduct en uiteindelijk naar ProductDetail via de constructors. Dat terwijl die eerdere widgets niets te maken hebben met die data. 

Slide 7 - Slide

This item has no instructions

Wat is het probleem?
Hier aan de rechterkant zie jij een widget tree. Als iets van data wijzigt, dan zal deze de hele widget tree triggeren om te rebuilden zodat ProductDetailPage de juiste informatie heeft. Maar ook de widgets ertussen worden opnieuw gebouwd. Dit zorgt voor een performance impact!

Slide 8 - Slide

This item has no instructions

Wat is 'State' en 'State Management'?

Slide 9 - Slide

This item has no instructions

Wat is 'State' en 'State Management'?
State = Data which affects the UI (and which might change over time). 

Een voorbeeld hiervan is favorite. Dit is nou typisch een geval van State. 
State
Als je er goed over nadenkt dan is de UI een functie van je data (state). Als jouw data (state) wijzigt, dan veranderd dus ook jouw UI. 

Slide 10 - Slide

This item has no instructions

Wat is 'State' en 'State Management'?
Er bestaat app-wide state en widget (local) state

App-wide State
Widget (Local) State
Beïnvloed de gehele app
Heeft alleen invloed op een widget en geen ander. 
Authenticatie (is de gebruiker ingelogd?)
Moet een loading animatie worden geladen?
Loaded Products moeten geladen zijn
Form input check

Slide 11 - Slide

Is de gebruiker ingelogd?

Waarom is het een slecht idee om alle informatie (lees data) in de hoogste widget te beheren?

Slide 12 - Open question

This item has no instructions

De titel van de app wijzigt
MyApp
Product
ProductOverviewPage
ProductItem
ProductDetailPage

Slide 13 - Drag question

This item has no instructions

De prijs wijzigt van een product
MyApp
Product
ProductOverviewPage
ProductItem
ProductDetailPage

Slide 14 - Drag question

This item has no instructions

Alle producten krijgen een attribuut erbij dat alleen in een tegen wordt weergegeven
MyApp
Product
ProductOverviewPage
ProductItem
ProductDetailPage

Slide 15 - Drag question

This item has no instructions

The Provider Package & Pattern

Slide 16 - Slide

This item has no instructions

Provider- package & pattern
Deze package wordt door de Flutter team aangeraden en is zeer populair. 

Deze package zorgt lost veel frontend problemen op die wij nu tegen zijn gekomen.

Docent laat nu een tekening zien hoe dit werkt. 

Slide 17 - Slide

This item has no instructions

Provider- package & pattern schets
Bestudeer de tekening hoe de provider package de constructors 'omzeilt' zodat niet alle widgets in de widget tree geüpdatet hoeven te worden. 

Slide 18 - Slide

This item has no instructions

Pas kennis toe in eigen project
Pas kennis toe in eigen project

Slide 19 - Slide

This item has no instructions

Widget uitzoeken en toepassen
  1. Ga naar de YouTube pagina van Flutter
  2. Kies een widget waar je meer over wilt weten
  3. Pas deze toe in jouw project 

Slide 20 - Slide

This item has no instructions

Samenvatting
Nieuwe kennis samenvatten

Slide 21 - Slide

This item has no instructions

Lesdoelen
  1. Aan het einde van de les kunnen jullie een blauwdruk maken en overerven in JavaScript.
  2. Aan het einde van de les kunnen jullie een diagram in een blauwdruk omzetten.

Slide 22 - Slide

This item has no instructions

Wie vond deze les moeilijk te volgen of snel gaan?
Ik heb de les goed kunnen volgen
Het ging nog net. Ik moet het laten bezinken.
Het ging te snel/moeilijk.

Slide 23 - Poll

This item has no instructions

Vooruitblik
Wat gaan wij de volgende les doen?

Slide 24 - Slide

This item has no instructions