Skyve: open source low code

← Nieuws
13 april 2021

Het ontwikkelen van applicaties kan veel sneller door gebruik van low code tools. Skyve is een open source low code tool. Voor ontwikkelaars van Impulsum Group kan dit een interessante tool zijn. Daarom hebben we het getest en maakten we een demo. In dit artikel leest u de ontwikkelingen en uitkomsten hiervan.

Low code tools timmeren de laatste jaren flink aan de weg, maar echt nieuw is het niet. In de jaren ‘90 werkte Impulsum Group al met vierde generatie talen als Uniface. Deze hadden toen al low code-kenmerken: model driven, (veel) minder code nodig en een snellere ontwikkeling.

Model driven development, vaak met het idee om delen van de code uit een model te genereren, bestaat al lang als onderstroom. Meer dan tien jaar geleden koos Impulsum Group tools als Python/Django, omdat er veel minder code nodig was dan met Java om een (web-)applicatie te maken. In die context is low code niet anders dan een extra tool. Net als de vele code-bibliotheken met standaard oplossingen die we gebruiken. Low code tools integreren deze ontwikkelingen en maken het eenvoudiger om een afgeronde enterprise ready applicatie te maken.

Het keurslijf van low code toepassingen

Low code tools focussen op een bepaald toepassingsgebied. Ze zijn zeer goed bruikbaar voor bepaalde standaardoplossingen als administratieve, data- en formuliergeoriënteerde applicaties. Andere low code tools zijn gericht op applicatie-integratie of procesautomatisering.

Wilt u echter innoveren dan vergt dit meer flexibiliteit. De vernieuwende IT waarmee u als bedrijf de wereld wilt veroveren, is waarschijnlijk niet te vangen in een low code tool. Voor uw klanten wilt u een gelikte vormgeving, waar low code u eerder in een bepaald keurslijf dwingt. Wilt u meer lezen over wanneer low code wel of niet goed bruikbaar is? Lees dan de gids op de (Engelse) website van Gabriele Tomassetti: www.tomassetti.me.

Een risico van low code is vendorafhankelijkheid. Verschillende leveranciers leveren hun product "in the cloud¨ dat alleen in hun eigen omgeving kan draaien. Als een leverancier besluit het platform te stoppen, is er geen alternatief. Impulsum Group kiest waar het kan bewust voor Open Source tools, om die vendorafhankelijkheid te voorkomen.

Skyve-test Impulsum Group

Omdat de Open Source low code tool Skyve voor ontwikkelaars een interessante tool kan zijn, besloot Impulsum Group het te testen. We maakten binnen twee dagen een prototype om de mogelijkheden van Skyve uit te proberen. Het toepassingsgebied van Skyve is vooral interne, web-gebaseerde, administratieve applicaties. Skyve gebruikt standaard Java componenten en run-time tools en business-logic kan in Java worden gecodeerd. Het is dus gebaseerd op bekende main-stream technologie, die ook door anderen dan de leverancier zou kunnen worden onderhouden.

Skyve admin panel and user dashboard.png

Skyve biedt via de website een "no code" tool aan onder de naam "Foundry". Hierin kunnen de data modellen en relaties worden gedefinieerd, met een paar user-interface keuzes. Op basis van alleen die modelspecificatie kan Skyve al een werkende applicatie genereren, met invulformulieren voor alle modellen. Deze applicatie kan vanuit Foundry worden gestart (gehost in de cloud van Skyve).

Maar voor het echte werk en persoonlijk ook voor het definiëren van het model, is het handiger de code uit Foundry te downloaden, en in een standaard IDE als Eclipse verder te ontwikkelen. De standaard view die Skyve maakt is naar wens aan te passen en uit te breiden met extra functionaliteit, knoppen, tekst e.d. Dit gebeurt op een hoog abstractieniveau in XML bestanden.

Skyve kan daar op dit moment twee verschillende user interfaces uit genereren: met Primefaces traditionele webpagina's en met SmartClient een rich-client. Doordat de specificatie redelijk abstract is, kan de technologie in de toekomst worden vernieuwd, zonder ingrijpende aanpassingen. Of dat in de praktijk werkt moet bezien worden. Wel is er al een commerciële extensie voor React-native apps en staan Angular en React als user interface technologie op de roadmap.

Skyve Foundry edit model.png

Snel prototype

Na een aantal dagen inleren, bleek het inderdaad eenvoudig om snel een prototype te maken. Uitgangspunt was een hypothetische extranet applicatie, waarin we potentiële klanten documenten en offertes kunnen aanbieden, klanten een project kunnen volgen en support kunnen krijgen. Binnen twee dagen was er een werkend prototype.

Daarbij levert Skyve een administratiedeel met alle benodigde functionaliteit: gebruikers en rollen beheer, backup en restore, audit, reporting, job scheduling en meer. Een sterk punt van Skyve is de beveiliging. Per model kunnen centraal de rechten voor verschillende rollen worden gedefinieerd. Deze worden gebruikt voor toegangsrechten in de backend en REST API, maar ook in de user interface om bijvoorbeeld een "Edit" knop uit te schakelen als de gebruiker geen edit rechten heeft.

Skyve project example whitepapers.png

Skyve vs Jhipster vs Django

Binnen Impulsum Group gebruiken we sinds jaar en dag Python/Django als ontwikkeltool, omdat er snel applicaties mee kunnen worden gebouwd. Net als Skyve werkt Django vanuit een centraal data model, verzorgt het automatische opslag in een (SQL) database, kan het invulformulieren genereren en heeft het een gegenereerde administratie user interface. In vergelijking is de Skyve administratie module veel completer voor een enterprise applicatie. De user interface specificatie is in Skyve abstracter en compacter, maar daarmee ook minder flexibel dan in Django.

In Java applicaties gebruiken we de laatste jaren regelmatig JHipster om een nieuwe applicatie te starten. Daarbij kan worden gewerkt met een specificatie-taal voor de data modellen, waaruit JHipster, net als Skyve, zowel code voor database opslag, REST API en user interface invulformulieren kan genereren. Bij Skyve is alle gegenereerde code echter goed gescheiden en is aanpassing daarvan niet nodig. In JHipster is die scheiding er niet en wordt hergenereren lastig, omdat met name de user interface code (in Angular of React), maar vaak ook de backend Java code, moet worden aangepast om een bruikbare applicatie te krijgen.

Net als bij Django is het voordeel van de JHipster oplossing de flexibiliteit. Maar dat wordt "traditioneel" ontwikkeld, dus niet meer met de snelheid van een low code tool. Skyve dwingt u meer in een keurslijf, met name voor de user interface, om zo lang mogelijk op volle snelheid de low-code applicatie te kunnen ontwikkelen. Skyve is dus met name nuttig voor applicaties waar dat keurslijf acceptabel is.

Conclusie test Impulsum Group

Uit de test is gebleken dat voor Impulsum Group Skyve een bruikbare is om snel administratieve applicaties te ontwikkelen. Ook toont de test aan dat het een volwassen technologie is, dat inderdaad snel resultaten levert. Het past bovendien in het soort tools dat Impulsum Group graag gebruikt. Omdat Skyve de look en feel van de user interface voor een groot deel dicteert, moet wel per applicatie gekeken worden of dit keurslijf acceptabel is.

Dit artikel is geschreven door Marco Nijdam, Principal Consultant bij Impulsum Group 20170919-1634_432314547_IMG_8862.jpg

Photo by code block