MOBIELE APPS
13/02/2024 • Jurgen Geys

Xamarin support stopt vanaf 1 mei 2024

Waarom je beter kiest voor Flutter of Reactive Native dan voor .NET MAUI of .NET for Mobile

Xamarin was een van de belangrijkste cross-platform frameworks voor mobiele apps van de voorbije 10 jaar. Meer dan 15.000 organisaties wereldwijd hebben Xamarin applicaties gebouwd en gebruikt.

Microsoft heeft echter besloten om vanaf 1 mei 2024 Xamarin niet meer te ondersteunen en te vervangen door .NET MAUI en .NET for Mobile. De impact zal al merkbaar zijn vanaf 1 april 2024, want vanaf die datum stopt de distributie van updates voor iOS.

Xamarin migreren naar .NET MAUI of .NET for Mobile?

De beslissing om bestaande Xamarin apps te migreren naar .NET MAUI of .NET for Mobile is minder evident dan het lijkt. Onze ervaring binnen ACA Mobile leert dat een rewrite naar een ander platform vaak een betere keuze vormt. In deze blog beargumenteren we dit advies.

Waarom .NET MAUI en .NET Mobile geen goed Xamarin alternatief zijn

    • De roadmap voor .NET MAUI en .NET for mobile (https://github.com/dotnet/maui/wiki/Roadmap) biedt weinig duidelijkheid en zekerheid op lange termijn. Microsoft's besluit om Visual Studio for Mac te 'retiren', een essentieel instrument voor iOS en Mac-ontwikkeling, versterkt deze bezorgdheid en stuurt gemengde signalen over hun toewijding aan cross-platform mobiele ontwikkeling. Bovendien gebruikt Microsoft zelf React Native voor belangrijke mobiele applicaties zoals Microsoft Teams en Outlook. Microsoft heeft dus geen strategische focus op .NET MAUI en .NET for Mobile.
    • Onze ervaring bij migraties naar .NET MAUI en .NET for Mobile toont dat er nog heel wat kinderziektes in deze frameworks zitten. Een verdere stabilisatie en doorontwikkeling is nodig om ze op het niveau van de concurrentie te brengen. Toch zien we maar een zeer beperkt aantal ontwikkelaars actief op het framework. Op frameworks zoals Flutter en React Native zien we 3 tot 4 keer meer activiteit.
    • De LTS (Long-Term Support) releases van .NET MAUI voldoen niet aan de standaarden die we gewoon zijn van mature frameworks. Hoewel de releasecyclus van .NET MAUI de standaarden van .NET volgt, is de ondersteuningsperiode korter. Dit resulteert in de noodzaak om .NET MAUI voortdurend bij te werken naar nieuwere versies.
    • Er is een aanzienlijke daling in het aantal ontwikkelaars dat actief gebruik maakt van Xamarin, .NET for mobile en .NET MAUI. Deze trend wijst op afnemend vertrouwen in de community, wat mogelijk kan leiden tot verminderde ondersteuning en innovatie op de lange termijn.

De uitdagingen van een migratie van Xamarin naar .NET MAUI of .NET Mobile

Een migratie van Xamarin naar .Net MAUI of .NET for Mobile is -in tegenstelling tot wat men zou verwachten- geen gestandaardiseerd proces. De documentatie is zeer beperkt en issues moeten voornamelijk met trail-and-error ontdekt en opgelost worden. Hierdoor treden regressies op, waarbij bepaalde functionaliteiten niet langer worden ondersteund, code-obfuscation niet meer werkt, tooling niet beschikbaar is, en bestaande packages niet meer compatibel zijn. Bovendien komen regelmatig bugs aan het licht in het .NET-framework zelf.

Bovendien is de app na de migratie technisch niet beter dan de oude app; alle technical debt blijft immers behouden en is zo mogelijk nog verergerd door het oplossen van bugs.

De kost van een migratie, inclusief alle bug-fixing, kan daardoor flink oplopen. Voor enkele van onze grotere projecten betekent dit een traject waarbij meerdere ontwikkelaars gedurende meerdere maanden betrokken zijn.

Tot slot rijst de vraag of deze migratie een langetermijninvestering rechtvaardigt, gezien onze twijfels over de toekomst van .NET MAUI en .NET for Mobile.

Het alternatief: de Xamarin-app herschrijven in React Native of Flutter

Uit onze ervaring zijn we er van overtuigd dat het herschrijven van de app met behulp van React Native of Flutter meer waar voor je geld oplevert dan een migratie naar .NET MAUI of .NET for Mobile.

Allereerst bieden beide frameworks een mature basis met een langetermijnvisie en ondersteuning, waardoor de herschreven applicatie gemakkelijk te onderhouden, uitbreidbaar en klaar voor de toekomst is. Meer details over elk van deze frameworks vind je onderaan dit artikel.

De herschrijving biedt ook de perfecte gelegenheid om de app aan te passen aan veranderende of nieuwe zakelijke behoeften. Het is dus niet alleen een technisch project, maar levert ook concrete zakelijke waarde op.

Bovendien is het prijsverschil tussen migratie en herschrijven kleiner dan men zou denken:

  • We herbouwen alleen de app zelf, waardoor integraties met backend systemen behouden kunnen blijven, wat aanzienlijke besparingen oplevert. Zelfs als er een Backend-For-Frontend is gebruikt, kan deze behouden blijven.
  • We baseren de herbouw op het ontwerp van de oude app, waardoor er geen nieuw analysewerk nodig is.
  • Door te starten met een nieuwe architectuur kunnen we alle bestaande "technical debt" in één keer wegwerken. Dit betekent dat onderhoud en latere uitbreidingen aanzienlijk eenvoudiger en dus goedkoper worden.

Samengevat zien wij dat een rewrite niet fundamenteel duurder hoeft te zijn dan een migratie met bugfixing. Zeker als we ook de verbeterde onderhoudskosten, de verlengde levensduur van de app en de toegevoegde business value meetellen in de case.

De voordelen van Flutter

Overweeg je om Xamarin te migreren naar Flutter? Een slimme keuze, want Flutter biedt heel wat strategische voordelen:

  • Toekomstbestendige Technologie: Flutter geniet sterke ondersteuning van Google, die als voornaamste bijdrager fungeert en een zeer actieve ontwikkelgemeenschap heeft (1313 bijdragers, waarvan 72 meer dan 50 commits hebben). Google past het framework zelf toe in hun applicatieontwikkeling, met toepassingen zoals Google Classroom, YouTube Create, Google Ads, en recentelijk ook in hun AI-applicatie Gemini voor het genereren van op maat gemaakte UI's tijdens runtime. Dit biedt bedrijven de geruststelling dat Flutter een technologie stack is die op de lange termijn wordt onderhouden.
  • Populariteit: Sinds de lancering in 2018 heeft Flutter gestaag marktaandeel veroverd binnen cross-platformontwikkeling. In 2020 was 1% van de apps in de App Store en 3% in Google Play geschreven in Flutter. In slechts drie jaar tijd is dit gestegen naar 9% en 19%. In tegenstelling hiermee is het aandeel van Xamarin blijven hangen op 4%.
  • Uniforme gebruikerservaring: Flutter maakt gebruik van zijn eigen rendering engine, waardoor de UI volledig wordt beheerd vanuit Flutter zelf. Dit garandeert een consistente gebruikerservaring tussen iOS en Android, en zelfs over verschillende versies van besturingssystemen heen. Hierdoor kunnen ook oudere OS-versies profiteren van nieuwe features.
  • Toegang tot de laatste features: Flutter gebruikt zijn eigen rendering engine waardoor niet alles out-of-the-box beschikbaar zal zijn. Tot op heden worden nieuwe features echter zeer snel ondersteund door updates aan het Flutter Framework. Het is steeds mogelijk om native componenten te schrijven en deze beschikbaar te maken binnen onze Flutter code, waardoor essentiële features direct beschikbaar zijn.

De voordelen van React Native

Ook een migratie van Xamarin naar React Native is een slimme keuze omwille van de vele strategische voordelen die React Native je biedt:

  • Toekomstbestendige Technologie: React native werd origineel ontwikkeld door Meta om zichzelf als een mobile-first bedrijf in de markt te zetten. Er is een zeer actieve ontwikkelgemeenschap die meewerkt aan de toekomst (2604 contributors, waarvan 89 met meer dan 50 commits). Meta gebruikt React Native voor de eigen applicaties zoals Facebook, Facebook Ads Manager, Oculus en Messenger Desktop. Ook Microsoft investeert veel energie en tijd in React Native. Zij gebruiken het voor de ontwikkeling van onder meer Microsoft Office, Microsoft Store op Xbox en Power apps. Dit schept vertrouwen in de stabiliteit van het framework.
  • Populariteit: Na de lancering in 2015 kende React Native een razendsnelle stijging in populariteit. Sindsdien heeft het al jarenlang een stabiel marktaandeel in de ontwikkeling van mobiele applicaties. In 2020 was respectievelijk 8% van de apps in de App Store en 10% in de Google Play Store ontwikkeld met React Native. In slechts drie jaar tijd is dit percentage gestegen naar respectievelijk 13% en 18%.
  • Gebruik van JavaScript/TypeScript: Dankzij het gebruik van uiterst populaire programmeertalen is React Native zeer toegankelijk voor ontwikkelaars. Dit resulteert in een overvloed aan beschikbare ontwikkelaars die de applicatie gemakkelijk kunnen onderhouden, aangezien ze bekend zijn met de gebruikte taal.

  • Toegang tot de laatste features: Doordat React Native mapt op de OS-componenten kunnen de ontwikkelde applicaties bij de introductie van nieuwe functies deze direct en zonder extra inspanning benutten. Zo wordt bijvoorbeeld out-of-the-box ondersteuning geboden voor een refresh rate van 120 Hz. Bovendien is het ook mogelijk om zelf native componenten te schrijven en te integreren voor gebruik binnen React Native.

Conclusie

In het licht van de stopzetting van Xamarin en de complexe uitdagingen bij de migratie naar .NET MAUI of .NET for Mobile, vormt de rewrite van Xamarin-apps in React Native of Flutter een strategisch en kosteneffectief alternatief.

Beide frameworks bieden betrouwbare oplossingen met langetermijnondersteuning, waardoor eenvoudig onderhoud en schaalbaarheid gegarandeerd zijn.

ACA Group staat klaar om je bedrijf te helpen met het nemen van weloverwogen beslissingen. Laten we samen de toekomst van je applicaties vormgeven!

Wil jij het succes van je mobiele applicaties op lange termijn verzekeren?

Contacteer ons