Flutter: een game changer in frontend ontwikkeling?

Als we over de toekomst van development omgevingen spreken, zie ik – als observator – twee sterk uiteenlopende tendensen,

Er is de backend omgeving waar containers en microservices afhankelijk van de maturiteit van het bedrijf de standaard werkomgeving voor de toekomst worden of al geworden zijn en daar lijkt de boodschap vrij eenvoudig. Containers ondersteunen niet alleen alle courante talen, maar laten je zelfs toe om stokoude programmeertalen in een Javascript in te bedden en uit te voeren. Zo zag ik onlangs een Pascal programma dat na drie lijntjes aan te passen probleemloos in een JS functioneert.

Vermoedelijk zullen de talen van na de opkomst van het Internet en de cloud op termijn wel een meer dominante rol gaan spelen. Maar als dat loopt zoals in het verleden is dat een werk van lange adem. Gebeurt die verschuiving maar zeer gradueel.

Voor frontend computing lijkt een heel ander scenario in de maak. Hier had je tot voor kort aparte paden voor vaste en mobiele computers. Zowel Android en iOS ondersteunen een reeks programmeertalen voor native ontwikkeling in de mobiele omgevingen. Een identieke situatie heb je voor PC’s en Macs. En dan had je nog webtoepassingen die op beide omgevingen werkten.

Maar het is waarschijnlijk dat het aantal form factors (PC’s, tablets, smart devices) in de toekomst alleen maar zal stijgen en dan wordt zo’n divers landschap geen pleziertje om op te ontwikkelen en te onderhouden. Want hou maar eens een programma voor verschillende 3 omgevingen met frequente releases up to date. Wat als we in plaats van native toepassingen, in de toekomst vooral applicaties zouden bouwen die in het slechtste geval enkel nog beperkte aanpassingen nodig hebben om op die verschillende platformen te draaien?

En die qua inhoud en functioneren een identieke oplossing bieden ongeacht op welk platform ze draaien. Of zoals ze het zo mooi samengebald kunnen zeggen in het engels, Write Once, Run Anywhere . Dat leeft al een tijdje als idee met oplossingen zoals Xamarin van Microsoft en React Native van Facebook. En dat is ook de idee achter Flutter , de Software Development Kit en een User Interface raamwerk die Google in 2015 voor het eerst heeft aangekondigd.

En ook al zijn er maar een vijftal jaren verlopen sinds de initiële aankondiging op een Google Dart developers event in 2015 en nog maar goed drie jaar sinds de eerste versie op de markt is gekomen, heeft het product al een gigantische evolutie doorlopen.

Initieel in de markt gezet als een platform voor de ontwikkeling van mobiele toepassingen in IOS en Android is Flutter intussen aan het evolueren naar een platform voor gecompileerde toepassingen op zowel mobiel, web als desktop. Momenteel zijn alle niet mobiele platformen ten dele nog toekomstmuziek. Al is Flutter vandaag al in beta beschikbaar voor web applicaties. En zitten Linux, MacOS en Windows op Alpha. We hebben zelfs weet van Flutter werkende op Microsoft xbox. En werkt Flutter ook op Google Fuchsia OS , een platform in volle ontwikkeling waarvan tot op heden nog niet zoveel bekend is.

Gelanceerd door Google en gebruikmakend van Google technologie (zoals de Dart language en de Skia grafische engine) heeft Google het project in open source gebracht. Wel blijft Google de belangrijkste bijdrage bij de ontwikkeling leveren. En bovendien draaien een reeks Google omgevingen op Flutter. Dat geldt bijvoorbeeld voor de Google Assistant hardware (zoals de Nest serie van toestellen). Maar sinds midden november ook voor de volledig en drastisch vernieuwde Google Pay die intussen uitgerold is in de VS en India.

Waarom zou je als ontwikkelaar voor Flutter kiezen?

