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.
Tiago Botelho

Februar 21, 2024

Min Read

Sådan fremskyndes udviklingen med React Native og Expo

Hvis du er her, undrer du dig måske“Hvordan kan React Native og Expo hjælpe mig med at opbygge min næste mobilapplikation hurtigere?“.

Som praktikanter hos Imaginær sky, blev vi foreslået at udvikle en applikation, der på en eller anden måde var nyttig i den situation, som verden i øjeblikket står over for, Coronavirus-pandemien. På grund af denne situation er vi nødt til at vedtage nye procedurer om, hvordan vi forvalter fællesarealer i virksomheden. Da vi nu har begrænsninger i, hvor mange mennesker der kan være i samme rum i henhold til dets størrelse, er vi nødt til at reducere spredningen af virussen ved at gruppere mennesker, der deler det samme arbejdsområde.

Det er også vores hensigt for denne applikation at øge bevidstheden ved at vise nogle advarselsmeddelelser og spore tilgængeligheden af et rum uden at besøge det.

Som et resultat af disse begrænsninger var vores mål at løse dette problem ved at udvikle en app ved hjælp af disse React Native og Expo. Vi var ikke bekendt med nogen af disse, som du måske ikke er, så rolig, med lidt læsning og øvelse forstår du, hvordan de fungerer, og hvorfor de er et godt valg, når det kommer til udvikling af mobilapps. Derfor synes vi, det er vigtigt at dele vores rejse og nogle erfaringer fra vores erfaring.

Dette indlæg kan hjælpe dig med at optrappe dit næste projekt, og vi håber, at dette kan oplyse dine næste trin, og hvilke fordele det medfører. I dette blogindlæg vil vi tale om disse to rammer, hvordan de hænger sammen, og hvorfor dette kan spare dig lidt tid, selvom du ikke er bekendt med mobiludvikling. Men lad os starte med det grundlæggende i disse teknologier.

blue arrow to the left
Imaginary Cloud logo

Hvad er React Native?

React Native er en open source-ramme til opbygning af native apps med React oprettet af Facebook og udgivet i 2015. Det giver dig mulighed for at bruge native UI-kontroller og have fuld adgang til den oprindelige platform, der leveres fra komforten i et JavaScript-bibliotek. React Native gør det nemt at udvikle samtidig til både Android og iOS, da koden kan deles på tværs af platforme.

Plus, denne ramme kombinerer brugeroplevelsen af de oprindelige platforme med udviklerens viden om at bygge med React på nettet, hvilket understøtter den ønskede tilgang til „Lær én gang, skriv overalt“.

blue arrow to the left
Imaginary Cloud logo

Hvad er Expo?

Expo er en ramme og en platform til universelle React-applikationer. Det leverer et sæt værktøjer og tjenester, der forenkler udvikling og test af React Native apps, hvilket giver mulighed for nemt at køre koden på din telefon. Udover det giver Expo en mere robust og udviklervenlig arbejdsgang.

blue arrow to the left
Imaginary Cloud logo

Sådan installeres React Native?

Opsætning af udviklingsmiljøet kan være anderledes afhængigt af den erfaring, du har med mobiludvikling, men det er ikke et problem.

Hvis du er ny inden for udvikling af mobilapps, den nemmeste måde at komme i gang er med Expo CLI.

Hvis du allerede er bekendt med udvikling af mobilapps, kan det være en god idé at bruge React Native CLI.

Vi vil dække opsætningen for nye mobiludviklere, for selvom du er bekendt med mobiludvikling, er Expo en rigtig god ramme at bruge og let at lære.

blue arrow to the left
Imaginary Cloud logo

Sådan installeres Expo?

Der er to værktøjer, som du skal bruge til at udvikle apps med Expo: Lokalt udviklingsværktøj og en mobilklient til at åbne din app.

Som et lokalt udviklingsværktøj bruger vi Expo CLI. Ud over kommandolinjegrænsefladen (CLI) har den også en webbaseret grafisk brugergrænseflade (GUI), der dukker op i din webbrowser, når du starter dit projekt.

Expo installation

Du får brug for Node.js for at installere Expo CLI. Efter installation af Node.js kan du nu installere Expo CLI ved at køre følgende kommando: npm installation -g expo-cli

Når du har fulgt alle de trin, som vi allerede har dækket på denne blog, er alt hvad du skal gøre at køre følgende kommando med et projekt kaldet for eksempel „MyProject“: Expo Init MyProject

blue arrow to the left
Imaginary Cloud logo

Fordele ved at bruge React Native

