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 ostatnim rozdziale podziałaliśmy całkiem sporo z nawigacją naszej aplikacji wygląda to
fajnie mamy nawigację zagnieżdżoną stackową mamy nawigację animacje tab
barową mamy animację tutaj widok modalny z opcją cofania
z przekazywaniem parametrów naprawdę całkiem spoko teraz chcielibyśmy
dodać trochę animacji żeby ta powiedzmy ożywić ten nasz content i
oczywiście zaczniemy od czegos bardzo prostego i na przykład w
momencie wejścia na zakładkę profile chcielibyśmy żeby ta nasza grafika się powiększyła i
zmniejszyła żeby było widać że coś tam się dzieje w momencie wchodzenia okej
więc przejdźmy do konkretów najważniejsza rzecz w animacji to tak naprawdę zdefiniowanie
tego co jest przyniosę animacji i co chcielibyśmy animować tak czyli
nawet jak animacja jest bardzo skomplikowana to wszystko sprowadza się do rozłożenia
jej na czynniki pierwsze i animowania jakichś konkretnych
wartości w tym przypadku chcemy animować wysokość i szerokość naszego
profile image która w tej chwili jest równa 100 na 100 i chcemy dokładnie ten width
i height zwiększyć a następnie zmniejszyć żeby ta animacja była taka
krokowan więc podstawowym elementem w animacji w react native jest
nasz obiekt animacji nazwiemy to sobie photo
anim i z racji tego że ta animacja
musi nam działać między renderami to użyjemy sobie naszego
hooka use ref znaczy nie naszego ale react native'owego okej
i teraz w tym miejscu musimy stworzyć nowy oboekt animacji
czyli new value przepraszam new animated kropka
value tutaj nie chcemy animated
tego tylko chcemy animated i
musimy podać wartość czyli ona w tej chwili jest 100 a
będziemy chcieli to zwiększyć czyli najprostsze za nami
i co w tej chwili chcemy chcemy zwiększyć
te wartości jeśli chcemy animować jakieś
property jakiś props jakiegoś komponentu
to ten komponent musi być typ animated czyli nasza biblioteka animated
pozwala na tworzenie nam to są akurat predefiniowane takie proste
komponenty tworzenia komponentu który będzie taki jakby animated aware czyli będzie
zdawać sobie sprawę z tego że jest animowany bez tego animacja nam się nie uda no
i okej mamy naszą mamy naszą wartość do animowania mamy
nasz komponent który jest po animated no i teraz zróbmy sobie przekazanie
tych wartości czyli po prostu zróbmy style width równa
się jak sobie to nazwaliśmy photo anim i
tak samo zróbmy z wysokością okej
z tą różnicą że tutaj musimy dopisać sobie current dlatego że w use
która dopiero ma ref referencji która zawiera obiekt current
ktora dopiero ma naszą animację zobaczymy czy to wszystko działa okej
nic się nam nie wysypało tutaj w androidzie sobie to odpalmy też
okej działa
nic się nie dzieje ale działa i teraz przejdźmy do samej animacji samą
animację wywołamy sobie na starcie tutaj
wyżej to niech będzie nasz efekt wywołamy sobie ją o tutaj
przy montowaniu czyli zrobimy
tak no w tym miejscu chciałbym ją wystartować jak to się robi tworzymy sobie wywołujemy sobie
obiekt animated kropka i mamy parę opcji najprostszą
animacją taką z której będziemy korzystać to jest animacja timing po prostu
taka w której musimy podać jakiś zdefiniowany czas trwania animacji ona będzie liniowa podajemy nasz
obiekt który chcemy animować no i mamy parę
własności które musimy podać przede wszystkim to value czyli z jakiej wartości startujemy
to jest wartość stała ale do jakiej chcemy dojść na przykład do wartości
120 i w jakim czasie czyli na przykład powiedzmy
sobie 300 milisekund okej ale taką animację musimy wystartować no
dobra sprawdźmy to okej
okej no to są dwie rzeczy
pierwsza to jest taka że fajnie animacja jest działa powiększyła nam ten element ale
no tego elementu ten element został taki duży więc
coś z tym zrobić oczywiście musimy jakby tą animację w tym momencie teraz cofnąć więc
możemy sobie drugą załóżmy że dodamy do niej delay 310 czyli
żeby ona się wywoła pod 310 milisekundach i
z powrotem chcemy wrócić do wartości 100 no i zobaczymy jak to będzie wyglądało okej
nic się nie dzieje czemu nic się dzieje dlatego że no nie możemy
takiej konstrukcji zrobić tak to znaczy nie możemy zrobić dwóch animacji na tym samym obiekcie i jeden
żeby był z delayem bo po prostu animated nie będzie widziało jak sobie z tym poradzić
więc najprostrzym rozwiązaniem jest po prostu dodać tutaj timeout
na
przykład na te 310 milisekund i przenieśmy to
sobie tutaj i w tym momencie juz powinniśmy mieć pełnoprawną animację
okej wygląda to
fantastycznie no ale wywołuje się tylko raz ale
już wiemy jak sobie z tym poradzić po prostu musimy to zawrzeć w tym miejscu
a nie w use effect ponieważ w tym momencie jak nie podajemy żadnych dependencji
do naszego efektu to zostanie wywołane tylko przy montowaniu więc chcemy to
żeby się działo żeby animacja działa się przy
każdym focus evencie no i zobaczymy czy to
działa w tej chwili okej
jeszcze raz no i super może
nie jest idealnie bo jak widzimy zakrzywienia się nam zmniejszają znaczy
nie jest to dalej okrąd ale
generalnie wygląda to okej