ukryj menu
SPEC
aktualizacja: 2021-10-12 10:29:31
1. instalacja aplikacji React Native w wersji quick app z klientem Expo
taka aplikacja nie generuje pliku APK do instalacji
tylko uruchamia się z pomocą klienta Expo zainstalowanym na telefonie
jeśli klienta Expo nie ma na tablecie, zainstaluj/zaktualizuj go ze sklepu Play (ma być wersja 2.17.4 lub nowsza)
UWAGA:zalecam używać cmd, zamiast terminala lub powershella
- ustaw chrome jako domyślną przeglądarkę (uruchomi się w niej konsola aplikacji)
- utwórz na pulpicie folder na aplikację (nazwa nie powinna zawierać przecinka)
- otwórz katalog %AppData% i usuń wszystko z katalogu npm jeśli taki jest
- w folderze na pulpicie uruchom z konsoli polecenie: npm install expo-cli -g
- po zakończeniu spakuj RAR-EM zawartość katalogu npm
- skopiuj i rozpakuj rar-a do swojego katalogu na pulpicie
- w folderze na pulpicie uruchom z konsoli polecenie: expo init testapp001
- wybierz blank i podaj nazwę aplikacji
- po zakończeniu pobierania uruchom polecenie expo start ./testapp001
startuje serwer, który pakuje i hostuje aplikację, która wyświetlana jest na telefonie z użyciem klienta Expo
Uwaga1: przed uruchomieniem wyczyść pamięć aplikacji Expo na tablecie (aby nie włączały się poprzednie aplikacje)
Uwaga2: przed uruchomieniem wyłącz opcję File/autosave w VSCode
Uwaga3: wyłącz zaporę Ustawienia / Zapora Windows Defender / Włącz lub wyłącz zaporę (egzamin/egzamin)
zeskanuj kod QR z Chrome
poczekaj na pierwsze dłuższe spakowanie aplikacji, kolejne będą już szybkie (hot reloading)
b) instalacja aplikacji na koncie administracyjnym
- ustaw chrome jako domyślną przeglądarkę
- npm install expo-cli -g
- potem expo init testapp001
- potem npm start ./testapp001 (obecnie expo start ./testapp001)
3. instalacja dodatku react-native-snippet
dodatek pomagający m in w tworzeniu plików jak poprzednio
https://marketplace.visualstudio.com/items?itemName=jundat95.react-native-snippetkopiuj
zobacz opis działania i skróty np: rnc
PROSZĘ O TWORZENIE KLAS Z POMOCĄ TEGO DODATKU, A NIE KOPIOWANIE ISTNIEJĄCYCH
4. plik startowy aplikacji
informacja o tym który to plik mieści się w pliku package.json
node_modules/expo/AppEntry.jskopiuj
5. podstawowe wbudowane komponenty RN do dzisiejszej pracy
<View /> - kontener na inne (odpowiednik DIV-a)
<Text /> - zawartość tekstowa (nie można pisać tekstu poza komponentem Text)
<TouchableOpacity /> - kontener wrapujący klikalne elementy (może zawierać dowolną strukturę wewnątrz)kopiuj
potrzebne na dzisiaj docs
https://reactnative.dev/docs/flexbox
https://reactnative.dev/docs/view
https://reactnative.dev/docs/touchableopacitykopiuj
6. style - flex
https://reactnative.dev/docs/stylekopiuj
do pracy z dzisiejszymi ćwiczeniami zapoznaj się z takimi stylami:
https://reactnative.dev/docs/layout-propskopiuj
flex
flexDirection
justifyContent
alignSelf
alignContentkopiuj
7. podział aplikacji na pliki - skrin 01
po zainstalowaniu dodatku (pkt 2) komenda rnce w pustym pliku tworzy klasę RN
poniżej przykładowa zawartość komponentów dla najprostszej aplikacji -> skrin 01
zawierającej header, content, footer w folderze /components
plik App.js
import React from 'react';
import {
StyleSheet,
Text,
View
} from 'react-native';
import Header from "./components/Header"
import Content from "./components/Content"
import Footer from "./components/Footer"
export default class App extends React.Component {
render() {
console.log("App") // tą konsolę zobacz w przeglądarce
return (
<View style={styles.container}>
<Header />
<Content />
<Footer />
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#ffff00',
},
});kopiuj
pliki Header.js, Content.js, Footer.js
import React, { Component } from 'react';
import { View, Text, StyleSheet } from 'react-native';
class Header extends Component {
constructor(props) {
super(props);
this.state = {
};
console.log("Header")
}
render() {
return (
<View style={{flex:1,backgroundColor:"#FF0000"}}>
<Text style={styles.text}> Header </Text>
</View>
);
}
}
const styles = StyleSheet.create({
text: { fontSize: 48, }
});
export default Header;
kopiuj
Uwaga: w konsoli aplikacji ReactNative w Chrome zobacz czy występuje dwa razy console.log()
8. ćwiczenia z layoutem widoczne na kolejnych skrinach
wykonaj wszystkie poniższe ćwiczenia, przeczytaj dokładnie opis danego ćwiczenia:
skrin 02 - aplikacja zawiera komponenty: App, Item; kolory, napisy i wielkości są przekazywane w props do Item
skrin
03 - aplikacja zawiera komponenty: App, Item; dane kolorystyczne są w
jednej tablicy, jedno główne View, Itemy utwórz z pomocą map
skrin
04 - aplikacja zawiera komponenty: App, Item; dane kolorystyczne są w
jednej tablicy, dwa podrzędne View, flex reverse dla prawej kolumny
aplikacji
skrin 05 - aplikacja zawiera komponenty: App, Item; dane kolorystyczne są w jednej tablicy, dwa kolory fonta
skrin 06 - aplikacja zawiera komponenty: App, Item; pętla w pętli (jedna tworzy pionowe Views, druga Itemy w nich)
skrin
07 - aplikacja zawiera komponenty: App, Item2; pojawia się klikalny
komponent TouchableOpacity, kliknięcie wyświetla kolor tła i numer
elementu
9. Zadanie
przydzielam indywidualnie po skończeniu poprzednich
10. dokumentacja ReactNative
https://reactnative.dev/kopiuj