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+
No dobra w ostatniej lekcji zrobiliśmy żeby nasz button się tak fajnie amimował
w kółko zapętlony i to jest okej i pokażę wam jedną
rzecz która czasem potrafi sprawdzić tworzenie naszych
animacji to znaczy robimy sobie naszą animację tak i od
początku kiedy robimy nasz obiekt animacji no musimy wiedzieć jakie wartości chcemy
żeby miała na początku jakie chcemy żeby miała na końcu i to jest okej natomiast możemy
to trochę uniezależnić od samej animacji co mam na myśli to znaczy zróbmy
sobie tutaj obiekt nazwijmy
go upgrade button scale tutaj
użyjmy naszego animation current i możemy wykorzystać
taką właściwość obiektów animacyjnych jak interpolate właściwie możemy
funkcję a co my tu mamy możemy podać nasz input range
czyl i w naszym wypadku załóżmy że to będzie od 0 do 1 tu
możemy podać jakie wartości chcemy żeby były na jakie wartości mamy
mapować te dane wejściowe czyli jeśli nasza animacja będzie miała tutaj 0 to
my na przykład chcemy żeby nasz scale miał na przykład 1.0
a dla wartości 1 żeby miał 1.2 to
może brzmi trochę enigmatycznie ale zaraz to zrobimy zróbmy
zatem żeby nasza animacja zaczynała z punktu 0.0 przychodziła do punktu 1.0 i wracała
do punktu 0.0 a
to wykorzystajmy w naszej w naszym buttonie okej
zobaczmy co się dzieje wiele się nie zminiło natomiast
w tej chwili uniezależniliśmy się trochę od tej animacji którą
robimy i tylko mapujemy sobie jej wartości na to co chcielibyśmy
uzyskać i jest to dużo wygodniejsze bo tu od razu widać
animacja zawsze może przebiegać od 0 do 1 a to w jaki sposób
my będziemy sobie to mapować to już robimy tutaj co jest fajne w tym to że to nas
nie ogranicza z dwóch wartości początkowych i końcowych ale również do wartości pośrednich czyli
jeśli zrobimy sobie na przykład tutaj punkt zero pół to
możemy sobie zrobić żeby ta nasza animacja też w jakiś sposób przez
ten punkt mapowała tą wartość pół na naszą skalę czyli
na przykład zróbmy coś dziwnego żeby to wyglądało w ten sposób co się teraz będzie działo
na dzieja się jakieś dziwne rzeczy ale możemy tak to zostawić
tak to znaczy możemy sobie jeszcze pójść kawałek dalej możemy tak naprawdę dodać tutaj 0.7
i tu kolejną dodać kolejną wartość na przykład półtora
jak widać nasza animacja będzie przebiegać zgodnie z tymi punktami to
w konkretnym przypadku takiego takiej jednej animacji może nie daje
wiele plusów ale załóżmy że chciałbym sobie
animować jeszcze jakąś inną rzecz razem
z tym buttonem i niech to będzie na przykład tło
tutaj tło tego kontenera naszego ekranu więc zrobimy sobie to
samo czyli tylko nazwiemy to sobie na przykład container
background-color
a załóżmy żeby że
mamy dane od 0 do 1 i to
co chciałbym uzyskać to jest kolor wejściowy
na przykład taki i
kolor wejściowy na przykład taki
biały powiedzmy tutaj moze zmniejszmy to na 0.3
tak fajne jest to że interpolate
nie musi przyjmować tylko wartości nie musi przyjmować tylko liczb
tak może przyjmować na przykład właśnie kolor i on będzie wtedy między tymi
kolorami fajnie płynnie przechodzić a spróbujmy to wykorzystać czyli
zróbmy sobie style background-color to
się równa nasz container background tu się coś wskoczyło okej
zobaczmy nic się w tej chwili nie dzieje
no to zapewne dlatego że nasz obiekt container nie jest po animated
okej no
właśnie więc fajnie że interpolate może przyjmować inne wartości ale
nie fajnie bo nasz native driver tego nie wspiera natomiast na poczet
tutaj testów wyłączmy sobie w naszej animacji obsługę native drivera
zobaczmy jak to wygląda super
tak super no jakby super to kwestia względna natomiast mniej więcej o to nam chodziło
żeby ta animacja działała równo
z tą animacją i sobie poprawimy ten nasz button żeby on przyjmował te
wartości jednak trochę bardziej ludzkie
powiedzmy teraz widzimy że ta animacja mniej więcej chodzi w
parze razem z animacją naszego buttona i to jest fajne jakby teoretycznie moglibyśmy
na tym zakończyć bo jest okej natomiast w poprzednich lekcjach uczulałem was
bardzo żeby zawsze gdzie się tylko da korzystać z tego native drivera a jak się nie da
to żeby kombinować no właśnie no i teraz co my możemy tutaj wykombinować no nie
zmienimy mechaniki działania tej animacji to znaczy
jeśli chcemy animować background-color no to on nie wspiera native drivera
natomiast możemy zrobić trochę haków wrócimy
sobie tutaj z naszym native driverem
container background color zamieńmy na przykład na container
background opacity które też niech przyjmuje
wartość od 0.7 do na przykład 1.0 i usuńmy
sobie stąd nasz styl czyli wróćmy do tego co było
na początku okej nic się nie dzieje ale stworzymy sobie
nowy komponent ostylowany
który nazwiemy na przykład background który
będzie mieć jakiś tam kolor width 100 procent heigth 100 procent który będzie miał
position absolute czyli będzie przypięty
do pozycji od tej wartości który teraz tu ustawię ustawimy
sobie żeby on był zawsze na full screenie czyli top 0 left
0 right 0 bottom
oj zero w związku z tym tego
już nie potrzebuję okej musimy sobie
zaimportować nasz obiekt i
go teraz tutaj dodajemy do naszego widoku czyli mamy kontener
i mniej więcej w tym miejscu dodamy sobie background
zobaczmy jak to wygląda okej
ustawmy mu jakiś color bardziej
rażący na przykład ff okej okej
czyli mamy nasz background teraz zauważcie co się dzieje możemy sobie animować
opacity tego tak czyli możemy zrobić style
opacity container background
opacity zobaczmy tylko czy nasz obiekt jest po animated świetnie okej
prawie załóżmy że to będzie szło od 0.1
do 0.5 zauważcie nasza animacja wygląda
praktycznie tak samo jak tamta znaczy zmienia nam się przechodzimy z białego do czerwonego mniej więcej
i wykorzystujemy native driver tak czyli jakby teoretycznie
to jest trochę inna animacja bo już nie animujemy faktycznie background coloru ale
efekt uzyskaliśmy ten sam i o to chodzi w przypadku animacji które
chcemy w przypadku wszystkich animacji jeśli chcemy animować wartości
które teoretycznie nie da nie da się animować przy pomocy native drivera
to starajmy się to jakoś obejść starajmy się właśnie na przykład tutaj
jest jak z tym backgroundem starajmy się
właśnie nakładać coś animować tego opacity jeśli mamy coś
przesunąć to używajmy transforma bo po prostu na dłuższą metę będziemy
mieli pewną wydajność a i to taki protip który chciałbym żebyście zapamiętali to myślę że to tyle w tej lekcji