De staat van hybride & crossplatform
anno 2020
anno 2020
Rotterdam, 31 oktober 2020
Hybride en crossplatform app development bestaat al sinds 2009. Het heeft ups en downs gehad en iedere iPhone app ontwikkelaar heeft er wel een mening over. Waar staan we anno 2020? Is het verbeterd? Welke smaken zijn er?
Wat is “hybride en crossplatform app development”? Het gaat hier om app ontwikkeling gericht op het maken van zogenaamde hybride en crossplatform apps.
Hybride apps zijn “apps die een tussenvorm zijn tussen webpagina’s en echte native apps”. Het is een native app, maar een deel van de inhoud is eigenlijk webgebaseerd. Omdat het web gebaseerd is op standaarden die door ieder populair mobiel platform worden ondersteund (HTML), hoefde je dus voor een gedeelte van de applicatie slechts één broncode (in HTML) te onderhouden in plaats van bijvoorbeeld twee (Android en iOS).
Crossplatform apps zijn apps die in 1 taal geprogrammeerd worden, maar op meerdere platformen kunnen draaien omdat er een laag tussen zit die alles vertaald naar bijv. Java voor (taal voor Android) en Swift (taal voor iPhones).
Omdat hybride apps meestal crossplatform apps zijn, ga ik door met de laatste van die twee termen.
Voorbeelden van crossplatform app technologieën zijn Flutter, React, Cordova en Xamarin. In 2017 begon stackoverflow.com, een populaire website onder ontwikkelaars, hun leden te bevragen over de meestgebruikte technologieën. Voor crossplatform technologieën waren dat destijds React, Cordova en Xamarin. Een volgende vraag was echter met welke technologieen ontwikkelaars het liefst nooit meer iets te maken wilden hebben. Het antwoord was… Cordova (61 procent van de respondenten), Xamarin (51%) en React (33%). Daarbij moet wel gezegd worden dat voor React gold dat de overige respondenten er juist wél enthousiast over waren, maar Cordova stond bovenaan de lijst van álle gehate technologieën, dus niet eens enkel crossplatform.
Wat was er mis? Crossplatform apps konden vooral goed toegepast worden in eenvoudige apps. Hierdoor kon je iemand zonder al te veel verstand van IT ook vrij gemakkelijk overtuigen, omdat een eenvoudige sales demo app inderdaad een stuk sneller gemaakt was met een crossplatform technologie dan native technologie. Je had ook maar 1 soort developer nodig, namelijk degene die bedreven was in de crossplatform-taal. Maar zodra de complexiteit van de apps wat verder vorderde omdat er nieuwe functionaliteit benodigd was bleek vrijwel ieder crossplatform niet mee te kunnen. Daarnaast hebben Android en iOS systeemeigen features die je met crossplatform maar moeilijk kon aanspreken, dus je moest qua mogelijkheden het vaak doen met de gemene deler van de twee. Crossplatform liep ook altijd achter, omdat elk jaar in Android en iOS nieuwe functionaliteit werden geïntroduceerd die pas later in de crossplatform technologie konden worden geïntroduceerd.
Waar staan we nu? Crossplatform is volwassener geworden. De apps van Instagram, Tesla, Skype en Pinterest zijn bijvoorbeeld met React Native gemaakt. Daar moet ik wel gelijk bij zeggen dat deze partijen een bijzonder belang hebben bij een gelijke gebruikerservaring op alle platformen, wat op zichzelf een reden is om genoegen te nemen met minder toegang tot de nieuwste mogelijkheden. Daarnaast echter hebben deze partijen zeer veel softwareontwikkelaars in dienst waardoor ze ook de mogelijkheid hebben de crossplatform-technologie veel meer naar hun hand te kunnen zetten dan een klein team dat zou kunnen.
React, Cordova en Xamarin zijn echter alle drie 40-45 procent gezakt in gebruik (stackoverflow.com, 2020). Ook de waardering van alle drie de platformen is gezakt, en alhoewel React zich redelijk goed staande houdt, zegt 42 procent van de React ontwikkelaars geen interesse te hebben in dat te blijven doen. Cordova wordt inmiddels gehekeld door 71 procent van de ontwikkelaars die er mee werken.
Er is echter wel een ‘nieuwe’ speler op de markt, namelijk Flutter. Deze zit qua gebruik in de middenmoot maar heeft vrij snel aan waardering gewonnen sinds de eerste versie in mei 2017. Maar liefst 69 procent van degenen die er mee ontwikkelen zijn er positief over. Ook op stackoverflow, de community site voor ontwikkelaars, is flutter zeer populair.
Flutter is een crossplatform app technologie met daadwerkelijk 1 set code, en dus niet zoals sommige anderen gedeeltelijk native en gedeeltelijk crossplatform. Toch kan je er voor kiezen om flutter apps er op Android en iOS anders uit te laten zien, doordat flutter de mogelijkheid biedt systeemeigen componenten te imiteren.
Flutter wordt echter gebouwd door Google en deze partij staat er om bekend soms vrij abrupt bepaalde projecten te staken als ze niet meer in de visie passen. Dat kan een belangrijke reden zijn om in een risico-afweging niet voor flutter te kiezen. Daarnaast gaan de ontwikkelingen in flutter nog sneller dan ze in iOS en Android gaan. Dat betekent dat je niet zo de broncode een paar jaar kan laten liggen zonder serieus aan de slag te moeten om deze bij te werken.
Flutter is daarom nog het meest geschikt voor het maken van niet-bedrijfskritische of tijdelijke apps, tenzij je een team van ontwikkelaars hebt die de capaciteit heeft om in korte tijd de app weer om te bouwen naar een andere crossplatform of native technologie als de support ervoor stopt.
Als over de jaren heen blijkt dat de support voor flutter minstens even sterk blijft, en Google de visie uitspreekt dat ook te willen blijven doen, wordt het wel steeds meer een technologie om daadwerkelijk als alternatief voor native apps te beschouwen. Voor nu is het enkel te adviseren voor wendbare teams met voldoende ontwikkelcapaciteit en apps die niet al te moeilijk weer (terug) naar native omgebouwd kunnen worden.
Vragen? Neem direct contact op.
Uitgelichte afbeelding van Lynda.com
IT gerelateerd onderzoek & advies
iPhone apps
iPad apps
App developer iOS
Heeft u vragen? Neem contact met me op!
Heeft u vragen? U kunt gebruik maken van het contactformulier.
Adres:
Korfoepad 79
3059XD Rotterdam
Tel. +316 19 532 770
KvK: 63601400