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+
Okej to na poprzedniej lekcji zrobiliśmy sobie fajną nawigację zakładkami
tab bar navigation wygląda to naprawdę spoko a teraz
chcielibyśmy się zająć troszeczkę innym rodzajem nawigacji w sumie takim w sumie bardziej podstawowym czyli
stack navigatorem oczywiście jak to w przypadku react navigation musimy sobie doinstalować paczkę
doinstalujmy sobie tą paczkę ze stackiem okej
tak naprawdę w tej chwili to co będziemy robić i wygląda bardzo podobnie do tego co
już zrobiliśmy to znaczy dalej musimy stworzyć sobie
navigator nazwiemy go nasz stack navigator js
na dobrą sprawę możemy przekopiować
wszystko co jest w tab navigatorze z tą różnicą że nie
będziemy importować bottom
nawigacji tylko sobie zaimportujemy sobie create stack
navigator a tutaj zrobimy sobie stack wywalimy
sobie wszystkie opcje i zobaczcie że tak to był nasz navigator
z zakładkami tutaj sobie tylko to jeszcze zmienimy na stack navigator
tak konstrukcja
jest dokładnie taka sama czyli tak naprawdę możemy sobie zaznaczyć nasze taby wkleić stack
i to jest tyle tak więc to w tym momencie mamy załatwioną nawigację
stackową a musimy tylko gdzieś ją wyświetlić więc użyjmy do tego tutaj
naszego app js
wstawimy tutaj stack navigator
musimy go zaimportować nie udało się zrobić tego automatycznie
navigator from stack navigator
okej no
i zobaczymy co się stało to co się zmieniło
to to że zauważcie że doszedł nam header dlatego że stack navigator
z defaultu ma właśnie taki nagłówek który możemy oczywiście
sobie customować i zaraz o tym powiemy natomiast jak widać na
androidzie on się trochę różni i on pozwala na właśnie nawigację w głąb i wszerz
wszerz w głąb przepraszam i zaraz przejdziemy sobie taką
nawigacją gdzieś w głąb czyli przejdźmy sobie do naszego todo listy i
na przykład zróbmy tak żeby w momencie jak klikam w item przenosiło nas
na profil jakby to wyglądało zrobimy
sobie potrzebujemy jakiegoś obiektu który nas będzie nawigować
i do tego użyjemy sobie takiego hooka use
navigation hook który jest importowany z paczki głównej
ponieważ jest jakby niezależny od konkretnego
nawigatora no i w tej paczce w tym hooku ten hook zwraca nam
funkcje navigate i teraz możemy sobie po
kliknięciu nawigować navigate do i tutaj musimy
podać nazwę którą podawaliśmy w naszym nawigatorze czyli list profile
w przypadku tab navigatora mamy chyba te same nazwy dokładnie więc
przejdźmy sobie do profilu i zobaczmy
co się stanie tutaj nasz use callback prosi o to żeby dodać navigate
do dependencj array i spokojnie możemy to dodać dlatego że tak jak w przypadku reduxa dispatch
ten navigate się nie będzie zmieniać więc nie musimy się martwić o to że coś tutaj będzie nie tak ale warto mieć to
zaktualizowane okej przychodzimy naszego flippera
odświeżmy sobie żeby mieć pewność że to działa okej no i popatrzmy co się dzieje przeszliśmy
sobie do szczegółów właściwie do naszego profilu jak widać tutaj też zmieniła
się został dodany header z nazwą naszego
screena i możemy se przechodzić mamy obsługę natywnego cofania na
iOS-ie w przypadku androida ta animacja wygląda trochę inaczej bo po
prostu jest defaultową animacją od androida piątki zdaje się tak to wyglądało
super tylko trochę nie ma dla mnie sensu żebyśmy z listy
przychodzili na jakiś profil więc dodajmy sobie nowy widok nazwijmy
go sobie details screen kropka
js i niech to będzie bardzo prosty komponent który tak
naprawdę będzie zawierał tylko
jakiś tekst który będziemy wyświetlać okej
dodajmy sobie coś takiego jak info text nasz tekst
nie jest zaimportowany no
i możemy tylko text align center dać nic więcej nie potrzebujemy w sumie ewentualnie
sobie font size zmienimy na przykład na 30 pikseli
znaczy 30 punktów to zmienimy na
white i jeszcze to wszystko sobie justify-content center
align items center super
i ten tekst sobie wyświetlmy info text
something okej
i do naszej listy do naszego stacka nawigatora
zamiast tego profilu dodajmy sobie widok details
dodajemy nasz detail screen okej
zobaczmy czy coś się stanie teraz w tej chwili tak
dostaniemy wyjątek dlatego że nie ma takiej ścieżki jak profile w tym momencie
bo została nam usunięte i to jest okej więc musimy
w naszej liście przepraszam że tak tutaj poskakałem zmienić
to na details i co się dzieje w tym momencie przechodzimy
na nasz widok tak samo się dzieje na androidzie fajnie
natomiast chcielibyśmy żeby zamiast something coś się wyświetlało na przykład właśnie wartość
tego tego pola i jest to bardzo prosta sprawa
ponieważ drugi parametr naszej funkcji navigate to jest tak naprawdę lista parametrów
obiekt z parametrami jakie chcielibyśmy przekazać i dla nas to będzie info i
to co przekażemy to będzie właśnie item info okej
czyli już ten parametr przekazujemy teraz
musimy jakoś to wyświetlić najłatwiej będzie to po prostu wyciągnąć z propsów dlatego że w
propsach będziemy mieli dorzucony taki parametr jak route i w nim będzie
obiekt params i w nim będzie ten obiekt który sobie tutaj nazwaliśmy
czyli info zobaczmy
jak wygląda element 0 element 15 element 7
super co możemy jeszcze tutaj
zrobić no na przykład pomajstrować trochę przy tym nagłówku
bo wygląda on dość średni czyli znajdź przejdźmy
sobie do naszego stack navigatora i podobnie tak jak w tab navigation mogliśmy sobie zmieniać co chcieliśmy tak samo tutaj a
tylko już nie globalnie albo zróby jedną rzecz globalnie pokażę
wam coś takiego jak header mode i to możemy sobie ustawić ten header mode możemy
go wybrać na none i zobaczcie że wtedy znika nam header na górze ale nie
chcemy tego robić chcemy wejść w ten nagłówek natomiast chcielibyśmy żeby on trochę
inaczej się nazywał więc mamy coś takiego jak options i
w tych options mamy zdaje się że
to się nazywało header title tak jest header title
i na przykład niech to będzie main page
i proszę bardzo nasz status się zmienia chcemy
jeszcze poprawić żeby details to się trochę inaczej nazywało albo w sumie
details jest okej natomiast nie chcemy żeby ta strzałka tutaj miała
nazwę naszego tytułu co jest domyślnie na iOS-ie tylko zróbmy sobie options
i mamy takie parametr jak header
back title i nazwijmy
to na przykład back po prostu zobaczmy co się stanie
i mamy naszą strzałkę back moglibyśmy sobie to wywalić żeby nie było żadnej strzałki ale myślę że z back
to jest okej sprawdźmy na androidzie fajnie jest
jeszcze jedna rzecz o której chciałem powiedzieć a to znaczy to że my możemy
sobie w tych opcjach przepraszam tutaj screen options możemy zrobić trochę
więcej bo mamy dostęp do headera i my możemy w
tym headerze zwrócić co nam się podoba co jest bardzo fajne bo często
mamy wymagania bardzo customowego wyglądu
tego headera i w tym momencie ten
header jest kompletnie taki jak sobie życzymy oczywiście w związku z tym nie będą działały te
przyciski wstecz nie będzie takiej opcji żeby wyświetlać
nagłówek musielibyśmy sami to zaimplementować natomiast jeśli byśmy mieli taką potrzebę to możemy
sobie coś takiego dodać jest wtedy bardzo fajnie okej
wróćmy jednak do naszej podstawowej działającej wersji jest
super tylko no gdzieś nam zniknął profil i w następnej lekcji chciałbym żebyśmy
połączyli te dwa nawigatory i stworzyli sobie taką pełną nawigację naszej aplikacji