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+
Tak więc na poprzedniej lekcji zakończyliśmy na tym że będziemy korzystać z narzędzia async storage no
i właśnie zamierzamy z niego skorzystać więc zainstaluj sobie paczkę
z tym narzędziem okej
mamy to to nie jest duża paczka zresztą użycie samego async storage też jest bardzo
proste i szybko to załapiecie importujemy sobie nasz asyncstorage react native
community async storage i
co my tutaj mamy okej typowy błąd
zacząłem korzystać z biblioteki natomiast najprawdopodobniej ona wymaga jakichś
instalacji natywnych sprawdźmy zgadza
się no zresztą to ma sens ponieważ jeśli chcemy korzystać z storage'u to jest typowo
natywny moduł więc musimy to dozainstalować na
wszelki wypadek wystartujemy sobie jeszcze raz nasz projekt no
dobra zainstalowała się nasza paczka więc teraz możemy jej użyć użycie
jest banalnie proste jak to wygląda najpierw zastanówmy się co
chcielibyśmy zapisywać no i tutaj mi się rzucają dwie rzeczy w oczy po pierwsze nasz level i
może od tego zaczniemy bo to jest chyba najprostsza rzecz albo
nie zaczniemy sobie naszego opisu czyli pyk chcę żeby to było zapisane bo zauważcie
że jak wchodzimy za każdym razem na nasz profil no to
jest jakiś something które po prostu jest tutaj wartością domyślną jak
to działa musimy znaleźć miejsce w tym zapisujemy nasz opis to
jest tutaj tutaj wykorzystamy sobie nasz async storage async
storage a tak naprawdę ma trzy metody które nas interesują ma
set item get item i remove item
zdaje się więc wykorzystamy sobie metodę set item baza
async storage'owa jest taka w formie powiedzmy jsonów
czyli klucz wartość czyli zawsze musimy mieć jakiś klucz który będziemy na
podstawie którego będziemy wiedzieć identyfikować nasze dane czyli w tym wypadku to będzie na przykład
nasz level i teraz musimy podać przepraszam nie level
tylko description no i teraz musimy podać naszą wartość
czyli to będzie current text i to
nam zwróci promisa który
możemy zobaczyć czy udało się czy się nie udało czyli na przykład description
saved albo jeśli
mamy jakiś błąd description
save error okej
nieistotne po prostu nie robimy tego błedu albo dobra możemy
ten błąd dodać zbudujmy sobie
jeszcze raz description
new description set
description saved tak czyli udało nam się to zapisać w praktyce rzadko
się zdarza żeby się to nie udało zapisać musiałyby być jakieś problemy nie wiem z uprawnieniami
z pamięcią więc raczej się tym nie musimy przejmować aczkolwiek
dobre praktyki mówią żeby jednak obsługiwać takie scenariusze zwłaszcza w przypadku danych
które są istotne czyli jeśli naprawdę zależało by mi na
tym żeby upewnić się że te dane się zapisały jesli nie to poinformować użytkownika no to oczywiście
korzystajmy z tych metod natomiast my w naszym prostym przypadku zakładamy że to
się udało jak się nie udało to nic się nie stanie no dobra czyli udało
nam się zapisać nasze description to teraz musimy to odczytać a gdzie to zrobić zrobimy
to sobie po prostu w momencie montowania naszego widoku i
konstrukcja jest taka sama tak samo banalnie prosta robimy sobie get item podajemy
nasz klucz żeby tutaj się nie walnąć to sobie po prostu skopiujemy
i tak samo jak w przypadku seta dostajemy tutaj
promisa kótry nam zwraca value i możemy
dostać też jakiś błąd description
read error err a
tutaj możemy napisać console.log description i
po prostu val a jeszcze możemy sobie zrobić taki warunek ponieważ możemy dostać na przykład
obiekt który jest undefined albo nullem więc sprawdźmy sobie
to okej
tutaj na przykład napiszemy description undefined
okej no i sprawdźmy to
i mamy description a nie description czyli to jest to description które zapisaliśmy wcześniej
sprawdźmy sobie to jeszcze raz ustawmy
tutaj na przykład coś w stylu hi this is
is something no tak tutaj mi słownik podpowiada i walczy okej coś
tam zapisaliśmy ustawiło się teraz przeładujmy naszą apkę
no i super to się udało zapisać no
to raczej nam małe szanse że się nie zapisze jeśli nie ma tej wartości po
prostu nic z nim nie rób a w tym miejscu po prostu ustawimy nasz description
na val okej no i
teoretycznie powtarzam teoretycznie to powinno działać czyli
ustawmy nasz description na very nice description
no tak słownik okej very nice description
super odświeżmy no i mamy to tak
tutaj coś nie działa na androidzie tak
jest pewnie trzeba by yarn android zbudować
jeszcze raz naszą apkę okej na androidzie nie musimy doinstalowywać
ręcznie pakietów natomiast dalej jeśli korzystamy z modów natywnych to
raczej musimy naszą aplikację przebudować i to nie mam na myśli naszego serwera
js-owego tylko już aplikację natywną jako taką okej
dostałem komunikat że nie dało się odpalić aplikacji a to żaden problem
sobie ją odpalimy ręcznie wchodzimy sobie na profil
robimy hello zapisz
reload no i
super widzieliśmy że to się nie pojawia od razu naprawdę
nasze pobranie danych jest asynchroniczne ale je tak pobiera się jest
okej no i teraz to co chcielibyśmy zrobić tutaj a to
zrobić to samo dla naszego levelu czyli w momencie kiedy ustawiamy
nasz level to go zapisać level i tak
naprawdę dokładnie tak samo level
set level value okej
zbudujmy sobie to na nowo i
ustawmy no właśnie dostaliśmy błąd że ns
number cannot be converted ns string te ns to są
to znaczy to jest komunikat z natywnej strony ponieważ w
tak tak jakby tak wyglądają obiekty które trzymają
liczby albo stringi czyli są poprzedzone ns
a taka i to wynika z tego że
błąd wynika z tego że nie możemy zapisywać czegoś innego znaczy async storage wymaga od nas
zapisywania zawsze stringów więc jeśli ja tu przekazałem level no to on tego
nie jest ani zapisać więc co możemy zrobić po prostu opakować nasz level oj przepraszam opakować
nasz level w stringa a
w tym miejscu a moglibyśmy uzyć takiej
metody jak parse int bo
to będzie liczba całkowita i
nas interesuje liczba dziesiętna okej budujemy
to jeszcze raz upgrade
upgrade poziom 11 zapisz no i
super a oczywiście problem z tym że my tu ustawiamy level a
tak naprawdę ustawiamy level plus 1 i oczywiście ten level nie będzie
ustawiony synchronicznie to się dzieje asynchronicznie więc żeby to było okej to
musimy zrobić tak jest poziom
10 pyk pyk pyk poziom 17 okej
super no i zobaczmyczy to tak samo działa fajnie na androidzie 1 2 3 4 5 jesteśmy na przykład na 9
no i super
mamy więc takie podstawowe zapisywanie mamy za sobą a w następnej lekcji spróbujemy
zapisać naszą listę dzięki