Mij lijkt de belangrijkste motivatie de ¨cross platform technology”. Je schrijft iets één keer en het wordt meteen na publicatie bruikbaar op een groeiend aantal platformen. Niet alleen gaat dit een stuk sneller (je moet alles maar een keer schrijven), maar het loopt op zich ook een stuk vlotter (je moet als Android developer niet constant afstemmen met je iOS collega). Dat maakt dat in Flutter ontwikkelen minder manuren vergt en dus ook in praktijk een stuk goedkoper uitvalt. En dat geldt natuurlijk ook voor alle onderhoud en uitbreidingen. Dat je voor meerdere platformen gelijktijdig ontwikkelt, maakt je adresseerbare markt bovendien vanaf dag één heel wat groter. En dat geldt zeker als op termijn Flutter applicaties op zowat alle courante platformen draaien.

Maar daarbuiten is Flutter ook een aantrekkelijk platform om in te ontwikkelen. De grafische mogelijkheden zijn uitgebreid, fouten zijn snel en vlot te verbeteren. En door dat je een compiled versie publiceert, blijft je toepassing ook performant. Flutter is bovendien volledig open source en gratis.

Natuurlijk zijn er ook nadelen aan Flutter. Het is een jong product en dus zeker niet zo af of zo stabiel als de concurrentie. Zo ontbreken er links en rechts nog wat functies of opties in die functies. Wel kan je die zelf vlot bij ontwikkelen, maar dat gaat dan natuurlijk wel ten koste van je productiviteit. Gelukkig is er een grote en snelgroeiende community en een hoop goed geschreven documentatie. Daarnaast lopen native versies natuurlijk bij elke release wat voor. Nieuwe functies in Android of iOS komen maar in uitgesteld relais op Flutter ter beschikking. Maar het lijkt erop dat de voordelen veel zwaarder wegen dan de nadelen. En dat de markt gezien de gestage groei dat ook zo ervaart.

Een nieuwe taal en raamwerk kiezen blijft altijd een uitdaging. Niemand heeft een glazen bol om de winnaars en verliezers van binnen vijf jaar te voorspellen. Er is een breed aanbod van oplossingen op de markt. Google maakt het er bovendien niet eenvoudiger op door zelf meerdere pistes te bewandelen. Door bijvoorbeeld gelijktijdig op Kotlin en Flutter in te zetten. En dan wordt het gissen naar de beweegredenen.

De stevige ondersteuning van Flutter zou dixit een aantal bronnen – naast alle voordelen die een crossplatform oplossing hoe dan ook te bieden heeft – ook te maken hebben met het intussen al jarenlang lopende dispuut met Oracle over het gebruik van Java componenten in Android, componenten waar Oracle licentierechten op claimt. Meer bepaald gaat het dan over Java API’s en Java Virtual Machine.

Wat je ziet is dat Google al enige tijd stappen zet om zijn afhankelijkheid van die componenten af te bouwen. In de lopende rechtszaak van Oracle versus Google is het aantal lijnen code dat nog ter discussie staat intussen drastisch teruggelopen omdat Google consequent in haar Android omgeving aanpassingen doorvoert.

En in het Flutter verhaal is het gebruik van de Java VM totaal verdwenen. Dat was initieel niet het geval in Kotlin, een tool voor native Android ontwikkeling maar met Kotlin/native kan nu ook perfect zonder een Virtual Machine gewerkt worden. Een uitspraak bij het Hooggerechtshof in de VS (zo hoog is die zaak intussen geraakt) in het Oracle – Google proces wordt verwacht in juni 2021. Maar hoe dan ook lijkt de weg naar een Oracle licentie vrije Android omgeving niet meer te stoppen. En dat doet ons mee veronderstellen dat Flutter ook in 2021 en de jaren erna op stevige ondersteuning door Google mag rekenen.

Herbekijk de Flutter Webinar:

Flutter, een rijzende ster in de wereld van platformonafhankelijke mobiele ontwikkeling. In deze webinar leggen we je uit wat Flutter is, waarom het het afgelopen jaar steeds populairder is geworden en hoe het je kan helpen op je mobiele reis. We delen een aantal van onze ervaringen van tijdens het bouwen van apps en praten over de toekomst van Flutter.

Bart Gouweloose

Google evangelist

Klaar voor de volgende stap?

Neem contact met ons op, onze experts helpen je graag verder!

Related Posts

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Fill out this field
Fill out this field
Geef een geldig e-mailadres op.

Deze website gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.

Menu