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+
Na poprzedniej lekcji pokazali zrobiliśmy ostylowaliśmy
nasz profil wyeksportowaliśmy nasze style do
StyleSheetu i to generalnie można by na tym jeśli chodzi o kwestie stylowania zakończyć
spokojnie można tego używać w aplikacjach produkcyjnych natomiast
jest pewne rozwiązanie o którym być może słyszeliście to sie nazywa
Styled Components który ja zdecydowanie preferuję i żeby wam pokazać
to po prostu sobie zainstalujmy to to jest npm install save save styled components
okej zainstalowała się nasza paczka jak widzieliście w międzyczasie tutaj nam się porobiły jakieś błędy jeśli
swoją drogą mielibyście tak że coś by wam
się nie chciało załadować wyskakiwały wam błędy to możecie zamknijmy sobie może tutaj
androida na tę chwilę to możecie sobie czasem
zreloadować naszą aplikację kilkukrotnie
tutaj coś się nam schrzaniło więc sobie to wyłączymy i zrobimy jeszcze raz
yarn ios czasem
bundler się gubi zwłaszcza właśnie jak używamy fast refresha to różne
rzeczy się dzieją więc zbudujmy sobie to na spokojnie jeszcze raz okej
nasz iOS stoi i też odpalmy sobie naszą aplikację androidową żebyśmy
widzieli że nie kłamię że to działa na obu platformach tutaj
nam się coś też bo chcemy logi stąd świetnie
mamy naszego bundlera mamy nasze aplikacje i tak skończyliśmy
na tym że mamy te style natomiast jest pewne rozwiazanie o którym właśnie wspominałem
Styled Components które według mnie ale osobiście to jest moja subiektywna opinia
bo znam ludzi którzy tego nie robią uważam że to jest lepsze czyli jak
to wygląda w praktyce robimy sobie import styled from styled components
zobaczmy czy nic się nam nie wykrzaczyło jest
chyba okej tu się refreshuje świetnie
i to co mi się nie podoba w tym ja bardzo lubię jak
nasz nasza struktura dokumentu czyli
powiedzmy nasz widok struktura widoku właściwie jest odseparowana
maksymalnie od styli i od logiki ale o tym trochę później dlaczego
dlatego że jakby struktura
powinna pokazywać tak jak nazwa wskazuje strukturę tego wszystkiego a nie skupiać się na tym
jak co się prezentuje czyli jeśli byśmy wywalili wszystkie
style to to dalej powinno struktura powinna oddawać mniej wiecej charakter tego co wyświetlamy
i tutaj tak jest oczywiście tak wyeksportowaliśmy sobie style i faktycznie tu żadnych styli nie mamy
ale popatrzmy na jedną rzecz to jest nasz obiekt który możemy powiedzmy
nazwać kontener i tak nazwaliśmy jego styl i co się dzieje w jednej linijce
w której opisujemy ten kontener mamy tak słowo View słowo style słowo
styles i dopiero słowo container tak naprawdę patrząc na to mamy na myśli
tylko i wyłącznie container że to jest nas kontener którego
używać w zwiazku z tym możemy
właśnie użyć naszego Styled Components jak to wygląda tworzymy
sobie komponent dlatego nazywam zaczynam nazwę tego dokumentu
z wielkiej litery bo Styled Components tworzy nam komponenty które są po prostu ostylowane
stwórzmy sobie nasz Styled Components View tak
wygląda struktura tego i przepiszmy sobie nasze style do tego
tylko są tutaj dwa ale jeśli ja to spróbuję odpalić to
nic jeszcze takiego strasznego nie stało ale jeśli
będę chciał tego użyć w ten sposób co jest uważam dużo bardziej
czytelne zauważcie że w tej chwili patrzymy na to od góry widzimy że całą
aplikację cała aplikacja zapakowania w nasze SafeArea po to żebyśmy nie wychodzili poza te
miejsca do których nie powinniśmy wychodzić a całość jest całość
naszego tu kontynentu jest właśnie opokowana przez kontener i tyle nas interesuje nas interesuje
że to jest kontener a jakie on ma style co się dzieje to już tak naprawdę jest trochę inna kwestia natomiast
jak widzicie nasz bundler wywalił parę błędów z czego to wynika z
tego że drugą którą uważam fajną swoją drogą fajną rzeczą jest to że tak
jak w przypadku StyleSheetu czy inline stylowania konwencja pisania styli
była camelcasem tak tutaj mamy
klasyczne style css-owe znaczy nie wszystkie są dostępne z poziomu React Native'a
ale te które są piszemy w stylu kasycznym czyli musimy
napisać je w ten sposób tak i poprawimy sobie tutaj te style nie
musimy pisać tego już jako tekst tu
też sobie to usuniemy tu też średnik i
oczywiście align content align items zobaczmy
jak to się prezentuje w tej chwili nic się nie stało kolor
się nie zgadza a bo tutaj już nie musimy podawać tego jako tekst i
świetnie mamy nasz kontener jest to dokładnie tak samo stylowane a zauważcie
co się dzieje po pierwsze że mamy tak jak już wspominałem jasną informację
o tym co robi dany dany znacznik czyli on jest naszym kontenerem
a po drugie używamy sobie styli które są gdzieś tam bliższe chyba
nam wszystkim czyli w takiej konwencji css-owej i
uważam że ale to jest moja subiektywna ocena że to jest po prostu fajniejsze przepiszmy
sobie wszystkie style pozostałe czyli mamy jeszcze nasz ProfileImage
to się równa styled Image i co my
tutaj mamy mamy width 100 mamy
height 100 i mamy border radius
50 i użyjemy sobie
tego ProfileImage tutaj no i od razu możemy sobie to
wywalić super i
jeszcze zostały nam dwa style to jest nasz
ProfileNameText w którym mamy
chyba tylko font size tak font size 20
i mamy analogiczny co tam było
DescriptionText który
miał font size 16 i kolor oj przepraszam to jest średnik
i kolor grey
i 4 style mamy 4 style mamy zgadza się użyjmy sobie tego tutaj i
patrzcie co się stało DescriptionText osobiście
moim zdaniem to jest dużo bardziej czytelne od tego co było poprzednio każdy
komponent faktycznie widzimy jaką ma rolę co więcej my się nie musimy zastanawiać
nad tym czy to jest komponent podstawowy czyli typu tekst który ma jakieś style
czy to jest komponent taki złożony który po prostu tutaj zagnieżdżamy
tak czyli moglibyśmy sobie zrobić po prostu tak jak nasz App też jest komponentem moglibyśmy gdzieś zagnieździć jakiś
inny nas to nie interesuje nas interesuje to co ten komponent w danym kontekście robi i
tutaj wszystko jest dla mnie dużo bardziej czytelne moglibyśmy wprawdzie usunąć tutaj słowo kluczowe
Profile bo najprawdopodobniej znajdujemy się w widoku profile aczkolwiek
nie jest to jakieś nie jest to w tej chwili jakimś wielkim problemem czyli wywalmy
sobie ten nasz cały StyleSheet świetnie
i zobaczmy jak to wygląda no jak widać jest coś
żeśmy schrzanili font size milimetry
nie nie mam milimetrów okej czyli
jest okej wszystko działa dokładnie wygląda tak samo jak poprzednio natomiast zauważcie że mamy parę warningów
warning brzmi następująco expacted style font size to contain units
i tak samo mamy w każdych przypadkach i to trochę wynika z
tego w jaki sposób Styled Components radzi
sobie ze stylami natomiast najprostszym rozwiazaniem tego jest po prostu dodanie jednostek
to pixel ale przy czym one niczego nie zmieniają to znaczy
jakby to nie są faktyczne pixele to dalej są nasze density independent pixele ale
jeśli chsemy pozbyć się tego warningu to po prostu możemy zrobić to w ten sposób
natomiast mówię to nie będą takie stricte pixele bo my nie mamy do tutaj z poziomu React Native'u do
nich dostępu okej
myślę że to wygląda całkiem fajnie to co moglibyśmy jeszcze
dodać to myślę że moglibyśmy sobie wyeksportować cały ten nasz
moduł do osobnego pliku zrobimy sobie ProfileScreen
i tak naprawdę w sumie to wszystko moglibyśmy
tam wrzucić w tą różnicą że App zamienimy
na ProfileScreen okej i w tym miejscu
poza może właśnie samym SafeAreaView
użyjemy sobie ProfileScreen okej
usuńmy to stąd
usuńmy AreaView no
i zobaczmy czy nam się udało jest super tak czyli mamy nasz profil który jest jakby osobnym komponentem
i w którym korzystamy z Styled Components ja
osobiście zachęcam was do korzystania ze Styled Components bo po prostu uważam
że to jest czytelniejsze wygodniejsze a przy okazji to że mamy ten tą
konwencję taką typowo css-ową gdzieś tam jest po prostu fajniejsze natomiast jeszcze jedna
rzecz o której chciałem wspomnieć zauważcie że mamy tych styli on nam podpowiada style wszystkie bo po prostu
to jest wtyczka która podpowiada nam style do Reacta do programowania
webowego jako takiego załużmy że chciałem zrobię sobie align
content center co się stanie w tej chwili okej
nic się nie stało w tej chwili nawet nie wyskoczył nam warning natomiast to po prostu nie ma żadnego wpływu znaczy
jeśli użyjemy styli akurat ten styl align content nie jest wspierany przez React Native
się nie stanie w pewnych przypadkach może po prostu bundler
wyłożyć nam jakiś error albo warning to zależy trochę od tego z czego
skorzystamy natomiast nie musimy się tutaj w tej
chwili przejmować no i to myślę że to tyle jeśli chodzi o tą lekcję takiego
już stylowania może nie zamocowanego aczkolwiek takiego docelowego
z którego będziemy korzystać w dalszej części kursu
paczka · 1 min
npm install --save styled-components