Mentionsy Mentionsy
ITeracja by EL Passion
ITeracja by EL Passion

#11 Dev Experience w React Native i Flutterze. Agnieszka Młyńska i Michał Warda

11.05.2023 ·48 min 20 s · 5 rozdziałów

W najnowszym odcinku ITeracji Agnieszka Młyńska (React Native Developer) i Michał Warda (CTO) porównują dwa najpopularniejsze crossplatformowe frameworki - React Native i Flutter. Czym różni się React Native od Fluttera? Czy łatwo “przestawić” się z jednego frameworki na drugi? Które community prędzej pomoże ci w razie problemów? O tym, i nie tylko, posłuchasz w ITeracji. Dołącz do naszego zespołu!: bit.ly/ELP-Careers Zapisz się do newslettera i nie przegap świeżych newsów ze świata IT: bit.ly/El-Digest Odwiedź naszą stronę: iteracja.elpassion.com

0:00 · Wprowadzenie i Dev Experience React Native 5

Tak, to w sumie założyliśmy sobie, że takimi kategoriami, właściwie jedną większą kategorią, powiedzmy, będzie ogólnopojęty Dev Experience. Założyliśmy, że w to będzie wchodziło tak naprawdę setupowanie środowiska, to jak to środowisko działa, czy dobrze się nam z nim współpracuje, jak wygląda kwestia community, tutoriali, szeroko pojętej dokumentacji i jak wygląda możliwość podpinania bibliotek i korzystania z nich. To w sumie takie główne jakieś kategorie, które wybraliśmy. Zazwyczaj jeszcze jest masa tematów związanych w ogóle z tymi technologiami takimi jak rynek pracy, ile jest osób w danej technologii, albo jakieś tam tempo nauki danej technologii, albo to jak się komunikuje z natywnymi modułami.

Można by gadać i gadać. Czy można w niej robić grę? Czy raczej nie? Pewnie w żadnej z tych lepiej gry nie robić. Ale jest jeszcze masa kwestii, których dzisiaj nie poruszymy. Może jak będziecie zainteresowani tematem, to jeszcze wrócimy i o tym pogadamy. Ale zacznijmy w ogóle od tego Dev Experience. Bo stworzyliśmy sobie aplikację i ja się zajmowałem React Native'em tak pokrętnie, żeby Agnieszka nie miała tak łatwo i żebym ja jeszcze odświeżył swoje skille. Ja zajmowałem się React Native'em i budowaliśmy aplikację, która tam miała sprawdzić kilka rzeczy. To ogólnie prosta koncepcja. Input, scroll view. I pobieranie z API.

Zajęło mi to tyle, co stworzenie aplikacji webowej. W sumie nawet nie musiałem przechodzić przez tutoriale, teraz aktualnie jak React Native już ma takie bardzo fajne wsparcie dla TypeScriptu, to właściwie było klikanie uwytypowanych rzeczy, koncepcję pobierania rzeczy z API, to już myślę, że wszyscy mają w małym palcu, jeżeli chodzi o React, no może nie wszyscy. Ale każdy, kto miał styczność z Reactem, miał taką umiejętność. Jeżeli chodzi o setup środowiska, czyli ten Dev Experience z setupu środowiska, to poszedł mi gładko. Postanowiłem, że będę szedł zgodnie z tutorialem. Myślę, że tutaj ważna kwestia, nie dewelopowałem na iOS. Tylko robiłem to tylko i wyłącznie na Androida, bo mam Linuxa u siebie, więc nie próbowałem odpalać Maca Mini po to, żeby na nim iOSa odpalać, ale jeżeli chodzi o development na Linuxie, przeszedłem czyściutko przez tutorial.

Wszystko u mnie działało. Oczywiście Android Studio instalowało się przez pół godziny, ale powiem szczerze, że cały experience był bardzo płynny. Mam wrażenie, że też się w miarę szybko kompilowało. Od momentu, kiedy ostatnio skorzystałem z React Native wymieniłem kompa, ale też nie jest to jakaś bestia kompletna, więc wszystko działało w miarę szybko. I myślę, że jeżeli ktoś już miał styczność z React Native, to z perspektywy Dev Experience to było dla mnie naprawdę spoko. Jak było we Flutterze? No to tutaj ja niestety aż tak łatwo nie miałam, żeby nie trzeba było w tutoriale patrzeć, bo jednak musiałam zajrzeć do tej dokumentacji.

