Android app ontwikkelaar Patrick aan het werk
YipYip is een

Flutter app ontwikkelaar

.

Kunnen we bij jullie een Flutter app laten maken? Als app ontwikkelaar krijgen we steeds vaker deze vraag. Flutter app ontwikkeling is namelijk ontzettend populair en een zeer goed alternatief voor pure Native ontwikkeling.

We krijgen als app ontwikkelaar tevens regelmatig de vraag waarom we veelal native apps ontwikkelen en wat minder hybride of mobiele web-apps. Het antwoord hierop is dat apps zich niet altijd lenen voor een dergelijke (Flutter) aanpak.

Toch zijn er genoeg uitzonderingen denkbaar. De volgende situaties kunnen bepalen of het verstandig is of een Flutter app laten maken interessant is, in tegenstelling tot native ontwikkeling:

  • apps waarbij de interface op iOS en Android volledig gelijk moet zijn;
  • apps die vanaf lancering vaak geüpdate zullen gaan worden met nieuwe features;
  • apps voor startups waarbij er nog niet zeker is wát er aan features nodig zal zijn;
  • apps die een beperkte houdbaarheid hebben (denk aan apps die puur ondersteunen bij een marketingcampagne);
  • een beperkt budget kan tevens een reden zijn, tenzij er nog op andere manieren (functionaliteit, platformkeuze et cetera) bespaard kan worden.

Afhankelijk van het antwoord op deze punten kiezen we samen met de klant de beste aanpak voor het project. Een van de app development frameworks waar we erg enthousiast over zijn geworden de afgelopen jaren is Flutter.

Introductie Flutter

Flutter is de User Interface toolkit van Google. Het focust zich voornamelijk op het programmeren van de views (front-end kant van de apps). Omdat het zich focust op de voorkant is het compileren ook minder een probleem dan bij andere frameworks.

Omdat Flutter cross-platform kan compileren hoeven we geen gebruik te maken van gedeelde datalagen (met Kotlin Native, zoals we in onze Native apps doen). De code van onze Flutter projecten bestaat immers slechts in één codebase.

Flutter app vs. Native app

Flutter apps worden net als andere hybride apps geschreven in een andere programmeertaal dan de taal van iOS of Android. Voor Native iOS app development is de reguliere programmeertaal Swift en voor Native Android app development is dat Kotlin (of Java). Flutter wordt geschreven in Dart programming language.

Voordelen van een app ontwikkelen in Flutter

Flutter kent een aantal grote voordelen ten op zichte van native apps.

Multi platform (iOS & Android)

Een Flutter app kan worden gecompileerd naar zowel een native iOS app als een Android app. Er liggen ook mogelijkheden voor webapps maar onze ervaring is dat deze toch beter zelfstandig kunnen worden gemaakt.

Het voordeel van een multi-platform gedachte is dat je in principe de interface maar één keer hoeft te ontwikkelen. Hierdoor bespaar je bij ontwikkelaars dubbel werk. Uiteraard zijn er wel situaties waarin je wil differentiëren tussen iOS en Android maar de grote gemene deler kan in Flutter worden opgezet. Dat zorgt er ook voor dat het testproces en quality assurance eenvoudiger wordt en er niet meerdere ontwikkelaars aan dezelfde componenten (maar dan voor een ander platform) hoeven te werken.

Hot reloading

Hot reloading houdt in dat een app ontwikkelaar niet na iedere wijziging de code opnieuw hoeft te compileren alvorens het eindresultaat kan worden getoond. Dat is bij een native aanpak iets wat een ontwikkelaar continu zal moeten doen en dat kost tijd en programmeurs kunnen met hot reloading iets makkelijker doorwerken.

De enige beperking zit hem in de feature kant. Hot reloading werkt vooral goed als een ontwikkelaar visueel alle componenten op de juiste plaats gaat zetten, als er iets structureels wordt aangepast moet er (net als met Native app ontwikkeling) wél opnieuw worden gecompileerd.

Moderne taal

Als Elixir ontwikkelaar zijn we gewend om met moderne programmeertalen te werken. Dart is daar ook een voorbeeld van. Dart is een programmeertaal geoptimaliseerd voor de client zijde voor apps op meerdere platformen zoals iOS en Android. Het is ontwikkeld door Google en kan worden gebruikt voor zowel mobiele apps, desktop applicaties, server applicaties of webapplicatie. We zien echter dat Dart vooral wordt gebruikt voor het maken van apps voor mobiel. De overige toepassingen zijn vaak nog wat beperkter en daarvoor raden we een andere opzet aan.

In tegenstelling tot Elixir (een functionele programmeertaal) is Dart een object georiënteerde taal die lijkt op traditioneel C. Dart kan compileren naar native code óf naar JavaScript – als het om een webapplicatie gaat.

Dart is net als Elixir nog volop in ontwikkeling en daardoor worden er regelmatig updates uitgebracht met veel nieuwe mogelijkheden. De ontwikkeling is intussen gelukkig wel gestabiliseerd.

Kosten

