all
Business
data science
design
development
our journey
Strategy Pattern
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Vasco Amorim de Almeida

Februar 02, 2024

Min Read

React Native vs Flutter til appudvikling

Når du overvejer, hvad du skal bruge til din næste mobilapplikation, skal du undersøge, hvilke rammer der kan give dig de værktøjer, du har brug for. React Native er en tophund i branchen, mens flagre er en stigende stjerne. Hvis du ikke er sikker på, hvilken du skal vælge, hjælper dette indlæg dig med at beslutte, hvilken fra React Native vs Flutter er bedst for dig.

blue arrow to the left
Imaginary Cloud logo

For at lære mere om React Native vs Flutter, Jeg har udviklet Dwipper: en social netværksapp (svarende til Twitter), som du kan bruge til at sende brusebadser (Dwipps).

Dwipper screens in Flutter
blue arrow to the left
Imaginary Cloud logo

Hybrid vs indfødt

Fuldstændig oplysning: du skal kun kigge efter en hybrid ramme, når du vil have din applikation til at arbejde på iOS og Android. Ellers er det bedre at holde dig til native development for at forbedre ydeevnen, fejlfinding, test og en enkel måde at frigive din applikation på. Hybridudvikling gør processen hurtigere og derfor billigere, samtidig med at det potentielle antal brugere øges. Indfødt udviklingmen tilbyder bedre ydeevne og forbedret databeskyttelse.

blue arrow to the left
Imaginary Cloud logo

Hvad er React Native?

React Native er en open source mobil applikationsramme oprettet af Facebook, udgivet i marts 2015. Det bruges til både mobil- og webapplikationer, ved at gøre det muligt for udviklere at bruge React og andre native platformfunktioner. Bygget oven på ReactJS og Javascript, det er sandsynligt, at udviklere, der er vant til sådanne sprog, kan finde en præference for React Native frem for andre rammer.

blue arrow to the left
Imaginary Cloud logo

Hvad er Flutter?

Flutter er en open source UI-softwareudviklingskit oprettet af Google, udgivet i maj 2017. Det bruges til begge mobile, desktop og webapplikationer, alle fra den samme kodebase. Baseret på objektorienteret programmering sprog Dart, dem med en præference for disse typer paradigmer foretrækker muligvis Flutter.

Mens Flutter kommer med sine retningslinjer for materialedesign, kan man være tilbøjelig til at bruge det. Der er dog ikke noget iboende problem med ikke at bruge det, da Flutter blev oprettet med et brugerdefineret branddesign i tankerne. Det er bare tilfældigt, at der er nogle materialedesign som en bonus.

blue arrow to the left
Imaginary Cloud logo

Er React Native let at lære?

Da det kommer fra JavaScript, er det lettere at lære og debugge i forhold til andre sprog. Det betyder, at du har en mere ligetil tilgang til udvikling. Denne lethed kommer dog på bekostning af mange fejl, som folk kan finde i deres kode under kørsel, fordi JavaScript ikke er et strengt sprog. For at undgå dette foreslår Facebook, React Natives skaber, Strømning, en typekontrol. Det tillader inkludering af kommentarer på JavaScript for at udlede typer og identificere uønsket adfærd, der bruges til at afbøde dette problem ved at identificere problemer, når koden skrives.

blue arrow to the left
Imaginary Cloud logo

Er Flutter let at lære?

I et vakuum Flutter er ikke så let at lære som React Native. Ikke desto mindre er der en baggrund i begge Dart eller enhver anden Objektorienteret sprog vil gøre dit liv lettere. På grund af sin stigning i popularitet er det hurtigt gjort at finde hjælp online og næppe nogen problemer.

blue arrow to the left
Imaginary Cloud logo

React Native vs Flutter: nøgleforskelle

Arkitektur

Hvordan virker React Native?

React Native tilbyder komponenter svarende til Reacts webmodstykke. Span i React er tekst i React Native, hvilket svarer til UIView i iOS og TextView i Android.
To tråde er iboende for hver React Native-applikation:

  1. Hovedtråden kører en standard indbygget app, håndtering af visning af elementer og behandling af brugerbevægelser.
  2. Den anden udfører al JavaScript-koden i en separat motor, enten JavaScriptCore eller V8, der beskæftiger sig med applikationens forretningslogik. Det definerer også funktionaliteten og strukturen af brugergrænsefladen.

