Ebby Bouwer

Vraag niet beantwoord? Chat met mij..

Bellen of mail kan ook.

Meer weten?

chat-icon
Wie bouwt het snelste de beste app?
bmi calculator

Wie bouwt het snelste de beste app?

Ik was onlangs in gesprek met een vriend over Mendix, in het bijzonder over de voordelen van model-driven development en hoe makkelijk het is om applicaties te programmeren door middel van modellering, in plaats van het ontwikkelen via het schrijven van code. Omdat hij een hardcore ontwikkelaar is, was hij nogal sceptisch over de mogelijkheden van model-driven development – wat Mendix is – en vooral mijn claim dat je nieuwe functies binnen enkele minuten kan ontwikkelen en dat dit, geen dagen of weken meer hoeft te duren.

Revised QSM benchmark

Figuur 1

Toen hij me niet geloofde, liet ik hem de onderzoeken van externe partijen zien die het Mendix platform hebben bestudeerd en beoordeeld. Zowel Capgemini en Quantitative Software Management (QSM) hebben het platform geëvalueerd. In de meest recente evaluatie van QSM (figuur 1) analyseren ze de delivery snelheid van nieuwe applicaties. Het vergelijk ging tussen Mendix en traditionele ontwikkelmethoden. Uit het rapport kwam naar voren dat Mendix zorgde voor een 6x hogere productiviteit ten opzichte van traditionele ontwikkelmethoden. Helaas, was mijn vriend nog steeds niet overtuigd en had zelf nog nooit met het platform gewerkt. We besloten elkaar uit te dagen voor een vriendschappelijke wedstrijd. Wat hier uitkwam was heel positief en ik kon het niet laten dit te delen.

De uitdaging

We wilden iets dat snel te programmeren was. Het moest eenvoudig zijn en geen uren kosten om te ontwikkelen. We gingen voor een ??BMI-calculator. Een klein programma dat je BMI berekent op basis van je lengte en gewicht. Dit geeft aan of je een gezond gewicht hebt. De stopwatch werd er bij gepakt en op het signaal "GO" gingen we beide aan de slag. Mijn vriend was bezig een begin te maken met zijn code en het verklaren van zijn waardes (float height = 0 etc.). Ik was aan het werk in de Domain Modeler, hier definieer ik de onderliggende datastructuur.

Domain Modeler: patient info

In onze uitdaging moest de BMI worden berekend voor een persoon – de patiënt. Voor de patiënt heb ik een entiteit gemaakt en daarin houden we enkele gegevens bij zoals gewicht, lengte, eenheid en het berekende BMI getal (figuur 2). In Mendix ziet dat er als volgt uit:

Entiteit PatientInfo in Mendix

Figuur 2

Voor mijn vriend, die druk bezig was in Java zag het er iets anders uit (figuur 3). Java tegenhanger

Figuur 3

Terwijl mijn vriend druk zijn verklaringen aan het schrijven was voor de gebruikers, zoals System.out.println (“Voer uw gewicht"), was ik al bezig met de gebruikersinterface (UI) van de applicatie en was ik aan het 'Googelen' naar een geschikte BMI-grafiek.

Mendix BMI applicatie

Figuur 4

In dit voorbeeld (figuur 4) zie je een eenvoudige pagina die het mogelijk maakt dat de patiënten hun gewicht en hun lengte in kunnen invoeren. Wanneer op de knop “What is my BMI?” klikt wordt, wordt direct de BMI berekend. Zo’n pagina is met Mendix snel en eenvoudig te bouwen met behulp van vooraf ingebouwde templates. Voor mij als ontwikkelaar ziet het er bijna hetzelfde uit, je kan met Mendix namelijk volledig visueel je applicatie bouwen (figuur 5).

Visuele interface developer in Mendix

Figuur 5

Gezien onze korte uitdaging is het in Java slechts mogelijk in een paar minuten een applicatie te ontwikkelen die werkt via een console en wat platte tekst teruggeeft (figuur 6).

Beperkte java interface

Figuur 6

Visueel ontwikkelen

Het beste deel van de ontwikkeling in Mendix is de microflow visualisatie. Terwijl mijn vriend bezig was met het schrijven van code voor zijn berekeningen en vervolgens bezig was met het oplossen van zijn syntaxfouten, was ik bezig met het visueel bouwen van mijn berekeningen in een microflow (figuur 7). De microflow in deze applicatie wordt aangeroepen zodra de gebruiker op de knop “What is my BMI?” klikt.

Mendix Microflow voor BMI

Figuur 7

Vervolgens was er om de app te laten werken 1 formule nodig om de BMI te kunnen berekenen (figuur 8). De formule is: Gewicht / (Lengte * Lengte) en in Mendix ziet dat er als volgt uit:

BMI formule in Mendix

Figuur 8

Resultaten

Het spreekt voor zich dat ik de wedstrijd won, zowel in de tijd (2 minuten versus 10 minuten) en in het eindresultaat (een mooie UI voor gebruikers om hun gewicht en lengte in te voeren en de berekening van hun BMI versus eenvoudige inputvelden). Mijn aanpak met Mendix had als voordeel dat ik direct met een UI en vervolgens een stuk logica in de vorm van een microflow kon beginnen. Ik verloor geen kostbare tijd aan het controleren of een ingevoerde waarde wel correct was. Mendix controleert automatisch of het ingevoerde type overeenkomt met het type dat we in de Domain Modeler hebben gekozen (figuur 9). Als je verder wilt gaan, kan je met Mendix ook eenvoudig nog validaties toevoegen op een veld – denk de lengte moet liggen tussen 1 en 2,5m.

Mendix validatie op velden

Figuur 9

Bovendien, hoef ik me geen zorgen te maken over syntaxfouten. De Mendix Modeler – waarin je werkt als ontwikkelaar – vertelt je direct als er iets ontbreekt of verkeerd gaat. Zo kan je gericht aan de slag met de logica van de applicatie. Hierdoor besteed je tijd aan het bedenken en ontwerpen van de beste oplossing voor de gebruiker in plaats van het schrijven van code en achterhalen waarom de code niet werkt vanwege een syntaxfout. Mijn vriend was overtuigd, veel klanten van ons ook. De vraag is nu, ben jij dat ook? Start met het bouwen van je eerste applicatie in Mendix.

Bob vdP
Kan ik met je meedenken?

Wil je een prijsindicatie of
sparren over de mogelijkheden?

Mail Bob van der Panne of bel
0618488698