Een Flutter app laten maken kan een kostenbesparing opleveren. De meeste apps die we met Flutter ontwikkelen leveren een kostenbesparing van ±30-40% op. Dit is echter geen garantie, het feit dat er een framework wordt ingezet brengt kleine maar wel noemenswaardige risico's met zich mee. Het kan immers voorkomen dat gebruikte open-source libraries of widgets niet meer ondersteund worden, dat is inherent aan het gebruik van libraries van derden en komt ook bij andere programmeertalen voor. Ook speelt de ontwikkeling van de programmeertaal (Dart) een rol, er worden namelijk zo nu en dan ook updates uitgerold waardoor de app ontwikkelaars aan de slag moeten.

Wij doen uiteraard ons uiterste best zo min mogelijk afhankelijkheden in de app te bouwen die voor de onderhoudbaarheid beter in de Native omgeving kunnen worden opgelost. Zo creëren we je een app die het 'beste van beide werelden' heeft.

Nadelen van een app ontwikkelen in Flutter

Er zijn toch ook een paar nadelen van Flutter die we graag benoemen om tot een afgewogen keuze te komen. Deze nadelen gaan eigenlijk op voor vrijwel ieder framework, zoals: Ionic, React Native, Xamarin, Cordova et cetera.

Hardware ondersteuning

Vooral de uitgebreide ondersteuning voor hardware componenten zoals Bluetooth en Camera laat soms nog te wensen over in frameworks. Je ontkomt er eigenlijk niet aan om in dat geval ook zaken puur Native te gaan ontwikkelen. Een voordeel is dat dit wel kan (zowel Flutter als Native in samenwerking met elkaar gebruiken) maar als je een groot deel van de app Native gaat bouwen zit een framework als Flutter waarschijnlijk meer in de weg dan dat het tijd bespaart.

Kleine problemen

Er zijn ook nog wel wat kleine problemen met Flutter, vooral onderdelen die zeer eenvoudig zijn in Swift of Kotlin lijken soms heel logisch maar zijn het niet. Hiervoor kunnen plug-ins worden gebruikt maar dat creëert dan weer een externe afhankelijkheid. In dat geval kiezen we er vaak voor om het specifieke probleem native op te lossen. Het voordeel is wel dat Flutter nog enorm in ontwikkeling is en de mogelijkheden zonder plug-ins ook enorm groeien.

Onderhoud van een framework app

Een ander aspect is vooral ná de release van de app van invloed, waardoor deze in veel offertes niet direct zal terugkomen. Het onderhoud van een app die is ontwikkeld met een framework is over het algemeen groter dan bij een Native ontwikkelde app.

Dit komt doordat de community (of ‘eigenaar’) van het framework andere belangen heeft dan Apple en Google. Uiteindelijk zullen Apple en Google nooit dusdanige aanpassingen maken met als resultaat de apps op hun platform ‘stuk’ maken – dat is met een framework app een groter risico. Je zult met een framework app meer moeten updaten en beter “bij moeten blijven” dan bij een Native ontwikkelde app wat resulteert in hogere kosten.

Op termijn kán dat dat betekenen dat een framework app duurder is dan een Native app.

Doorontwikkeling

Een ander punt is dat de frameworks niet altijd even snel zijn in het meebewegen met nieuwe ontwikkelingen — of zelfs verplichtingen — vanuit iOS en/of Android. Dit kan de doorontwikkeling van een app flink stagneren.

Flutter app vs. React Native app

En hoe zit het met React Native?

React Native app

In tegenstelling tot React Native ontwikkel je niet in een programmeertaal die gemaakt is voor gebruik op het web. Flutter werkt met Dart en is specifiek ontwikkeld voor gebruik op o.a. mobiele platformen. Het voordeel van Flutter in tegenstelling tot React is dat het echt bedacht is met deze mindset, dat maakt het ook wezenlijk anders dan frameworks als React, Ionic, Cordova et cetera.

We hebben in de afgelopen 12 jaar vele diverse platformen zien komen en gaan. Doordat de juiste partijen werken aan Flutter (mét een gezamenlijk belang) denken wij dat Flutter écht de toekomst heeft.

Flutter app laten maken

We hopen dat de verschillen tussen alle platformen hiermee iets duidelijker zijn geworden. Klinkt dit interessant en wil je een flutter app laten maken? Of toch liever gaan voor een Native app ontwikkeling? Neem gerust een keer contact met ons op en we bespreken graag alle mogelijkheden om de beste keuze te maken voor het project.

Voordelen van Flutter app ontwikkelaar YipYip

  • Als gespecialiseerde app ontwikkelaar hebben we zeer veel kennis en ervaring met alle mobiele platformen en frameworks die kunnen worden ingezet om een app te maken.
  • Een ontwikkeling met Flutter levert een zeer moderne app op.
  • Doordat we werken met Kotlin Native bieden we ook een goede cross-platform oplossing voor de modellaag.
  • Flutter is nog steeds volop in ontwikkeling maar is tegelijkertijd wel uit de Beta fase, in tegenstelling tot bijvoorbeeld React Native.
  • Wij ontwikkelen tevens back-end applicaties en API’s die onze apps voorzien van data, schaalbaarheid en intelligentie.
  • We ontwikkelen alles in huis en werken expliciet niet met externe ontwikkelaars om de kwaliteit en flexibiliteit te waarborgen.
  • Veranderingen aan de user interface kunnen zeer eenvoudig worden doorgevoerd voor beide platformen.
  • YipYip heeft een ISO27001 en NEN7510 certificering waardoor ook onze Flutter applicaties verzekerd zijn van een optimale veiligheid.