Disse tråde kommunikerer aldrig direkte eller blokerer hinanden.

Hvordan virker Flutter?

Den grove ækvivalent til iOSs UIView og Android's View i Flutter er en Widget, som er noget anderledes end de ovenfor nævnte kolleger. Til at begynde med har de en forskellig levetid: de er uforanderlige og eksisterer kun, indtil de skal ændres. Når det sker, vil Flutters ramme skabe en nyt sæt widget forekomster. Til sammenligning tegnes visninger i iOS og Android én gang og tegnes kun om, når henholdsvis setNeedsDisplay () og invalidate kaldes.

At have en sådan reaktiv ramme giver udvikleren mulighed for at fjerne behovet for at få referencer til widgets til side, hvilket letter strukturen for alle backend med et enkelt sprog.

Brugergrænsefladekomponenter

UI Komponenter er afgørende, når man udvikler mobilapplikationer på tværs af platforme. Derfor skal begge rammer give glat og let API adgang til native moduler. I denne henseende har React Native færre komponenter end Flutter.

På den ene side er React Native meget afhængig af tredjepartsbiblioteker for at få native moduler. På den anden side, Flutter har UI widgets integreret; Således behøver udvikleren ikke at søge efter tredjepartsbiblioteker.

Programmeringssprog

React Native bruger JavaScript og Flutter bruger Dart programmeringssprog. JavaScript er et dynamisk skrevet sprog, der har været ekstremt populært i årevis, og det bruges ofte med React, såvel som med andre JavaScript-rammer. Da mange udviklere normalt er bekendt med JavaScript, er det ret ligetil at vedtage React Native.

Tværtimod, med Flutter, udviklere nødvendigvis skal lære dart, hvilket ikke er et meget brugt sprog. Det er dog heller ikke et puslespil, i betragtning af at dets syntaks deler mange ligheder med Java og JavaScript.

Produktivitet

Flutter har en varm genindlæsning, hvilket betyder, at udvikleren direkte kan injicere ny kode i en kørende app, hvilket kan spare enorme mængder tid og fremskynde udviklingsprocessen. Plus, for at undgå at miste noget under genindlæsning, varm genindlæsning opretholder også applikationens tilstand.

React Native var yderst opmærksom på succesen med denne funktion blandt udviklere, og dens 0.61-version blev lanceret med en „hurtig opdatering“ -funktion, der svarer til „hot reload“. „Hurtig opdatering“ giver yderligere udvikleren mulighed for at se ændringer foretaget i appen uden at skulle kompilere den igen.

En anden stor fordel ved at bruge React Native er, at den har en stort fællesskab af udviklere som har bidraget med mange biblioteker. Disse biblioteker kan bruges til at bygge blokke og dermed fremskynde udviklingsproces.

Dokumentation og fællesskab

Flutter har en meget omfattende og omfattende dokumentation, der giver udviklere detaljerede vejledninger og tutorials. Desuden inkluderer Flutter desuden Flutter-inspektør og debugger at hjælpe udviklere gennem hele appudviklingen.

React Natives dokumentation er også meget rig og giver mange tutorials, biblioteker, UI-rammer, artikler og andet materiale. Desuden drager det fordel af at have en Stort fællesskab og at være en del af React-familien.

Tværtimod har Flutter ikke (endnu) et så massivt fællesskab af udviklere, i betragtning af at det stadig er en ret ung ramme. Ikke desto mindre har det opnået en meget respektfuld størrelse og regner med en masse støtte fra andre udviklere, og det bliver i stigende grad mere populært.

CI/CD-understøttelse

På den ene side kræver React Native en tredjepartsløsning at automatisere levering og implementering, hvilket betyder, at det ikke giver udviklere en CI/CD-løsning til Google Play Delivery eller App Store.

På den anden side tillader Flutter udvikleren at bruge kommandolinjegrænseflade (CLI) til at opbygge og implementere Android- og iOS-apps. Ikke desto mindre kan det også kræve tredjepartsløsninger, hvis der er behov for avancerede automatiseringer.

