Why should you use React mobile?

Konverter din React-app til en mobiloplevelse

13/11/2022

Rating: 4.55 (3758 votes)

Drømmer du om at tage din eksisterende React webapplikation og forvandle den til en fuldt funktionel native mobilapp? Måske har du allerede en veludviklet weboplevelse, men ønsker at udvide din rækkevidde til mobile enheder. Traditionelt har dette krævet en stejl indlæringskurve, ofte med nye teknologier som React Native. Men hvad nu hvis du kunne genbruge det meste af dit eksisterende arbejde og opnå native resultater med minimal indsats? Det er her, Capacitor kommer ind i billedet som en sand game-changer.

What is React Native & Expo?
In this guide, we’ll walk you through the fundamentals of React Native and Expo, help you set up your development environment, and guide you in creating your first mobile app. React Native, built on the popular React library, enables you to develop native iOS, Android, Windows, MacOS, and web apps from a single codebase.
Indholdsfortegnelse

Hvad er Capacitor?

Capacitor er en banebrydende open-source teknologi, der giver dig mulighed for at pakke enhver webapplikation ind i en native mobilcontainer. Uanset om din app er bygget med React, Vue, Angular eller ren JavaScript, kan Capacitor tage din webkode og omslutte den i et native webview. Det genererer endda de nødvendige native projekter til Xcode (iOS) og Android Studio (Android) for dig. Hvad der gør Capacitor særligt kraftfuldt, er dets evne til at give adgang til native enhedsfunktioner – som kamera, GPS og notifikationer – via et JavaScript-interface. Dette betyder, at du kan bygge robuste og funktionsrige native apps uden at skulle lære helt nye frameworks eller sprog.

Fordelene ved at bruge Capacitor med React

Hovedårsagen til at vælge Capacitor til din React-app er muligheden for at genbruge din eksisterende kodebase. Du behøver ikke at omskrive din frontend i React Native eller en anden mobil-specifik teknologi. Capacitor tillader en næsten problemfri overgang fra web til mobil. Dette sparer tid, ressourcer og holder udviklingsomkostningerne nede. Ydermere, hvis du allerede er fortrolig med React, vil du finde processen med at integrere Capacitor intuitiv. Du kan fokusere på at levere en fantastisk brugeroplevelse, der fungerer på tværs af platforme.

Forberedelse af din React App til Capacitor

Lad os starte med at skabe en simpel React-applikation. Vi bruger `create-react-app` for at få en hurtig og ren opsætning:

npx create-react-app my-app cd my-app

For at Capacitor kan fungere, skal vi bygge vores React-applikation til statiske filer. Vi tilføjer et simpelt build-script til vores `package.json` for at gøre dette:

{ "scripts": { "start": "react-scripts start", "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" } } 

Nu kan du køre `npm run build`. Dette vil skabe en `build`-mappe i roden af dit projekt. Denne mappe indeholder de statiske filer, som Capacitor vil bruge til at bygge din native app. Det er vigtigt at bemærke, at vi senere skal pege Capacitor mod denne mappe.

Tilføjelse af Capacitor til din React App

Nu hvor vores React-app er klar, er det tid til at integrere Capacitor. Først installerer vi Capacitor CLI som en udviklingsafhængighed:

npm install -D @capacitor/cli 

Derefter initialiserer vi Capacitor i vores projekt. Du kan trykke Enter for at acceptere standardværdierne for app-navn og bundle ID:

npx cap init 

Næste skridt er at installere de nødvendige Capacitor-pakker:

npm install @capacitor/core @capacitor/ios @capacitor/android 

Nu skal vi tilføje de native platforme, som Capacitor vil generere:

npx cap add ios npx cap add android 

Efter at have kørt disse kommandoer, vil du bemærke, at der er dukket nye mapper op i din projektstruktur: `ios` og `android`. Disse er de faktiske native projekter! For at kunne arbejde med dem, skal du have installeret Android Studio for Android-projekter og en Mac med Xcode installeret for iOS-projekter.

Konfiguration af Capacitor

Capacitor bruger en konfigurationsfil kaldet `capacitor.config.json` (eller `.ts`). Denne fil indeholder vigtige indstillinger for din app. Den mest kritiske indstilling her er `webDir`. Denne skal pege på den mappe, hvor din React-app buildes til. I vores tilfælde er det `build`-mappen. Opdater din `capacitor.config.json` fil som følger:

{ "appId": "com.example.myapp", "appName": "my-app", "webDir": "build", "bundledWebRuntime": false } 

Nu er det tid til at synkronisere din webkode med de native platforme. Dette gøres med følgende kommando:

npm run build && npx cap sync 

Denne kommando bygger først din React-app og kopierer derefter de genererede statiske filer til de korrekte placeringer i de native projekter. Når du installerer nye Capacitor-plugins, skal du huske at køre `npx cap sync` igen.

Bygning og Implementering af Native Apps

Med synkroniseringen på plads, kan du nu åbne de native projekter i deres respektive IDE'er:

npx cap open ios npx cap open android 

I Android Studio kan du blot vælge en enhed eller simulator og trykke på 'Run'-knappen. For iOS kræver det, at du har et Apple Developer-account sat op i Xcode for at kunne køre på en fysisk enhed, ellers kan du bruge en simulator. Når din app er bygget og kører på enheden, har du succesfuldt transformeret din React webapp til en native mobilapp!

Live Reload til Udvikling

