[[oktatas:telefon:react_native|< React Native]]
====== React Native - Expo kezdés ======
* **Szerző:** Sallai András
* Copyright (c) 2021, Sallai András
* Szerkesztve: 2021, 2022
* Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC BY-SA 4.0]]
* Web: https://szit.hu
===== Bevezetés =====
Ebben a leírásban React Native projektet, az expo paranccsal kezeljük.
Az expo parancs telepítése:
npm i -g expo-cli
Ellenőrizzük:
expo --version
Dokumentáció:
* https://docs.expo.dev/
Online fejlesztés:
* https://snack.expo.dev/
Feltöltő hely:
* https://expo.dev/
Az expo.dev webhelyre feltölthetjük projektjeinket.
===== Node.js =====
A webes megjelenítéshez 2022-12-22-én Node.js 16.x szükséges.
A különböző verziók telepítése:
* https://github.com/nodesource/distributions/blob/master/README.md
===== Kezdés =====
Projekt kezdése:
expo init projekt01
A következőt látjuk:
? Choose a template: › - Use arrow-keys. Return to submit.
----- Managed workflow -----
❯ blank a minimal app as clean as an empty canvas
blank (TypeScript) same as blank but with TypeScript configuration
tabs (TypeScript) several example screens and tabs using react-navigation and TypeScript
----- Bare workflow -----
minimal bare and minimal, just the essentials to get you started
Kezdésnek válasszuk az első **blank** lehetőséget.
Ha elkészült a kód, néhány lehetőséget kínál az expo:
cd porjekt01
yarn start
yarn android
yarn ios
yarn web
A yarn az npm parancs helyett ajánlott csomag és projekt-kezelő. Mindegy melyiket használjuk. Ebben a leírásban az npm parancsot használjuk.
Az indításhoz használjuk az expo start parancsot:
expo start
A "w" billentyűvel webes felületen megnézhetjük az alkalmazást.
===== Kezdés npx paranccsal =====
npx create-expo-app app01
npx expo install react-native-web@~0.18.10 react-dom@18.2.0
npx expo install @expo/webpack-config@^18.0.1
===== Alapkód =====
Ha nem vagyunk a projekt könyvtárában, akkor lépjünk be, majd indítsuk el a szerkesztőt, ami most Visual Studio Code:
code .
A következőket látjuk:
projekt01/
|-.expo-shared/
|-assets/
|-node_modules/
|-.gitignore
|-App.js
|-app.json
|-babel.config.js
|-package-lock.json
`-package.json
Az App.js tartalmazza az alapkomponenseket.
import { StatusBar } from 'expo-status-bar';
import React from 'react';
import { StyleSheet, Text, View } from 'react-native';
export default function App() {
return (
Open up App.js to start working on your app!
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#fff',
alignItems: 'center',
justifyContent: 'center',
},
});
Van egy függvényünk és egy objektumunk:
* App()
* styles
===== Metro Bundler =====
A Metro Bundler fogjuk használni a projekt kezeléséhez.
Indítsunk egy terminálablakot, majd:
npm start
A terminálban a következőket láthatjuk:
› Waiting on exp://192.168.5.5:19000
› Scan the QR code above with Expo Go (Android) or the Camera app (iOS)
› Press a │ open Android
› Press w │ open web
› Press r │ reload app
› Press m │ toggle menu
› Press d │ show developer tools
› shift+d │ toggle auto opening developer tools on startup (enabled)
› Press ? │ show all commands
Logs for your project will appear below. Press Ctrl+C to exit.
Láthatjuk milyen billentyűkombinációkkal indíthatunk feladatokat.
===== Android emulátor futtatása =====
==== Kezelés Android Studio-ból ====
Az Android Studio-val telepített emulátort fogjuk használni. Az emulátort indítását megtehetjük
parancssorból is, ha útvonalba van az emulator parancs, vagy indíthatjuk az Visual Studio kód
ablakából. Ha kevés a memóriánk indítsuk inkább parancssorból.
A következőkben Android Studio-val készítünk egy új emulátort. Ha az Android Studio-ban egyetlen
projekt sincs megnyitva, a "Configure" eszköz, ebben az esetben is elérhető. Ha már van virtuális
eszközünk, ezt a lépést kihagyhatjuk, csak indítsuk el az emulátort.
Az Android Studio induló ablakában válasszuk újra
a **Configure** legördülő listadobozt, azon belül az
**AVD Manager** elemet.
Az előugró ablakban van egy gomb, amivel virtuális
eszközöket készíthetünk.
[ + Create Virtual Device... ]
Válasszuk például a Phone > Pixel 3a-t.
Ezt követően válasszuk a "Next" gombot.
A Release Name mezőben Válasszuk ki az
Android verziót, és kattintsunk a "Download"
linkre, mire az letölti a hozzátartozó képfájlt.
A következő képernyőn adjunk nevet a konfigurációnak,
az "ADV Name" után.
Pixel 3a API 29
Kattintsunk a "Finsih"-re.
Menjünk vissza a Metro Bundler-re.
Ott az indítási lehetőség:
* "Run on Android device/emulator"
Kattintsunk rá.
Menjünk vissza a terminálablakba.
Megjelenik az emulátorban a Helló Világ.
Mentésre, látszik az eredmény az emulátorban.
==== Parancssorból ====
Útvonalba kell lennie az **emulator** parancsnak.
Listázzuk az elérhető eszközöket:
emulator -list-avds
Indítsuk el a kiválasztott emulátort:
emulator @Pixel_3a_API_30_x86
A @ után írjuk a telefonemulátor nevét.
Vagy így is lehet:
emulator -avd Pixel_3a_API_30_x86
Parancssorból futtatva minimális memóriafoglalás: 2,2 GB.
===== Futtatás fizikai eszközön =====
iPhone-ra és Androidra elérhető egy **expo-client** nevű alkalmazás. Telepítsük a fizikai eszközre (telefonra).
* https://expo.dev/client
Android vagy iOS-en a következő lépések szükségesek:
* Telepítsük az **expo-client** alkalmazást.
* Gondoskodjunk arról, hogy legyünk benne a **helyi hálózatban**.
* Például, kapcsoljuk be a wifi-t, ha nincs bekapcsolva.
* Indítás után kapunk egy **QR kód** olvasót.
* A **Metro Bunlder** webes felületén, a bal alsó sarokban található QR kódot olvassuk be.
* A CONNECTION marad az alapértelmezett: "LAN"
===== Fejlesztői menü =====
Emulátorban és fizikai eszközön futtatva kapunk az eszközön egy fejlesztői menüt is.
A fejlesztőmenü elérhető a következő billentyűkombinációval:
* Ctrl + M
{{:oktatas:telefon:react_native:expo_fejlesztoi_menu.png?200|}}
A fejlesztői menüből is kérhető az alkalmazás újratöltése, a "Reload" lehetőséget választva.
===== Gyors kezdés =====
npm install -g expo-cli
expo init Projekt01
cd Projekt01
npm start
Az npm start helyett lehet ez is:
expo start
===== .gitignore =====
Van egy előre legyártott .gitignore fájl, ebbe vegyük még fel:
#...
.expo-shared
===== Metro Bundler =====
==== Fejlesztői menü ====
Ha szimulátorban futtatunk egy alkalmazást egy fejlesztői felület is rendelkezésre áll.
A szimulátorban billentyűkombinációval kapcsolható:
* Ctrl + M
Parancssoros felületen:
* m
==== Újratöltés ====
* r