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 ostatnich lekcjach zrobiliśmy nawigację czyli mamy nawigację stackową
wcześniej zrobiliśmy nawigację tab bar no i teraz chcielibyśmy to połączyć i tutaj
dochodzimy do bardzo fajnej rzeczy jaka jest jaka występuje właśnie w react navigation że
możemy to sobie zagnieżdżać do woli to znaczy wykorzystajmy
sobie tutaj nasz tab navigation tab navigator który
już stworzyliśmy wcześniej okej
jest okej oczywiście teraz będzie wyskakiwać mam błąd
że nie mamy naszego stacka co ciekawe jeśli przejdziemy na naszą
listę elemnt details wrzucimy
tutaj do tego co było poprzednio zrobimy profile mimo że zobaczcie że mamy
tylko tab nawigatora nie mamy żadnego stacka to jednak react navigation
jest na tyle mądry że będzie wiedzieć że chodzi o przeniesienie się na inną zakładkę co
co w wielu przypadkach może być fajnie bo nie interesuje nas to w jaki sposób ma dojść do nawigacji
tylko react navigation sam dojdzie do najbliższego węzła
który ma taką nazwę i tam nas przeniesie więc to jest bardzo fajne no ale akurat nie o to
do końca nam chodziło tutaj
wyskoczył nam jakieś okej i teraz zamiast
listy zostawmy wstawmytu nasz tu nasz stack navigator po prostu czyli
do lewej zakładki do pierwszej zakładki wstawiamy po prostu
zamiast naszej listy wstawiamy cały stack navigator i co się stanie i w tym momencie
zbudujemy sobie projekt na nowo mamy naszą listę w pierwszej zakładce
mamy nasz profil w drugiej zakładce i możemy sobie dowolnie
a oczywiście nie zmieniłem tutaj na details
i zobaczcie że jeśli jesteśmy na liście i klikniemy w element to jesteśmy nawigowani
wewnątrz tej zakładki czyli ja mogę sobie zmienić tą zakładkę ale po powrocie tutaj
dalej jestem zagnieżdżony w tym stacku który jest wyświetlany jak widać zresztą
tu jest nagłówek tutaj tego nagłówka nie ma ponieważ tutaj mamy pojedynczy screen a
tu mamy screen i to jest bardzo fajne bo zazwyczaj jednak jest
tak że wewnątrz takiej jednej zakładki będzie to bardziej to bardziej zagnieżdżone zobaczymy
jak wygląda na androidzie też fajne mimo że animacja jest
z dołu to jednak dalej to wszystko jest wewnątrz jednej zakładki ja mogę sobie między tymi zakładkami przechodzić
natomiast teraz możemy pójść też o krok dalej i zrobić sobie modal
stack navigator skopiujemy
sobie naszego stacka i
tu usuniemy aj nie to chciałem zrobić
usuniemy sobie nasze opcje usuniemy sobie tutaj nasze
opcje tylko
tak header mode ustawimy sobie na none nie
chcemy i ustawimy sobie ekran
pierwszy jako nasz główny no i ekran drugi jako na
przykład nazwiemy to modal details natomiast nasz pierwszy
komponent to będzie i znowu wchodzimy w incepcję to będzie nasz tab
navigator który
nie został zaimportowany okej
i zamiast tak to tutaj modal stack
i ten modal stack wrzucimy do naszej aplikacji jako
główny jako główny
navigator no i co się
stanie na wszelki wypadek przebudujmy sobie naszą apkę
generalnie nie stanie się nic jak
widać wszystko działa tak jak działało ale dodajmy
sobie na przykład obsługę żeby po kliknięciu
na upgrade albo po kliknięciu na dodaj tutaj żeby nas gdzieś przenosiło
czyli wracamy do naszej listy mamy
obsługę on add task i teraz zróbmy sobie navigate tylko
do modal details i w parametrach przekażmy info
po prostu new task added i
tyle i zobaczymy co się stanie nic się nie stało a
to dlatego że nowy task nie został dodany okej widzicie nawigacja
widok szczegółów który jest nad tab barem ponieważ tab bar jest
zagnieżdżony w tą główną nawigację tak jak jeszcze raz to pokażę bo może być to mylące
czyli w naszej aplikacji mamy nasz główny stack navigator wewnątrz niego mamy
ekran który jest głównym ekranem którym
tab navigator oj przepraszam wewnątrz
którego mamy dopiero ekrany listy która
tak naprawdę nie jest pojedynczym ekranem ale stack nawigatorem w którym to dopiero jest lista
i w którym są szczegóły tak może być trochę zagmatwane natomiast fajne jest to że możemy dowolnie
sobie te nawigatory zagnieżdżać i w łatwy sposób nawigować patrzcie że ja z poziomu
to do listy jakby ja nie nie interesuje mnie za bardzo jak ten madal opakowany
gdzie on jest gdzie on występuje po prostu sobie wywołujemy metodę navigate do model details
przekazuje jakieś informacje i to już nie moja sprawa co tam się będzie z tym działo i to jest bardzo fajne czyli
cała ta obsługa cała ta otoczka cała ta cały ten kontener jest gdzieś dla mnie
transparentny ja po prostu wywołuję metodę navigate
możemy zrobić jeszcze jedną rzecz która spowoduje że to będzie bardziej naturalnie wyglądało czyli
jeśli przejdziemy sobie do naszego modal stack navigatora to
możemy sobie tutaj wybrać opcję mode
zdaje się tak możemy sobie wybrać cart który z domyślnie
właśnie czyli że wyjazd jest jakby z boku albo modal to by jakby
na iOS-ie i w tym momencie jak klikniemy przepraszam
jak klikniemy tutaj to nasza nawigacja wyjeżdża z dołu tak i
jesteśmy w stanie teraz jest to bardziej odczuwalne w androidzie może nie będzie aż tak widoczne bo te animacje
są podobne natomiast możemy sobie oczywiście te animacje dowolnie
nadpisać nie będziemy się tym co prawda zajmować ale możemy sobie zrobić dowolną animację jaka nam się
podoba tutaj gestem zjechania w dół możemy to schować fajnie by było
jednak to jakoś
obsłużyć inaczej więc możemy sobie w naszym details dodać
button i to już będzie zwykły button żeby się nie bawić w opakowywanie
nazwiemy go sobie back i po on press
no właśnie i chcielibyśmy jakoś wrócić stąd natomiast no to znowu nie jest
żaden problem w przypadku react navigation bo możemy użyć sobie naszego
use navigation który
taką funkcję jako go back w tym momencie dodał
nam się przycisk i możemy zarówno z poziomu tego wewnętrznego wrócić
jak i z tego będzie modalnego widoku również możemy sobie wrócić
do poprzedniego ekranu znowu fajne jest to że tak naprawdę naszego modal naszego
details screen nie interesuje czy jest wyświetlany modalnie czy on jest wyświetlany jako stack navigator jako card
on wie że on po prostu chce wrócić i fajne jest to w react navigation że cała ta
filozofia cała ta logika która stoi za tym wszystkim jest trochę przynajmniej ukryta i dopóki
nie dochodzimy do jakichś naprawdę takich edge-case'owych przypadków gdzie chcemy zrobić customowe
zagnieżdżone rzeczy to jest dla nas wszystko super i tak samo nawet
takie rzeczy jak obsługa właśnie przejścia między zakładkami jest domyślnie wspierana
myślę że to tyle jeśli chodzi o nawigację i w następnym rozdziale powiemy
sobie trochę o tym jak uładnić naszą aplikacje animacjami dzięki