Więc tak to wygląda z perspektywy samego setupu w sumie środowiska, przygotowania tego do odpalenia w ogóle apki. Okej, to jeszcze się spytam z perspektywy Dev Experience'u, bo ja postawiłem sobie za... jeszcze taki challenge sobie zrobiłem. Spróbuję odpalić testy w tym środowisku React Native'owym i powiem szczerze, że tutaj chyba się nic nie zmieniło, szczególnie od ostatniego momentu, kiedy korzystałem. Czyli, żeby odpalić testy React Native'owe na emulatorze, nadal jest potrzebny emulator, dziwo. W sensie, no bo mamy w świecie tych aplikacji, które nie muszą korzystać z emulatora do tego, żeby działać, no to mamy de facto dwa rodzaje testów.

9:39 · Dev Experience Flutter - Setup i Testy 1

Więc jestem ciekaw tego, wiem, że nie zdążyliśmy, ale z perspektywy Dev Experience'u jeszcze takie jakbyś powiedziała o Poza postawieniem aplikacji. To, co mi tak naprawdę chyba najmocniej pomogło, to była taka bardzo fajna sekcja w dokumentacji Flutterowej, a mianowicie Flutter dla React Native Developerów. I to jest naprawdę bardzo fajnie przemyślana ta dokumentacja, no bo Flutter jest rozwijającym się cały czas frameworkiem i takie wydaje mi się, że jest dosyć duże parcie w tej chwili na Fluttera. Więc jakby ta sekcja taka, bo wiadomo nie tylko dla React Native developerów, ale jest wyszczególnione dla tych, co dewelopują natywne aplikacje, dla Androida, dla tych co web i tego typu rzeczy.

15:03 · Biblioteki i Dokumentacja 4

Więc to jest spoko, ale chcesz znaleźć jakąś jedną przykładową rzecz i masz wylistowane wszystkie klasy widżetów dostępne we Flutterze. No i jeżeli nie wiesz, czego do końca szukasz, to nie jest w żaden sposób pokategoryzowane, więc tam było mi się, szczerze mówiąc, bardzo trudno odnaleźć. Też niektóre rzeczy w sumie, no to też jest jakiś tam Dev Experience, bo na przykład niektóre komponenty w stylu ten nasz input we Flutterze, z tego co ogarnęłam we wczorajszym researchu, są dwa rodzaje inputów, z czego jeden działa w formularzu, a drugi nie. Dla mnie to było ogólnie zaskoczenie, że input nie musi koniecznie działać w formularzu.

A ty próbowałeś tego React Native'a zbuildować? Tyle co, wiesz, React Native Build na koniec. I zadziałało? Zadziałało, zadziałało. Właśnie to jest dla mnie fascynujące z perspektywy Dev Experience'u ten React Native. Mi, u mnie działa. To byłem zaskoczony. Tak, żeby było jasne, jeszcze bez Expo to wszystko robiłem, bo tak chciałem... Legitnie. W sensie, ja zakładam, że w większości appach mamy natywne moduły, to Expo nadal mi tam się nie zgrywa. Więc bez Expo i działa, to działa. Byłem zafascynowany tym. Dobra, to od 1 do 5, Dev Experience.

Myślę, że trzy. Trzy? Tak. W sensie, że za dużo. Za nisko. I dlaczego trzy? Głównie ze względu na to, że pomimo tej dokumentacji całkiem spoko, to dla mnie największy problem to było przestawienie się w tak krótkim czasie na zupełnie, zupełnie inną składnię. I po prostu to tworzenie nawet tych prostych komponentów, czy przesłanie jakichkolwiek parametrów, to po jednym dniu to nie jest coś, do czego jakoś pałam fascynację. To inaczej się spytam. Wydaje ci się, że jakbyś tydzień jeszcze posiedziała z tym, to by się zwiększyła ta liczba Dev Experience'ów? Bo to jest twój osobisty Dev Experience.

Ty wiesz o tym nawet lepiej niż ja. Myślę, że to jest ogromna zaleta Fluttera, że tam już jest ta wersja stabilna i nie ma tyle breaking changes. I wsparcie dla bibliotek, nawet jeżeli to jest dwukrokowe, To mniej więcej wiesz czego się spodziewać i nie spodziewasz się tego, że jak przejdziesz z wersji 0.70 na 0.71, to czwarte twoich bibliotek już nie działa. Więc tutaj z perspektywy Dev Experience myślę, że to jest ten punkcik, który zabieramy React Native'owi, ale wszystko inne u mnie działa. Wszystko inne u mnie działa. Dlatego myślę, że twoje trzy... To myślę, że faktycznie tak jakbym posiedziała nawet dwa czy trzy dni czy coś takiego, żeby bardziej się przyzwyczaić do czegoś innego, do składni, to myślę, że te cztery to byłoby spoko całkiem.

Pokazano wszystkie 10 dopasowań. Transkrypcja generowana automatycznie i niesprawdzana ręcznie — może zawierać błędy.