Skip to main content

Voorbereiding

De voorbereiding voor de les is niet optioneel. Ongeveer de helft van al het werk voor de opleiding moet je in eigen tijd uitvoeren, en daar hoort deze lesvoorbereiding ook bij. Als je de lesvoorbereiding niet hebt gedaan is het niet zinnig of zelfs hinderlijk om naar de les te komen.

  1. Lees uit het artikel "Forces on Architecture Decisions – A Viewpoint" de secties I en III.
  2. Bestudeer de methode 'Multi-criteria decision making' uit de ICT research methods
  3. Lees de onderstaande case study.

Case study

SofaScore, bekend van de voetbal app, is een bedrijf dat in 2009 is opgericht door drie studenten van de universiteit van Zagreb. Het bedrijf is inmiddels uitgegroeid tot een bedrijf met meer dan 100 werknemers en heeft naast het hoofdkantoor in Zagreb ook kantoren in Londen, Split en San Francisco. Het bedrijf heeft meer dan 20 miljoen gebruikers en is actief in meer dan 200 landen.

SofaScore is een bedrijf dat zich richt op het ontwikkelen van sport apps. De apps zijn beschikbaar voor iOS, Android en Windows. De apps zijn gratis te downloaden en te gebruiken. Het bedrijf verdient geld door advertenties te tonen in de apps. Daarnaast is het mogelijk om een abonnement af te sluiten waarmee de gebruiker geen advertenties meer te zien krijgt.

Voor de bouw van hun apps wordt een cross-platform framework gebruikt. Dit framework maakt het mogelijk om met één codebase apps te ontwikkelen voor meerdere platformen. Het bedrijf heeft in het verleden gebruik gemaakt van verschillende cross-platform frameworks. Zo is er gebruik gemaakt van PhoneGap, Titanium en Xamarin maar wil men de overstap maken naar React Native, een versie van React waarmee native apps gebouwd kunnen worden.

De app is opgebouwd uit een groot aantal componenten. Zo is er een component voor het tonen van een lijst met wedstrijden, een component voor het tonen van een wedstrijd en een component voor het tonen van een speler. De app maakt gebruik van een REST API om data op te halen. De app maakt gebruik van een aantal libraries zoals React Router en Axios.

Maak een decision forces tabel waarbij je diverse state management oplossingen met elkaar vergelijkt:

  1. Prop drilling met useState
  2. Context API (useContext)
  3. Reducer API (useReducer)
  4. Redux Toolkit

Vergelijk de oplossingen op de volgende punten:

  • Passend bij de complexiteit van het project
  • Performance
  • Ease of use / Learning curve
  • Community support
  • Integratie met en afhankelijkheid van andere libraries
  • Testability
  • Development experience, DevTools, Debugging capabilities
  • Voorspelbare state updates
  • Hoeveelheid boilerplate code