Mobilne Aplikacje z React
5 godz. 51 min · React Native · Full-stack i Programowanie
Piotr SzacińskiZarówno iOS jak i Android posiadają swoje natywne SDK, do obsługi którego musimy poznać nowe języki - Swift czy Kotlin, o Objective-C czy Javie nie wspominając. Z kolei React Native jest do tego świetną alternatywą, która pozwala tworzyć jeden kod na obie platformy. Dodatkowo - bazuje na najpopularniejszym frameworku webowym, co znacząco zmniejsza próg wejścia.
Tak samo jak "czysty" React, React Native opiera się na komponentach. Poznasz ich specyfikę i nauczysz się poprawnie budować UI aplikacji. Zrozumiesz też jak najwydajniej zarządzać skomplikowanym layoutem, takim jak długie listy, i jak to wszystko łatwo stylować.
Animacje to nie tylko efekty przyjemne dla oka - to przede wszystkim dobry UX, który pozwala użytkownikowi odnaleźć się w aplikacji i zrozumieć jej mechanikę. Podczas kursu poznasz wszystkie podstawowe metody i koncepcje tworzenia animacji oraz poznasz sposoby optymalizacji ich działania. Dodatkowo omówimy prawidłowe podejście do dużo bardziej skomplikowanych interaktywnych animacji, przedstawimy ciekawe biblioteki oraz best-practices.
Praktycznie każda aplikacja, niezależnie od tego, czy web, czy mobile, składa się z wielu widoków i ekranów. Zarządzanie ścieżkami, jakimi użytkownik może się poruszać, to jedna z najważniejszych rzeczy - a w tym kursie dowiesz się jakich narzędzi należy używać i jak łatwo obsługiwać zagnieżdżone ekrany.
Niewątpliwym atutem aplikacji jest to, że może praktycznie bez ograniczeń przechowywać content w urządzeniu telefonu, a przez to - dostarczać treści niezależnie od dostępności internetu. Omówimy różne koncepcje zapisywania danych oraz poznamy metody i narzędzia do ich wdrażania.
Przybliżymy ci proces wypuszczania aplikacji "w świat" oraz przedstawimy narzędzia, z których sam autor korzysta do ułatwienia tego procesu.
Kurs jest dla każdego kto zna podstawy JavaScript oraz React i chciałby się rozwijać i tworzyć mega ciekawe projekty, które mogą używać aparatu czy sensorów smartfona.
0.62.2+
W ostatniej lekcji zrobiliśmy sobie wykorzystaliśmy webview pokazaliśmy
sobie że możemy sobie zagnieździć tak naprawdę całą stronę w naszej aplikacji ale
możemy też zagnieżdżać fragmenty html i
używać tego właśnie na przykład w aplikacjach z newsami a w tym
momencie dochodzimy do chyba największej i najważniejszej funkcjonalności
aplikacji czyli do nawigacji bo jakby rzadko się zdarza tak żeby nasza
aplikacja składała się od jednego dwóch ekranów które na siebie nachodzą jednak jest
to jakiś taka sama ścieżka którą użytkownik musi przejść widok logowania
widoku głownego i tak dalej z racji tego że react native
jest otwartym środowiskiem to tych nawigacji jest parę
opcji dwie najpopularniejsze to jest react navigation i to jest
numer jeden ale mamy też całkiem popularną aplikację jak react native navigation
od wix i tak
naprawdę obie są dość popularne jak widać wix ma prawie 12 tysięcy gwiazdek
w przypadku react navigation jest chyba 15 16 zobaczymy jest to
18 tysięcy gwiazdek a i może te liczby nie oddają tego wszystkiego natomiast ja
osobiście korzystam z react navigation a to mam rozumieć że się najszybciej rozwija
co ciekawe jest to stworzone napisane że funded
między innymi przez expo team więc cała kwestia nawigacji z
expo jest oczywiście tutaj w pełni wspierana nie będzie żadnych problemów że coś mogłoby nie działać więc
z naszych podejmując wybór myślę że powinniście się wszyscy decydować ja się na to
decyduje na react navigation dlatego że oczywiście react native navigation jak
najbardziej też by działał jak widać jest aktualizowany całkiem na bieżąco
no dobra react navigation to takie trochę react native w pigułce dlatego że od wersji
zwłaszcza 5 w 4 też już chyba zaczęto tak do tego podchodzić
wszystko jest rozbite na osobne paczki to znaczy tak naprawdę my instalujemy sobie najpierw paczkę
ogólną która bazuje na wielu innych paczkach o
których też zaraz powiem a natomiast jeśli chcemy sobie korzystać
z jakiś konkretnych widoków to musimy je doinstalować zewnętrznie one
wszystkie korzystają z tego core które sobie doinstalowaliśmy
ma to swoje plusy ma swoje minusy natomiast ewidentnym plusem jest
to że mogą się te projekty podprojekty tak naprawdę rozwijać
trochę niezależnie więc zainstalujemy sobie zaraz nasz
nasz react navigation naszą paczkę i odpowiednie
paczki które są wymagane powiem tylko jeszcze na początku jak
tą nawigację się je właściwie tak jak bym mógł opisać w skrócie czym
właściwie ta nawigacja jest jak ona działa to mogę powiedzieć że najważniejszym elementem są
dwa najważniejsze elementy tej nawigacji to jest navigator oraz
screen i taki nawigator to jest po prostu kontener
który przechowuje nam różne ekrany i zarządza tym kiedy
dany ekran powinien się wyświetlać a ekran no to po prostu taki ekran
w aplikacji jak mamy logowania ekran z jakąś listą i tak dalej i my będziemy
się zajmować trzema najpopularniejszymi właściwie dwoma najpopularniejszymi ale wspomnę o trzech taki
pierwszy to jest stack navigator to jest po prostu taki ekran w którym jesteśmy sobie w jakimś widoku
klikamy przycisk i przenosi nas do innego widoku oraz tap navigation to
jest taka nawigacja dolna bardzo popularna na JS-ie czyli po prostu mamy zakładki a
i sobie między tymi zakładkami przychodzimy natomiast zanim przejdziemy jeszcze do
tab navigation to sobie zainstalujemy wszystkie niezbędne paczki
możecie wejść na stronę react navigation org i tutaj jest bardzo dobra dokumentacja
tego wszystkiego wszystkich możliwości i konfiguracji w jaki sposób to robić
jak widać tu jest osobno napisane jak to dokładnie robić dla expo więc
zacznijmy od doinstalowania sobie głównego pakietu
okej poszło zaskakująco szybko natomiast to co
jest sercem tego react navigation to są te wszystkie paczki które zaraz
tak pokrótce omówię musimy je doinstalować również i tak
mamy tutaj paczkę react native reanimated to jest biblioteka dla powiedzmy zaawansowanych
animacji ona wspomaga jak navigation
w animacjach przejściach między ekranami mamy react-native-gesture-handler to
jest biblioteka która pomaga w jak nazwa wskazuje w zarządzaniu w
obsłudze gestów użytkownika mamy react-native-screens to jest biblioteka która mapuje nasze
widoki w aplikacji na natywne widoki czyli tak jak wspominałem jest to
ui view controller na iOS oraz fragment w androidzie mamy
react-native-safe-area-context czyli to tak naprawdę to czego już trochę
używaliśmy czyli to żeby te nasze kontenery z
nawigacją też nie wychodziły poza to obszary które powinno i na koniec mamy react-native-community
masked-view i to zapwene jest wykorzystywane również przy jakichś
animacjach i przejściach zainstalujemy sobie te pakiety to
może chwilę potrwać bo o tych pakietów trochę jest i na pewno te pakiety będą wymagały od
nas doinstalowania poszło nawet szybko będą wymagały od nas doinstalowania paczek
natywnych w iOS czyli wchodzimy sobie do folderu ios oczywiście tylko
te osoby które korzystają z react native cli jeśli korzystamy z expo to nie musimy tego robić
jak widać parę rzeczy nam się tutaj zainstalowało okej
a i dla pewności wystartujemy jeszcze raz naszą
aplikację bo jak instalujemy coś natywnie zmieniamy
jakieś potsy i zainstalujemy to czasem nasz metro bundler
sobie poradzi z tym czasem nie a dla pewności możemy to zrobić nie trwa to tak długo okej
nasz ios się zbudował zobaczmy go na z androidem jest
okej ważną rzeczą trzeba pamiętać na
szczęście jest to wspomniałem tutaj jest ta kwestia znaczy ze względu na to że korzystamy
z react native gesture handlera który czasem
psuje pewne rzeczy wymagalne jest to żeby dodać
takiego importa nad wszystkim w naszym pliku index js czyli
przechodzimy sobie do naszego pliku index js i nad wszystkimi importami dodajemy sobie import react
native gesture handler bez tego jak to zresztą jest napisane być może także będzie wszystko działać ale
może być też tak że będziemy dostawać dziwne crashe na produkcji więc jeśli chcemy tego uniknąć no
to lepiej to zrobić i tak mamy taki typowy błąd androidowy na
iOS-ie to się zdaje że już się zbudowało okej
spróbuję przebudowac projekt niestety nie więc
spróbujmy przebudować projekt androidowy okej
wszystko się skompilowało jakby nie udało się odpalić aplikacji
ale myślę że to nie będzie problem jak sobie teraz odpalimy to
jest okej tak że udało nam się załadować ten błąd bardzo często występuje przy instalacji tej paczki
dlatego zawsze trzeba pamiętać żeby to przebudować i ostatnim krokiem do takiej pełnej
konfiguracji jest zaimportowanie sobie navigation containera
jako takiego głównego elementu który opakowuje
naszą aplikację więc zaimporujemy sobie go w naszym app js i
użyjemy jako taki nasz główny element powiedzmy
na tym safe area i może na razie z tego safe area sobie
odpuścimy ojej
i tak naprawdę
w ogóle zostawmy sobie tylko kontener to webview nie
będzie nam potrzebne a to też nam nie będzie potrzebne już
zbytnio okej
no i zobaczmy czy tutaj mam
wszystko działa odświeżmy sobie aplikację jest okej
bo w sumie skoro wrzuciłem cały content więc się to buduje a no
i tyle jeśli chodzi o konfigurację no i zaraz przyjdziemy do faktycznego wdrażania naszej nawigacji