Du må undre dig over, hvorfor du skal bruge React Native. Vi vil tale om nogle fordele, når vi bruger denne ramme.

  1. Genanvendelighed af kode: med React Native vil du være i stand til at udvikle kode på tværs af platforme uden behov for at bygge en app til hver platform. Det meste af den skrevne kode i React Native kan genbruges til både OS (Android og iOS).
  2. Forudbyggede komponenter: Selvom denne ramme er ny/ung, kan du finde allerede byggede komponenter, som du kan bruge i din mobilapplikation. React UI-rammer som Material UI giver dig forudbyggede komponenter til hurtigere og enklere udvikling, der kan tilpasses dine behov.
  3. Feedback i realtid: At hente realtidsdata og generere opdateret brugergrænseflade, når noget ændres på koden, er en af de største React Natives funktioner. Når du bygger din app, skal du se dine kodeændringer, og du har to muligheder. Live genindlæsning er nyttig, når du har brug for at genindlæse hele appen, når en fil ændres (for eksempel for at teste ruter/navigation). Udover det, Varm genindlæsning kan være nyttigt, når du bare vil opdatere de filer, der blev ændret uden at miste tilstanden af appen.
  4. Ydeevne: React Native ydeevne er næsten lige så god som native ydeevne. Det faktum, at programmeringssproget er optimeret til mobile enheder og brugen af to separate tråde (en til native API'er og den anden til brugergrænsefladen) gør det muligt at køre React Native apps effektivt.
  5. Popularitet: Selvom React Native er en nybegynder til opbygning af mobilapps på tværs af platforme, har den allerede betydelig popularitet, der bruges af de største virksomheder. Bare for at få en idé er GitHub-samfundet i React Native allerede meget større, i antallet af bidragydere end Swift for eksempel.

React Native's interest over time (Google Trends)

Ifølge Google Trends, som vi kan se fra diagrammet ovenfor, er undersøgelser relateret til React Native steget, hvilket viser den voksende interesse og efterspørgsel efter denne teknologi.

'react-native' tag on Stack Overflow 2019 survey

Desuden var React Native ifølge Stack Overflow 2019-undersøgelsen den 6. mest populære ramme blandt udviklere. Antallet af spørgsmål om Stack Overflow relateret til React Native er også steget siden udgivelsen.

blue arrow to the left
Imaginary Cloud logo

Er Expo let at lære?

Ifølge vores erfaring gør Expo tingene virkelig enkle, når vi taler om at køre og debugge. Du kan køre din app til test uden nogen indsats eller kontrollere nogle fejl, og endda debugge din app. Dette er helt sikkert en af grundene til, at Expo's popularitet er steget, som vi kan se fra nedenstående diagram.

Expo's interest over time (Google Trends)

Når opsætningen er afsluttet, hvis du vil køre din app for at se, hvordan dine fremskridt går, er alt hvad du skal gøre at køre følgende kommando: npm start. Derefter vises et vindue i din webbrowser. Du kan teste det på simulatorer, både til Android og iOS, men du kan også køre på din egen enhed, du skal bare installere Expo-klientappen og scanne den QR-kode, du ser i terminalen eller i Expo Dev Tools. Bemærk, at Expo ikke kun er en ramme, men også en platform, hvor du kan finde en masse nyttig dokumentation, tutorials, eksempler fra samfundet og endda blive en bidragyder på GitHub.

blue arrow to the left
Imaginary Cloud logo

Hvad hvis du vil slippe af med Expo?

Du spekulerer måske på, om det er muligt at fortsætte dit projekt uden at bruge Expo på det. Ja, det er det. Hvis du har en dårlig oplevelse med at udvikle din app ved hjælp af Explo CLI, kan du nemt forlade den og flytte til et React Native-bare projekt.

Hvad er dette med React Native bare projektet? Simpelthen vil dit projekt omfatte mappere/mapper relateret til operativsystemerne (iOS og Android), hvilket giver dig mulighed for at oprette dine egne native builds. Så hvis du for eksempel ved, at du i sidste ende bliver nødt til at inkludere din egen oprindelige kode i projektet, kan du skubbe expo ud, der kører kommandoen npm run skub ud på konsollen.

blue arrow to the left
Imaginary Cloud logo

Expo Byg

Når vi tænker på processen med at opbygge en mobilapp, kan vi tænke på det som en kompleks proces. Af denne grund forsøger Expo at forenkle og fremskynde hele processen. I officiel dokumentation, forklarer de detaljeret alle de trin, du skal følge, og giver dig endda muligheden for automatisk at generere nøglelager og legitimationsoplysninger, der er nødvendige for applikationen.

Nøglebutikken giver dig mulighed for at gemme kryptografiske nøgler i en beholder for at gøre det vanskeligere at udtrække fra enheden. Når nøglerne er i nøglelageret, kan de bruges til kryptografiske operationer, hvor nøglematerialet forbliver ikke-eksporterbart. Desuden tilbyder det faciliteter til at begrænse, hvornår og hvordan nøgler kan bruges, såsom begrænsning af nøgler, der kun skal bruges i visse kryptografiske tilstande. Så du behøver ikke bekymre dig om alle disse detaljer, da Expo automatiserer processen med at underskrive din app til iOS og Android.

blue arrow to the left
Imaginary Cloud logo

Opbygning af en app med React Native og Expo

Vi havde vores første kontakt med disse rammer, så snart vi startede vores praktikplads hos Imaginary Cloud. Her begyndte vi at arbejde med React Native og Expo som en del af udviklingen af en mobilapplikation til et internt projekt.

  1. Vores erfaring

I starten var det svært at forstå, hvordan man arbejder med disse teknologier, da vi lige var begyndt. Det var en ny verden for os. Den tilgængelige dokumentation samt hjælp fra vores kolleger var imidlertid meget vigtige aspekter i udviklingen af dette projekt. Det er helt normalt, hvis der er tvivl eller spørgsmål vedrørende disse rammer på et tidligt tidspunkt. Under udviklingen forsvinder disse tvivl for at give plads til viden og erfaring. Brugen af nogle React Native-biblioteker samt nogle forudbyggede komponenter, sparede os ikke kun lidt tid, men gjorde det også lettere for os at udføre arbejdet.

  1. Vanskeligheder

På trods af at React Native hjalp os med at genbruge kode til Android og iOS, var der visse detaljer, som vi måtte tage højde for på grund af forskellene mellem OS. For eksempel kunne linjehøjdeegenskaben for nogle skrifttyper ikke være den samme for begge platforme, ellers ville brugerne bemærke forskellige stilarter fra iOS-appen og Android-appen.

Et af de mest udfordrende problemer, vi stod over for, var, hvordan man indlæser skrifttyper i vores app. Vi prøvede mange forskellige tutorials, vi søgte meget, og vi mistede lidt tid på at prøve at bruge en brugerdefineret skrifttype, men det endelige resultat var besværet værd.

En anden af vanskelighederne kom fra brugen af forudbyggede komponenter. React Native er følsom over for pakker og deres versioner, og det er nødvendigt at huske på, at nogle ting fungerer i React Native, men endnu ikke understøttes af Expo, så det er nødvendigt at kigge efter andre løsninger.

For eksempel brugte vi et forudbygget vælgervalg, men dens seneste version var ikke kompatibel med Expo, mere præcist på Android, så vi var nødt til at nedgradere den. Ikke alt er let. Nogle gange er du nødt til at finde en anden måde at nå dine mål på. Ikke desto mindre, som du sikkert har bemærket, kan React Native og Expo forenkle mange ting og hjælpe dig med at spare lidt tid.

  1. Sidste tanke?

Samlet set var vores rejse med dette projekt meget positiv. Da det var vores første oplevelse/tid med at arbejde med React Native og Expo, følte vi nogle vanskeligheder i starten, men da vi begyndte at vide mere om disse teknologier, blev det lettere og naturligt.

Vi lærte, at det er muligt nemt at køre en applikation på vores egen enhed og se ændringerne på koden næsten øjeblikkeligt, hvilket endte med at retfærdiggøre den komfort, vi følte, da vi brugte React Native med Expo. Derudover hjalp de mange API'er, de tilbyder, os med at nå videre på vores mål. For eksempel var Expo-Notifications nyttige for os og leverede væsentlige funktioner i omfanget af meddelelser.

Afslutningsvis steg vores viden, og det var et meget berigende projekt om, hvordan man udvikler en mobilapplikation ved hjælp af disse rammer. Vi indså dens fordele og tillod os at nå vores oprindelige mål.

Ved Imaginær sky vi arbejder ikke kun med React Native, men med en bred teknisk stak. Hvis du har brug for hjælp til at opbygge en skalerbar mobilapp, venter vi på dig! Send os en linje her!

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
blue arrow to the left
Imaginary Cloud logo
Tiago Botelho
Tiago Botelho

Webudvikler. Lidenskabelig for serier og musik. Fodboldentusiast. En drømmer, der håber en dag at markere verden med noget, han har udviklet.

Read more posts by this author

People who read this post, also found these interesting:

arrow left
arrow to the right
Dropdown caret icon