blue arrow to the left
Imaginary Cloud logo

Om projektet: Dwipper

Som en del af min læringserfaring arbejdede jeg med begge rammer for at udvikle en applikation kaldet Dwipper, hvor brugerne poster deres brusetanker som Dwipps.

Appen havde følgende skærme:

  • Grundlæggende login, registrering og glemt adgangskode
  • Alle Dwipps, for at se alles Dwipps
  • Min Dwipps, hvor du kan se alle Dwipps, du har sendt
  • Ny Dwipp, til at skrive og sende en Dwipp
  • Skift adgangskode, hvor brugeren kan ændre sin adgangskode
  • Log ud, hvor brugeren kan logge ud

For mig var dette en fantastisk læringsoplevelse. Flutter føltes mere intuitiv, ligesom hvordan du arbejder med widgets føltes enklere end komponenter i React Native. Det eneste virkelige problem, vi oprindeligt havde, var at kommunikere med appens backend. Det var ikke noget direkte relateret til selve rammen, kun et spørgsmål om at finde ud af, hvad og hvordan man sender.

React Native, på den anden side, var lidt mere besværlig, måske fordi Jeg havde ingen tidligere erfaring med JavaScript. Den mest frustrerende del var at finde ud af, hvordan man konfigurerer navigationen mellem login-delen og den „rigtige“ del af appen. At skulle installere en ny komponent, hver gang vi havde brug for noget til en bestemt opgave, var ikke særlig behageligt.

Sammenligning med andre rammer

Flutter vs Ionic

Da Ionic oprindeligt blev udgivet helt tilbage i 2013, halter den lidt bagefter Flutter. Hvis udvikleren ikke er lydig i JavaScript, CSS og HTML5, opstartstiden for færdigheder vil koste tid og penge i at lære rammerne, mens Flutter har en jævnere læringsoplevelse. At være i stand til varm genindlæsning til hurtig eksperimentering giver også mulighed for hurtigere udvikling.

React Native vs Ionic

Når vi taler om React native vs Ionic, vi kan sige, at Ionic har god dokumentation, og dens værktøjer er godt forstået af webudviklere. Men da den er bygget oven på en browser, kan koden ikke let få adgang til oprindelige funktioner.

React Native, på den anden side, har et stort samfund, der sikkerhedskopierer det, hvilket fører til, at flere problemer eller problemer løses af andre udviklere online. React Native er oversat til indfødt kode, at være i stand til nemt at nå 60 billeder i sekundet, som om det er en indbygget app. Det er dog bakket op af et stort firma, hvilket betyder, at eventuelle nye værktøjer kun frigives i henhold til nævnte virksomheds behov.

blue arrow to the left
Imaginary Cloud logo

React Native vs Flutter: hvilken er bedst?

I slutningen af dagen, når du spørger dig selv, hvilken der er den bedste, Flutter vs React Native, kommer det hele ned på personlige præferencer.

En person med mere viden og erfaring i JavaScript eller React vil mest foretrækker sandsynligvis at bruge React Native, da overgangen er ret glat. På den anden side vil en udvikler, der nyder det objektorienterede paradigme, mest foretrækker sandsynligvis at bruge Flutter.

I tilfælde af at du har brug for det udvikle en mobilapp mere kompleks end Dwipper, du kan overveje at bruge Flutter, da det er lidt mere populært end React Native lige nu. Denne popularitet kan være nyttig, når du jagter på din app. Flere mennesker betyder en bredere vifte af problemer, hvilket øger sandsynligheden for at finde nogen med det samme problem som dig eller få det løst af et andet medlem af samfundet, der allerede har stødt på det.

Grow your revenue and user engagement by running a UX Audit! - Book a call

Fandt du denne artikel nyttig? Du kan måske også lide disse!

blue arrow to the left
Imaginary Cloud logo
Vasco Amorim de Almeida
Vasco Amorim de Almeida

Juniorudvikler. Overentusiastisk over strategi og rollespil. Lidenskabelig for musik, mest sang. Jeg har 4 smukke katte.

Read more posts by this author

People who read this post, also found these interesting:

arrow left
arrow to the right
Dropdown caret icon