En af de mest værdifulde funktioner under udvikling er live reload. Capacitor gør det nemt at aktivere dette, så dine ændringer i React-koden afspejles øjeblikkeligt på din mobile enhed. For at opnå dette skal din mobile app indlæse indholdet fra din lokalt hostede udviklingsserver.

Først skal du finde din lokale IP-adresse. På macOS kan du bruge:

ipconfig getifaddr en0 

På Windows kan du bruge `ipconfig` i kommandoprompten og finde din IPv4-adresse.

Opdater derefter din `capacitor.config.json` fil med serverens URL:

{ "appId": "com.example.myapp", "appName": "my-app", "webDir": "build", "bundledWebRuntime": false, "server": { "url": "http://DIT_IP_ADRESSE:3000", "cleartext": true } } 

Husk at erstatte `DIT_IP_ADRESSE` med din faktiske lokale IP-adresse og `3000` med den port, din React-udviklingsserver kører på (typisk 3000 for `create-react-app`).

How to build a react app from scratch?
If your app has constraints not well-served by existing frameworks, you prefer to build your own framework, or you just want to learn the basics of a React app, you can build a React app from scratch. The first step is to install a build tool like vite, parcel, or rsbuild.

Kør derefter `npx cap copy` for at kopiere konfigurationsændringerne til de native projekter. Når du derefter åbner og kører appen fra Android Studio eller Xcode igen, vil den indlæse fra din lokale server. Nu vil ændringer i din React-kode automatisk genindlæse appen på din enhed!

Bemærk: Hvis du tilføjer nye Capacitor-plugins, der ændrer native filer, kræver det stadig en fuld rebuild af de native projekter.

Brug af Capacitor Plugins

Capacitors sande styrke ligger i dets plugins, der giver adgang til native funktionalitet. Lad os tage et kig på `@capacitor/share` pluginnet, som giver dig mulighed for at bruge den native dele-dialog.

Installer pluginnet:

npm i @capacitor/share 

Opdater din `src/App.js` fil for at inkludere dele-funktionaliteten:

import React from 'react'; import { Share } from '@capacitor/share'; function App() { const shareDialog = async () => { await Share.share({ title: 'Åbn YouTube', text: 'Se ny video på YouTube', url: 'https://www.youtube.com', dialogTitle: 'Del med venner' }); }; return ( 

Velkommen til React og Capacitor!

Fed kanal

); } export default App;

Husk at køre `npx cap sync` igen og derefter genåbne/genbygge dine native projekter. Når du trykker på knappen, vil du se den native dele-dialog poppe op!

Forbedring af UI med Konsta UI og Tailwind CSS

Mens Capacitor giver dig den native funktionalitet, kan du stadig ønske et mere poleret og native-lignende brugerinterface. Her kan Konsta UI i kombination med Tailwind CSS være en fantastisk løsning. Konsta UI er et UI-komponentbibliotek specifikt designet til at fungere med Tailwind CSS og giver dig komponenter, der efterligner iOS og Androids designsprog.

Forudsætning er, at du allerede har Tailwind CSS sat op i dit React-projekt.

Installer Konsta UI:

npm i konsta 

Opdater din `tailwind.config.js` fil for at inkludere Konsta UI's konfiguration:

// Importer Konsta UI konfiguration const konstaConfig = require('konsta/config'); // Pak din konfiguration ind med konstaConfig module.exports = konstaConfig({ content: ['./src/**/*.{js,ts,javascript,tsx}'], darkMode: 'media', // eller 'class' theme: { extend: {}, }, variants: { extend: {}, }, plugins: [], }); 

Nu skal du wrappe din applikation med Konsta UI's `App`-komponent i din `src/App.js` (eller tilsvarende entry point). Dette giver dig mulighed for at sætte globale parametre som tema:

import { App } from 'konsta/react'; import './App.css'; import ActualAppContent from './ActualAppContent'; // Antag at din rigtige app-logik er her function MyApp({ Component, pageProps }) { return (  {/* Eller "material" for Android-look */}  ); } export default MyApp; 

Eksempel på en Side med Konsta UI

Nu kan du begynde at bruge Konsta UI's komponenter i din React-app. Lad os ændre `src/App.js` til at bruge nogle af disse:

import { Page, Navbar, Block, BlockTitle, List, ListItem, Button } from 'konsta/react'; function App() { return ( 

Her er din React & Konsta UI app. Lad os se, hvad vi har her.

Navigation
); } export default App;

Efter disse ændringer og en genstart af live reload-sessionen, vil du se en app med et markant mere native udseende, alt sammen bygget med React og forbedret med Konsta UI.

Konklusion

Capacitor tilbyder en elegant og effektiv løsning for udviklere, der ønsker at konvertere deres eksisterende React webapplikationer til native mobile apps. Ved at genbruge webkode og drage fordel af et rigt økosystem af plugins, kan du hurtigt og nemt udvide din applikations rækkevidde til iOS og Android. Kombinationen med UI-biblioteker som Konsta UI og frameworks som Tailwind CSS sikrer desuden, at din app ikke kun er funktionel, men også visuelt tiltalende og føles autentisk native.

Overvej Capacitor, hvis du søger en hurtig vej til mobiludvikling uden at opgive din nuværende tech stack. Det er en investering, der betaler sig i form af reduceret udviklingstid og en konsistent brugeroplevelse på tværs af platforme.

Hvis du vil læse andre artikler, der ligner Konverter din React-app til en mobiloplevelse, kan du besøge kategorien Mobiludvikling.

Go up