BESPAREN OP ONTWIKKELKOSTEN VAN JE APP, WIE WIL DAT NIET?
Trends volgen elkaar met grote snelheid op. Hierdoor is er een groot scala aan platformen beschikbaar geworden waarop een bedrijf zich kan profileren. Denk aan de ouderwetse desktop applicaties, het internet, apps en de nieuwe IoT oplossingen. Om als bedrijf zo goed mogelijk zichtbaar te blijven is het dus belangrijk om op verschillende platformen aanwezig te zijn.
60% Van de wereldpopulatie gebruikt momenteel zijn mobiel om het internet te verkennen en heeft daarmee dus een smartphone waarop apps geïnstalleerd kunnen worden. In Nederland is dat zelfs 87%. De belangrijkste besturingssystemen voor smartphones zijn Android en iOS. Elk zichzelf respecterende organisatie ontwikkelt dan ook native apps die foutloos werken op beide platformen. In de praktijk betekent dat eigenlijk altijd dubbel werk. De cross-platform oplossing Flutter biedt hier een fantastisch antwoord op. In deze blog neemt Rockstar Sjoerd je mee:
- Waarom zou je crossplatform moeten gaan?
- De nadelen van andere crossplatform oplossingen
- De 6 + 1 voordelen van Flutter
WAAROM JE GAUW CROSS-PLATFORM ZOU MOETEN GAAN
Sinds de eerste iOS en Android smartphones op de markt kwamen, ontstond er meteen al een groot gat: De programmeertalen en de algehele opzet van apps die op deze telefoons ontwikkeld kunnen worden zijn compleet anders, met andere woorden: moeilijk, tijdrovend en omslachtig. Alhoewel er inmiddels voldoende goede developers zijn die beide platformen prima beheersen, kost het bouwen van zo’n native app vaak dubbel zoveel tijd. Daarnaast is er een verhoogd risico op fouten in de code en is er een verminderde algehele kennis van het project tussen de Android en iOS developers.
Naast apps worden er vaak ook nog een website-variant ontwikkeld voor de gebruiker die niet op zijn smartphone zit. Dit brengt nog een extra nieuw platform met zich mee.
DE UITDAGING VAN ANDERE CROSSPLATFORM OPLOSSINGEN
Om het grote gat te overbruggen is er in de afgelopen jaren een wildgroei geweest aan crossplatform oplossingen. Het doel van deze oplossingen is om zoveel mogelijk code te kunnen delen tussen met name Android en iOS. Hierdoor wordt de ontwikkeltijd per platform aanzienlijk minder en zouden er dus minder bugs moeten ontstaan. Aan vrijwel alle crossplatform oplossingen zaten tot nu toe wel één of meerdere van de volgende grote nadelen:
- Gevaar van ophouden van doorontwikkeling
- Minder snelheid
- Meer energieverbruik
- Niet consistent op alle platformen
- Beperkte mogelijkheden
- Instabiliteit in doorontwikkeling door cruciale wijzigingen in het platform
Gelukkig is dat vanaf nu voorbij!
SUCCESVOL MET FLUTTER
Flutter is dé crossplatform-oplossing. We zullen in deze blog stapsgewijs omschrijven waarom de bovengenoemde nadelen niet gelden voor Flutter en je een beeld proberen te geven van de kracht van Flutter.
Voordeel 1: Ongekende groei voor een zekere toekomst
Flutter is een zogeheten framework van Google, welke op extreem snelle wijze de crossplatform-wereld overneemt. Google gebruikt Flutter inmiddels al in veel eigen apps (bijvoorbeeld Google Ads) en er zijn daarnaast al vele grote namen die Flutter gebruiken om hun app-ontwikkeling te versnellen:
- BMW
- Ebay
- Alibaba
- Groupon
- Sonos
- Philips
- Greentea
De laatste grote talks van Google gaan voor een groot deel over Flutter, kortom: Ze zijn van plan om de crossplatform-wereld te veroveren. Daarnaast heeft Google regelmatig aangegeven de komende tijd de focus te houden op doorontwikkeling.
Voordeel 2: Snelheid en high tech
Om gebruikers in de App te laten blijven zul je zoveel mogelijk snelheid willen uitstralen. We kennen allemaal wel een verhaal wat bestrooid werd met commentaar over de snelheid van de App toen de partij voor het eerst crossplatform ging.
Flutter is eigenlijk een grafische laag welke in staat is op verschillende platformen exact hetzelfde resultaat te geven. De developer schrijft de complete app in één taal, welke op zijn beurt wordt omgezet naar de native code van het platform zelf. Hierdoor voelt de app aan alsof deze compleet in de eigen taal is geschreven.
Voordeel 3: Bespaar op energie zonder in te leveren
Door de slimme manier waarop het is opgezet hoeft je telefoon relatief weinig het scherm te verversen en dat merk je aan het batterijverbruik van je telefoon. Flutter gebruikt op het gebied van processor en geheugen een vergelijkbaar percentage als die van Native apps en zal het in sommige gevallen zelfs beter doen.
Voordeel 4: Gegarandeerde look en feel
De apps zullen op alle platformen exact hetzelfde eruitzien en aanvoelen. Zelf heb ik (Sjoerd van den Berg, auteur van deze blog) een complete app geschreven welke ik steeds alleen op iOS getest heb. Later vroeg mijn baas of ik de Android-versie kon laten zien. Deze kon ik meteen starten en zag er precies hetzelfde uit als op iOS. Het mooiste is nog dat je indien gewenst per platform kan afwijken, mocht je bijvoorbeeld op Android en iOS een andere datum selectie wil laten zien.
Voordeel 5: Onbeperkte mogelijkheden
Mocht er dan toch iets zijn wat zo platform-afhankelijk is dat dit niet standaard in Flutter zit, dan heb je de mogelijkheid om dit in de native taal te schrijven. Vervolgens schrijf je in Flutter een minimale schil om deze code aan te roepen en klaar ben je als ontwikkelaar. Naast de standaard opties die al beschikbaar zijn is er ook nog een enorme lijst aan plugins beschikbaar welke je vrijwel altijd voorzien van wat je nodig hebt.
Voordeel 6: Stabiliteit in doorontwikkeling
Zodra er updates in het crossplatform plaats vinden wil je natuurlijk niet al je code moeten weggooien en opnieuw moeten beginnen door het fenomeen “breaking changes”. Dat is natuurlijk een financiële no-go. Flutter is sinds versie 1.0 stabiel en backwards compatible, momenteel (toen dit geschreven werd) zitten we al op versie 2.2 en zien de apps er nog vrijwel hetzelfde uit. Google test eerst de changes op de eigen apps voordat ze een release doen, op deze wijze houden ze de benodigde wijzigingen minimaal.
Bonusvoordeel: ongeremde mogelijkheden
Als bonus is er sinds de 2.0 release een mogelijkheid om naar web te exporteren. Je kunt dus nu een variant van je app aanbieden aan gebruikers die de app niet willen/kunnen installeren. Daarnaast zijn ze al een heel eind op weg voor het ondersteunen van Windows, Mac en Linux besturingssystemen.