Mentionsy Mentionsy
Subiektywny Frontend
Subiektywny Frontend

Zmniejsz koszt pisania aplikacji mobilnej. Napisz ją w JavaScript!

11.10.2025 ·54 min 38 s

Odcinek opublikowany 19.03.2024Chcesz napisać za jednym zamachem aplikację na Web, Androida i iOS?Zaczynamy podróż po świecie hybrydowych frameworków, które uczynią to możliwe w 2024!W dzisiejszym epizodzie rzucimy okiem na te sprytne narzędzia, które pozwalają ci hulać między platformami niczym tarzan między lianami.Ale hej, to nie tylko geeky tech-talk! Będziemy też przechadzać się po mniej wydeptanych ścieżkach, omawiając plusy i minusy hybryd, dzieląc się sprytnymi sztuczkami i rozkminiając typowe zagwozdki. Oczywiście, nie zapomnimy też rzucić okiem w przyszłość – czy hybrydy przetrwają próbę czasu i trend popularności będzie tylko rosnąć?Przygotuj się na dawkę wiedzy z przymrużeniem oka. Weź popcorn, usiądź wygodnie i daj się porwać hybrydowemu rollercoasterowi. Zaczynamy!Prezentacja Aleksandra o hybrydowej rewolucji: https://youtu.be/WVLoXTBU1a8?feature=shared

Bo tam NativeScript miał własnego XML-a. Nie wiem, czy to się zmieniło. Poprawcie mnie, jeśli już tak nie jest. Ale tak kiedyś było, że można było po prostu mieć dwie templatki do dwóch różnych platform. Ciekawe, ciekawe. Chyba będę musiał to przejrzeć, bo zaciekawiłeś mnie z tym NativeScriptem. Flutter. Flutter. King in a castle. To jest chyba absolutny hit. Nie powiem, że rządzi, to nie chodzi o to, że rządzi, bo my na przykład piszemy teraz aplikacje bardziej w Ionicu, ale Flutter ewidentnie rozbił bank. Dlaczego tak smutno? Dlatego, że nie robisz aplikacji w Flutterze?

Słyszałem o Flutterze wiele, ale nigdy nic nie robiłem z Flutterem. I też wiem, że Flutter, tak naprawdę Flutter to też nie jest chyba stricte JSowy kod, nie? Bo oni tam piszą w Darcie, nie? Tak. No właśnie. No to teraz musisz się nauczyć Darta, żeby pisać hybrydowe aplikacje, tak? Tak. No właśnie. I to jest w sumie ważna rzecz. Dlatego byłem Jakub Smutny. Bo nie pisze w Darcie. Musiałbym się nauczyć Darta, tak? Ja też nie pisałem aplikacji w Platarze. Dart jest bardzo blisko JavaScriptu, więc to dalej jest bazowane na JavaScriptcie. I tu powiem Ci ciekawostkę, którą ostatnio się dowiedziałem. Na przykład w Dartcie inaczej działa stała, czyli const.

Ona się w Dartcie nie może zmienić. A to jest taka JSowa, rozumiem? Tak, to znaczy nie JSowa, tylko Dartowa. Ale powiedzmy const w Dartcie się nie może zmienić. Czyli w Javascriptie możesz tam różne sztuczki zrobić, żeby wymienić wartość, a w Dartcie nie. A w ogóle w Flutterze jest bardzo ciekawa rzecz. Jak Flutter działa? Znaczy tutaj poprawka, bo w Javascriptie też nie możesz przypisać jakiejś wartości do consta, chyba że to jest obiekt, który ma referencję. Jakby referencję nie możesz zmienić, ale możesz wartości... No wszystko możesz w zasadzie. A rozumiem, że w Dartcie po prostu on... Jakby trackuje cały obiekt, czyli załóżmy tam... Już nie da się... To pewnie gadam głupoty, więc zejdźmy z tematu. Ale Flutter ogółem jest renderowany w bardzo podobny sposób jak Chrome.

Czyli pod spodem tak naprawdę to całe renderowanie jest robione przez Fluttera. Czyli piszemy sobie kod, który jest renderowany przez silnik od Googla. Okej. Znaczy, to też warto wspomnieć, bo Flutter jest googlowy. Tak, Flutter jest googlowy. Czy ktoś duży z tego korzysta? Tak, zdecydowanie. Showcase, BMW, ja już nie powiem, żeby to był duży gracz. Myślę, że Alibaba Group i Bytedance, czyli ci od TikToka, to jest stanowczo duży gracz, więc jeśli oni postawili na Fluttera, to myślę, że na Flutterze chyba się nie można spalić. Dobra. Co my jeszcze mamy? Jakie inne opcje? .NET. A właśnie, byłem zaskoczony bardzo, bo ten .NET też zerknąłem na to.

Tylko właśnie, czy my mówimy teraz o hybrydowych aplikacjach w kontekście na przykład kapasitora Ionica, czyli że piszemy kod webowy, który później jest wrzucany do aplikacji natywnej, czy mamy też na myśli teraz React Native czy Fluttera? Czy te wady też mają swoje odzwierciedlenie? To jest różne w zależności od tego jaka jest technologia, ale idea jest bardzo często bardzo podobna. To znaczy masz bug, który występuje na jednej platformie, a na innej nie występuje. I teraz musisz mieć... To urządzenie, na którym tak naprawdę inaczej. Musisz to zdebugować na tym urządzeniu, na którym występuje. Więc to jest jakby pierwsza taka deweloperska wada.

Tak w skrócie. No właśnie, czyli są powoli, pojawiają się nowe rozwiązania, które adresują ten problem, czyli piszesz kod raz i dostarczasz absolutnie wszędzie, nawet do twojej lodówki i po prostu taki jest kierunek. Żeby ta hybryda, to nie była już hybryda, tylko po prostu one solution. Właśnie, to jest bardzo ważne, co ty mówisz, bo ten socket supply i chyba tak samo jak Tauri, oni robią to trochę inaczej. Tam nie ma tego kontenera, nie ma tego wrapera. A co jest? Po prostu cały kod jest zamieniany, webowy kod jest zamieniany w binarkę. A to nie brzmi jak Flutter, React Native, Native Script? No może tak, może tak. Nie sprawdzałem jeszcze. Ja też nie, ale na pewno warto obserwować.

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