– Native kan være dyrt og unødvendig, mener Flutter-elsker

Hva er greia med kryssplattform-rammeverket Flutter? Vi spurte en ekspert.

Eirik Aflekt Thomessen utvikler Flutter-apper i Bouvet. 📸: Privat
Eirik Aflekt Thomessen utvikler Flutter-apper i Bouvet. 📸: Privat Vis mer

Mens mange velger å lage native-apper i programmeringsspråk som Swift for iOS eller Kotlin for Android, er det mange som velger å spare utviklingstid ved å bruke kryssplattformløsninger som React Native eller Flutter.

Vi lurer litt på hvorfor så mange trekker frem Flutter som ett av de mest spennende kryssplattformrammeverkene akkurat nå, så vi spurte like godt en ekspert.

Eirik Aflekt Thomessen er konsulent i Bouvet, og har mye erfaring med å kode apper i Flutter.

– Eirik, kan du kort forklare hva Flutter er?

– Flutter er et åpen kildekode-rammeverk fra Google som lar utviklere bygge apper for mobile enheter (iOS og Android), desktop og web. Det ble lansert i 2017 og har raskt blitt populært, takket være sin enkle tilnærming og brukervennlighet.

– Det som skiller Flutter fra mengden er bruken av Dart, et objektorientert programmeringsspråk også utviklet av Google. Dart er enkelt å lære, spesielt for de som allerede har erfaring med Java, C# eller lignende språk.

– Flutter mot React Native og .NET MAUI/Xamarin: Hvem vinner?

– Flutter, React Native og .NET MAUI eller Xamarin er alle kryssplattform-løsninger, men det er noen vesentlige forskjeller. Her er noen nøkkelpunkter:

  • Programmeringsspråk: Flutter bruker Dart, React Native bruker JavaScript, og Xamarin bruker C#.
  • Kompilering: Både Flutter og Xamarin/MAUI-apper kan kompileres til native kode, noe som kan gi bedre ytelse enn React Native-apper som kjører på en JavaScript-engine.
  • Utviklingshastighet: Flutter og React Native tilbyr "hot reload"-funksjonaliteten, som gjør det mulig å se endringer i sanntid. Xamarin tilbyr denne funksjonen bare delvis.

– Hvorfor skal jeg velge Flutter?

– Flutter tilbyr kryssplattform-støtte, kostnadseffektivitet og enkelhet. Ved å bruke Flutter kan du utvikle apper for iOS, Android, web og desktop, samtidig. Dette sparer tid og krefter, og gjør det enklere å teste appen. Flutter er også kjent for sitt voksende samfunn og rikholdige dokumentasjon.

– Men husk, hvis du allerede har en kodebase i et bestemt programmeringsspråk, kan det være mer effektivt å utvikle en app i samme språk, for eksempel React Native for JavaScript eller Xamarin/MAUI for C#.

«Ved å bruke Flutter kan du utvikle apper for iOS, Android, web og desktop, samtidig.»

– Når bør du vurdere en native-app i stedet for Flutter?

– Flutter er flott, men noen ganger kan en native-app være et bedre valg.

– Hvis appen din krever spesiell funksjonalitet, maskinvareintegrering eller avanserte UI/UX-krav som ikke kan eller er vanskelig å oppnå med Flutter, bør du vurdere en native-app. Dette kan inkludere integrasjon med NFC, fingeravtrykkslesere, kart, sporing eller komplekse animasjoner.

– Fortell litt mer om Dart!

– Dart er kjent for sin enkle syntaks og raske innlæringskurve, spesielt for de som allerede er kjent med språk som C# og Java.

– Dart skiller seg ut ved å tilby innebygd støtte for både JIT- og AOT-kompilering. Imidlertid kan Dart føles noe uvant for utviklere som er mer fortrolige med språk som JavaScript eller Swift.

– Hvordan brukere dere Flutter hos dere?

– Vi foretrekker vanligvis å bruke Flutter i nye prosjekter, med mindre det er nødvendig med funksjonalitet som ikke kan tilbys.

– Vi har utviklet applikasjoner i ulike rammeverk gjennom årene, inkludert Xamarin Forms, Xamarin Native, React Native og Android Native.

– Vi har erfart at Flutter og React Native er de rammeverkene som gir den raskeste utviklingsprosessen. Valget mellom disse to rammeverkene avhenger ofte av personlige preferanser og utviklingserfaring.

– Er det mer kode24-leserne bør vite før de kaster seg over Flutter?

– Uansett hvilket kryssplattform-rammeverk du velger vil brukeropplevelsen være god, men noen funksjoner kan avsløre at appen er laget i et kryssplattform-rammeverk.

– Å oppnå en fullstendig native-følelse på de ulike plattformene kan være kostbart og ofte ikke nødvendig. Flutter tilbyr innebygd "Cupertino" widget-serie for iOS-designelementer og en "Material" widget-serie for Android-designelementer. Men i de fleste tilfeller vil man velge ett av disse bibliotekene på tvers av plattformene.

«Å oppnå en fullstendig native-følelse på de ulike plattformene kan være kostbart og ofte ikke nødvendig.»

– Jeg er overbevist, hvordan lærer jeg meg Flutter?

– Å lære Flutter er enkelt! Google tilbyr en flott "Get started"-codelab. Du kan for eksempel bruke Android Studio eller vs code som IDE, med innebygd støtte for Flutter-utvikling.

– Her er noen nyttige ressurser for å hjelpe deg på veien:

  • Flutter BLoC: Et arkitekturdesign som kan brukes til å håndtere større applikasjoner og separere forretningslogikken fra brukergrensesnittet.
  • Lottie: Med Lottie kan animasjoner bli laget i Adobe After Effects, og deretter eksporteres og brukes i applikasjonen uten å måtte skrive animasjonskoden manuelt.