Ga direct naar navigatie Ga direct naar hoofdcontent
Tijdelijk niet beschikbaar

Woensdag 19 juni 2019 is onze website tussen 7:00 en 9:00 uur niet beschikbaar.

5 uitgangspunten bij het ontwikkelen van apps

Marc van der Loo

Marc van der Loo

Softwareontwikkelaar - Belastingdienst

Bij het Mobile Competence Center van de Belastingdienst maakt een team van veertig ontwikkelaars, ontwerpers en software-testers verschillende apps en backend systemen voor belastingdienst, douane en andere overheidspartijen. Het MCC ontwikkelt apps voor burgers, maar ook apps voor intern gebruik. Het bekendste zijn de aangifte-app waarmee je de jaarlijkse belasting-aangifte doet en de app “Douane Reizen” waarmee je inzicht krijgt in of en hoeveel invoerrechten je moet betalen als je bepaalde goederen meeneemt vanuit het buitenland. Een voorbeeld van intern gebruik is een app voor douaniers om inkomende goederen en containers te controleren en bevindingen automatisch te registreren in de backend systemen van de belastingdienst. Softwareontwikkelaar Marc van der Loo van het MCC vertelt wat de belangrijkste uitgangspunten zijn bij het ontwikkelen van deze ingewikkelde apps.

Kennis van de business

Bij het ontwikkelen van software is businesskennis een vereiste. Voordat je begint te coderen, moet je immers goed weten wat je gaat maken. Van der Loo: “Onze Aangifte-app verwerkt alle gegevens van een belastingplichtige, zoals inkomen, woning en spaargeld. Dit wordt omgezet in een belastingaangifte en de app laat direct zien hoeveel je terugkrijgt of moet betalen.” Om deze berekeningen te kunnen uitvoeren, is een groot deel van het belastingwetboek in de app verwerkt. “De uitdaging als ontwikkelaar is vooral het juist interpreteren van de regels. Dit doe je natuurlijk niet alleen. Samen met ontwerpers en fiscale experts bepaal je hoe de verschillende belastingregels in de app verwerkt kunnen worden.” Als ontwikkelaar moet je deze regels vervolgens wel op de juiste manier implementeren, want met twee miljoen potentiële app-gebruikers zijn de gevolgen van fouten aanzienlijk.

  • Presentatielogica scheiden van bedrijfslogica

    Voor het ontwikkelen van apps gebruiken ze bij het MCC het Xamarin platform. Hiermee schrijven ze native iOS, Android en Windows Phone apps in C#. “Xamarin is gebaseerd op Mono en is een open source implementatie van het Microsoft .Net platform”, licht van der Loo toe. “Met als grote voordeel dat veel van de door ons ontwikkelde code hergebruikt kan worden op de verschillende platformen.” Door een strakke scheiding te maken tussen business logica en presentatie logica, kan het percentage hergebruik zelfs oplopen tot meer dan 90%. “Door je applicatie zoveel mogelijk ‘Model driven’ op te zetten en gebruik te maken van het Model-View-ViewModel (MVVM) pattern, zijn dergelijke percentages goed haalbaar.” Het op het businessmodel gebaseerde ViewModel bepaalt hierbij wat er gepresenteerd wordt. Vervolgens bepaalt de view hoe dat gepresenteerd wordt. “Het mooie van deze aanpak, is dat wijzigingen vanuit de business in het model worden doorgevoerd. Om nieuwe informatie op een scherm te tonen hoeft alleen het model te worden aangepast.”

    Aansluiten op bestaande omgeving

    Een app staat meestal niet op zichzelf, maar wordt door interne systemen van content voorzien. Van der Loo: “De belastingdienst kent veel interne systemen waar apps mee communiceren. Zo koppelt de app ‘Douane reizigers aangiftebehandeling’ met wel zeven interne systemen om gegevens te ontsluiten en eventueel toe te voegen.”De grote uitdaging voor een ontwikkelaar is het vinden van de juiste personen die kunnen helpen om deze koppelingen te realiseren. “De koppelingen zelf zijn vaak onzichtbaar voor een app. Ze worden namelijk in het app-specifieke backend gedeelte geïmplementeerd dat in Java wordt gebouwd. Ontsluiting naar de app loopt vervolgens via een REST-JSON web-service.” Ook de aangifte-app koppelt met allerlei interne systemen om gegevens te downloaden en de aangifte te verzenden. “Het ophalen van gegevens gaat via een web-interface, waarbij nog een uitstapje naar DigiD wordt gemaakt. Het insturen van gegevens gaat via een SOAP web-service.”

    Beveiliging

    De apps van de Belastingdienst werken met uiterst gevoelige informatie. Daarom is beveiliging belangrijk. “De meeste apps worden beveiligd met een pincode”, vertelt van der Loo. “Die wordt ook gebruikt voor de versleuteling van opgeslagen gegevens.” Een ontwikkelaar bepaalt samen met de software-architect welke vorm van beveiliging het beste past bij een specifieke app. “Er wordt vaak gebruik gemaakt van SQCipher databases voor de opslag van gegevens in apps. Als het nodig is om bestanden naar het filesysteem weg te schrijven, worden deze bestanden versleuteld via standaard .Net functionaliteit uit System.Security.Cryptography.” Een ander aandachtspunt is de communicatie met de backend. “Via SSL-Pinning kunnen wij bepalen of de server waarmee gecommuniceerd wordt wel de echte is, om te voorkomen dat middels een ‘man-in-the-middle’-aanval gegevens worden gestolen.” Apps ondergaan verder een Attack & Penetration test en voor ontwikkelaars is het de uitdaging om continu op de hoogte te zijn van de nieuwste kwetsbaarheden.

    Onderhoudbaarheid en uitbreidbaarheid

    Interne apps worden vaak lange tijd gebruikt, maar bedrijfsprocessen willen nog weleens veranderen. Daarom is het van belang dat apps goed onderhoudbaar zijn. “Door de applicatie-architectuur zo op te zetten dat verschillende lagen in de applicatie verschillende functies hebben, voorkom je grilligheid in de code, is deze beter leesbaar en makkelijker te onderhouden”, benadrukt van der Loo. De kans is groot dat iemand anders een app die jij geschreven hebt gaat onderhouden. Daarom is het belangrijk om goed leesbare en voor anderen begrijpbare code te schrijven. “Maak veelvuldig gebruik van bekende design patterns, zoals facades, decorators en factory-methods. Ook biedt de taal C# handige features om nette code te schrijven. Denk aan delegates, LINQ en generics.” Tot slot is het in de mobiele wereld belangrijk om bij te blijven. Van iOS en Android komt bijvoorbeeld jaarlijks een nieuwe major release uit. “Er is onderhoud nodig om ervoor te zorgen dat onze apps blijven werken. Hier hebben wij een beheerafdeling voor. Zij houden zich onder meer bezig met het testen van bestaande apps op nieuwe OS-versies. Bestaande code moet hierbij vaak tegen nieuwe libraries gecompileerd worden.”

    Dit artikel is gebaseerd op een artikel verschenen op www.webwereld.nl. Webwereld

Meer over de organisatie

Meer relevante ICT-artikelen

Als een van de grootste ICT-werkgevers van ons land biedt de Rijksoverheid een enorme diversiteit aan werk voor ICT'ers.

Down iconLinks iconRechts iconUp iconFacebook iconInstagram iconLinkedin iconLinkedin iconMagnet.me iconMenu iconSearch iconTwitter iconTwitter icon