4 tips over het gebruik van widgets binnen Mendix
Blog geschreven door Johan Munneke, Mendix Expert & Mendix MVP bij Aiden
Je herkent het vast wel: de klant heeft een probleem en je hebt een mooie oplossing in gedachten, maar je hebt nog geen idee hoe je dit gaat implementeren. Het moet er goed uit zien, goed werken en het moet natuurlijk gebruiksvriendelijk zijn. Er zijn vaak meerdere manieren om iets op te lossen, met elk zijn eigen voor- en nadelen. In dit blog geef ik vier tips over het gebruik van widgets binnen Mendix om je bewust te maken wanneer je kan overwegen om een widget in te zetten.
Tip 1: Je kan veel oplossen met standaard Mendix componenten, maar wees niet bang om widgets in te zetten indien nodig
Vaak kom je met standaard Mendix componenten, eventueel met wat styling, al een heel eind. Maar soms zal dit niet helemaal voldoen. Je kan wel iets maken, maar hiervoor moet je een hoop trucs uithalen en je twijfelt er wellicht nog over of het de juiste manier is. Op dit soort momenten kan je ook gaan nadenken of dit wel iets is wat je met standaard componenten wil oplossen, of dat bijvoorbeeld een pluggable widget de uitkomst biedt.
Vaak wordt ervoor gekozen om geen widgets te gebruiken om verschillende redenen: widgets zijn moeilijker te onderhouden of te ontwikkelen en je bent afhankelijk van iemand anders voor eventuele updates. Maar als je een hoop trucs moet uithalen wanneer je standaard componenten gebruikt, kan dit ook veel werk zijn om te ontwikkelen. En soms is het zelfs lastiger om dit te onderhouden of om te begrijpen.
Het kan ook zo zijn dat je de oplossing moet aanpassen aan wat standaard mogelijk is. Je moet jezelf de vraag stellen of dit de juiste keuze zal zijn of dat je beter wat moeite kunt steken in het ontwikkelen van iets dat er misschien wat moeilijker uitziet, maar dat je maar één keer hoeft op te zetten en voor vergelijkbare vragen opnieuw kunt gebruiken.
Zo kreeg mijn team een tijdje terug de vraag om een planning applicatie te bouwen. In deze applicatie moet het duidelijk zijn wie wanneer ingepland is en de planning moet eenvoudig aan te passen zijn. Met een aantal list views zal je al een eind kunnen komen om zoiets te tonen, maar je zal nooit een complete planning applicatie kunnen maken die een hoop data kan laten zien en die ook nog goed presteert. Laat staan dat de applicatie ook functionaliteiten bevat als drag & drop, het aanpassen van activiteiten en het zaken op de minuut nauwkeurig kan laten zien. Op het moment dat we voor onszelf hadden opgeschreven wat de verwachting was, kwamen we snel tot de conclusie dat dit niet met standaard componenten gebouwd zou kunnen worden en er een widget benodigd was.

Tip 2: Probeer niet het wiel opnieuw uit te vinden
Sinds Mendix 8 worden widgets gebaseerd op React, wat nieuwe mogelijkheden biedt. Eén van de grote voordelen is dat er veel externe libraries beschikbaar zijn in React, die je nu eenvoudig kan hergebruiken in je eigen widgets. Je kan op deze manier gebruik maken van wat al beschikbaar is, waardoor je niet meer alles zelf hoeft te ontwikkelen en telkens ‘het wiel opnieuw moet uitvinden’. Zeker bij grote componenten, zoals ik bij de planning widget eerder beschreef, biedt dit veel mogelijkheden. Als je dit helemaal van de grond af moet opbouwen, ben je weken bezig.
Nu kan je met een aantal regels code de basis van het component hergebruiken en kan je data vanuit Mendix gebruiken. Je hoeft alleen nog maar de communicatie tussen Mendix en de widget te implementeren en ervoor zorgen dat de widget makkelijk bruikbaar is voor andere ontwikkelaars, maar er is al veel logica geïmplementeerd in de library. Ook als de library nog niet alle functionaliteiten ondersteunt die je nodig hebt, kan je je eigen logica toevoegen.
Tip 3: Denk niet te groot, ook kleinere componenten kunnen de gebruikservaring verhogen
Niet alle widgets hoeven groot te zijn. Er zijn ook een hoop kleine componenten die het gebruiksgemak kunnen verhogen. Denk hierbij aan een datetime picker, loading skeleton, toast notificaties of een autocomplete widget. Dit zijn allemaal voorbeelden van componenten die het gebruiksgemak en gebruikersinterface kunnen verbeteren, zonder dat je dagen of weken bezig hoeft te zijn met het ontwikkelen van maatwerk.

Tip 4: Widgets kunnen opnieuw gebruikt worden voor vergelijkbare vragen
Vaak wanneer iemand iets vraagt wat standaard niet mogelijk is, wordt er geprobeerd om een andere manier te zoeken. Dit is natuurlijk logisch, want de standaard componenten kennen we allemaal goed en zijn door en door getest door Mendix. Maar, dit zou niet ten koste moeten gaan van het gebruiksgemak. Vaak zul je ook tegen dezelfde soort vragen aanlopen bij meerdere projecten. Dan kan het dus zeker de moeite waard zijn om een paar dagen te investeren om een pluggable widget te maken en zo het gebruiksgemak bij verschillende applicaties te verhogen en het wellicht hiermee ook voor je mede-ontwikkelaars en jezelf in de toekomst makkelijker maken. Daarnaast zijn er dus een hoop componenten in React beschikbaar die ook uitgebreid getest zijn.
Niet iedereen hoeft pluggable widgets te gaan ontwikkelen, want hiervoor is ook specifieke kennis nodig en het is ook in een beperkt aantal scenario’s nodig. Het is wel goed om te weten wanneer je kan overwegen om er één te gebruiken.
Mocht je zelf geen pluggable widgets willen of kunnen ontwikkelen, maar heb je wel goede ideeën, dan is er wellicht een collega die je hiermee kan helpen! Als je geïnteresseerd bent in het ontwikkelen van widgets, zijn er verschillende bronnen om je op weg te helpen, bijvoorbeeld learning paths, how-to’s, online trainingen, Mendix forum en documentatie. Zie de volgende links voor meer informatie:
Als je meer wilt weten over de widgets die ik tot nu toe heb ontwikkeld, kan je altijd contact met mij opnemen! Later dit jaar zullen wij een evenement organiseren over widget development. Volg Aiden en mijn account om hiervan op de hoogte te blijven en over andere toekomstige evenementen.