Front-end

Lynx - nowa alternatywa dla React Native?

Lynx to otwartoźródłowy framework od ByteDance, na którym działają fragmenty TikToka. Wyjaśniamy, czym różni się od React Native, dlaczego jest silnikiem do osadzania, a nie gotowym zestawem do budowy aplikacji, i w jakich trzech sytuacjach ma sens, a w jakich nie.

24 wrz 2026

Kiedy w marcu 2025 roku ByteDance udostępnił jako open source swój framework Lynx, w branży szybko przylgnęło do niego krótkie określenie: „React Native od TikToka". Brzmi atrakcyjnie, zwłaszcza dla firm, które mają albo planują aplikację mobilną. Lynx - nowa alternatywa dla React Native? Na to pytanie nie ma jednej odpowiedzi „tak" albo „nie", bo Lynx rozwiązuje trochę inny problem, niż sugerują nagłówki.

React Native od lat jest jedną z dwóch najpopularniejszych dróg do aplikacji na iOS i Androida z jednego kodu, zamiast aplikacji natywnych pisanych osobno dla każdej platformy. Drugą jest Flutter. Lynx wchodzi na ten rynek z dużym zapleczem i dobrymi wynikami wydajności. Ma też jedno ograniczenie, które dla wielu firm przesądza sprawę.

Lynx - nowa alternatywa dla React Native z zaplecza TikToka

Lynx to framework do budowania interfejsów, które wyświetlają się jako natywne ekrany na telefonie, choć kod pisze się w JavaScripcie lub TypeScripcie. Powstał wewnątrz ByteDance i przez lata służył do budowy części produktów tej firmy. Według wpisu ogłaszającego otwarcie kodu działają na nim między innymi panel wyszukiwania w TikToku, aplikacja TikTok Studio, sklepy w TikTok Shop i fragmenty transmisji LIVE. Kod jest dostępny na licencji Apache 2.0, więc można go używać komercyjnie bez opłat. Projekt rozwija się szybko. Wersja 4.0 ukazała się 30 września 2026 roku i dodała między innymi obsługę urządzeń składanych, zapytania CSS dopasowujące układ do ekranu oraz natywne efekty rozmycia w stylu iOS (według bloga Lynx). Poza iOS i Androidem Lynx działa też w przeglądarce, na HarmonyOS od Huawei, a od wiosny 2026 roku także na komputerach z macOS i Windows.

Skala społeczności jest na razie nieporównywalna. W październiku 2026 roku repozytorium Lynx miało około 15 tys. gwiazdek na GitHubie, a repozytorium React Native prawie 127 tys. Gwiazdki nie mierzą jakości, ale dobrze pokazują, ilu ludzi zna daną technologię i ile pytań ktoś już przed nami zadał.

Do pisania interfejsu służy ReactLynx, czyli odmiana React.js przystosowana do Lynx. Komponenty i hooki wyglądają znajomo, składnia JSX też. Zmienia się to, co dzieje się pod spodem.

Co Lynx robi inaczej niż React Native

Najważniejsza różnica dotyczy podziału pracy w aplikacji. Lynx świadomie rozdziela ją na dwa wątki, czyli dwa niezależne tory, na których telefon wykonuje kod. Wątek główny odpowiada za rysowanie ekranu i działa na małym, szybkim silniku JavaScript o nazwie PrimJS. Wątek w tle zajmuje się logiką aplikacji, na przykład pobieraniem danych z serwera.

Z tego podziału wynikają dwie cechy, którymi Lynx się chwali. Pierwsza to natychmiastowe wyświetlenie pierwszego ekranu (Instant First-Frame Rendering). Użytkownik nie widzi pustego ekranu ani kręcącego się kółka, bo pierwszy widok powstaje od razu na wątku głównym. Druga to możliwość uruchomienia małych fragmentów kodu bezpośrednio na wątku głównym, co przydaje się przy gestach i animacjach, które muszą reagować na palec bez opóźnienia. React Native też dzieli pracę między wątki, ale programista ma mniej bezpośredniej kontroli nad tym, co gdzie się wykonuje. ByteDance podaje, że przy przenoszeniu ekranów z technologii webowych na Lynx czas uruchamiania spadał od dwóch do czterech razy. To dane producenta z własnych produktów. Rozsądnie traktować je jako kierunek, a nie obietnicę dla każdej aplikacji.

Druga różnica jest bliższa codziennej pracy. Lynx obsługuje prawdziwy CSS, z selektorami, animacjami, gradientami i przejściami. W React Native style zapisuje się w obiektach JavaScript, które tylko przypominają CSS i obsługują jego wybrane fragmenty. Dla zespołu, który na co dzień buduje strony i aplikacje webowe, to realna oszczędność czasu. Mniej trzeba się przestawiać, a część wiedzy o wydajnych animacjach CSS przenosi się wprost.

Do budowania projektu służy Rspeedy, narzędzie oparte na Rspack, szybszym następcy Webpacka. Dla menedżera to szczegół. Dla zespołu oznacza krótsze czekanie na każdą zmianę w kodzie.

Porównanie Lynx i React Native: po lewej schemat architektury Lynx z dwoma wątkami i własnym silnikiem renderowania PrimJS, po prawej React Native z mostem JavaScript i natywną warstwą

Lynx to silnik do osadzania, nie gotowy zestaw do budowy aplikacji

Dokumentacja Lynx wprost opisuje go jako wydajny silnik do wyświetlania interfejsu, który osadza się w istniejącej aplikacji. Ktoś musi najpierw zbudować natywną aplikację na iOS i Androida - w Swifcie i Kotlinie - zanim Lynx znajdzie w niej swoje miejsce. To odwrotnie niż w React Native, gdzie projekt startuje od razu jako aplikacja wieloplatformowa.

Silnik, nie gotowa aplikacja

Tu dochodzimy do ograniczenia, o którym nagłówki zwykle milczą. Lynx nie służy do zbudowania samodzielnej aplikacji od pierwszej do ostatniej linijki. Dokumentacja opisuje go jako wydajny silnik do wyświetlania interfejsu, który osadza się w istniejącej aplikacji: „cross-platform UI rendering engine you can embed anywhere inside your existing application" (dokumentacja Lynx). W praktyce oznacza to, że ktoś musi najpierw przygotować natywną aplikację na iOS i Androida, napisaną w Swifcie i Kotlinie. Do niej dodaje się silnik Lynx, konfiguruje usługi takie jak ładowanie obrazów czy komunikacja z serwerem i dopiero w tak przygotowanych miejscach wyświetla ekrany napisane w ReactLynx. Logowanie, powiadomienia push, płatności, aparat - wszystko, co wymaga dostępu do telefonu, zostaje po stronie natywnej albo trzeba to samodzielnie udostępnić Lynxowi.

React Native działa odwrotnie. Projekt startuje jako aplikacja React Native, a natywny kod dopisuje się tylko wtedy, gdy jest potrzebny. Narzędzia takie jak Expo idą jeszcze dalej i pozwalają zbudować, przetestować i wysłać do sklepów całą aplikację bez otwierania Xcode czy Android Studio. Odpowiednika Expo w świecie Lynx na razie nie ma, na co zwracał uwagę między innymi przegląd pkgpulse z marca 2026 roku.

Ta różnica wyjaśnia, dlaczego Lynx tak dobrze sprawdza się w TikToku. TikTok ma ogromne zespoły iOS i Android, a Lynx pozwala im szybko dokładać i zmieniać ekrany w aplikacji, która już istnieje. Firma, która ma już aplikację natywną, na przykład podobną do aplikacji treningowej Fit Paradise napisanej przez nas w Swifcie i Kotlinie, ma gotowe miejsce, w którym Lynx może działać. Mała firma bez programistów natywnych musiałaby taki szkielet dopiero zbudować.

Ekosystem, czyli ile gotowych klocków dostajesz

Przy wyborze technologii mobilnej mniej liczy się sam framework, a bardziej to, co wokół niego urosło. React Native ma za sobą prawie dekadę bibliotek: nawigację między ekranami, gotowe integracje z Firebase, płatnościami, mapami, analityką, biblioteki do testów automatycznych takie jak Detox. Większość typowych funkcji ktoś już kiedyś zbudował i udostępnił.

W Lynx zestaw gotowych elementów jest znacznie skromniejszy. Są podstawowe komponenty, obsługa gestów, narzędzia do testów i debugowania. Integracje z usługami zewnętrznymi zespół często musi zbudować sam, po stronie natywnej. Każda taka integracja to dni pracy, które w React Native kończą się zwykle instalacją biblioteki i konfiguracją.

Jest też kwestia ludzi. Programistów React Native jest na rynku wielu, specjalistów Lynx bardzo niewielu. Doświadczony programista React szybko odnajdzie się w ReactLynx, ale integracja z natywną aplikacją wymaga kogoś, kto zna iOS i Androida od środka. To wpływa na skład zespołu i na to, jak łatwo będzie go uzupełnić za dwa lata.

Trzy firmy, trzy różne odpowiedzi

Teoria niewiele mówi, dopóki nie przyłoży się jej do konkretnej sytuacji. Poniższe trzy przypadki są uogólnione, ale każdy z nich często pojawia się przy rozmowach o wyborze technologii mobilnej.

Sklep internetowy z działającą aplikacją w React Native

Firma prowadzi sklep z modą i od trzech lat ma aplikację w React Native. Katalog działa, koszyk działa, ale ekran listy produktów przy słabszym telefonie przycina się przy przewijaniu. Ktoś w zespole przeczytał o Lynx.

Tu odpowiedź jest najprostsza: nie przepisywać. Problemy z płynnością list i obrazów w React Native mają znane rozwiązania, od optymalizacji renderowania list po lżejsze obrazy i mniej przerysowań. Przepisanie aplikacji na Lynx oznaczałoby budowę natywnego szkieletu od nowa, czyli projekt dłuższy i droższy niż naprawa jednego ekranu. W branży mody i e-commerce większy zwrot daje zwykle praca nad szybkością sklepu i ścieżką zakupu niż zmiana frameworka.

Przykład z naszych realizacji: aplikację lojalnościową SAO Life, z rezerwacjami, treściami dla członków klubu i płatnościami za członkostwo, zbudowaliśmy w React Native. Przy takim zakresie funkcji dojrzały ekosystem bibliotek ma większe znaczenie niż kilka procent wydajności.

Startup, który zaczyna od zera

Założyciele mają pomysł, budżet na pierwszą wersję i jeden zespół. Potrzebują aplikacji mobilnej na iOS i Androida, z logowaniem, płatnościami i powiadomieniami, najlepiej w kilka miesięcy.

Lynx jest tu złym wyborem, i to nie z powodu jakości. Wymagałby osobno budowy natywnych aplikacji jako „hostów", a potem uzupełniania brakujących integracji. Rozsądniej sięgnąć po React Native z Expo albo po Fluttera. Kryteria wyboru między nimi zbiera porównanie React Native i Fluttera. Pierwsza wersja produktu, czyli MVP, ma przede wszystkim sprawdzić pomysł, a do tego potrzebna jest technologia, przy której zespół nie traci tygodni na infrastrukturę.

Duża aplikacja natywna, która chce szybciej zmieniać ekrany

Trzeci przypadek wygląda inaczej. Firma ma dużą aplikację napisaną natywnie, osobne zespoły iOS i Android oraz kilkanaście ekranów, które często się zmieniają, na przykład promocje i oferty partnerów. Każda zmiana wymaga dziś pracy w dwóch kodach i czekania na publikację nowej wersji w sklepach.

Tu Lynx zaczyna mieć sens. Można osadzić go w istniejącej aplikacji i pisać nowe, często zmieniane ekrany raz, w JavaScripcie i CSS, zamiast dwa razy. Natywne zespoły dalej odpowiadają za fundamenty, a zespół webowy dokłada treść. Tak budowane są super aplikacje, które łączą wiele usług w jednym miejscu, i duże platformy typu marketplace, w których różne części aplikacji rozwijają różne zespoły. Dotychczas firmy w tej sytuacji często sięgały po WebView, czyli osadzoną stronę internetową. Lynx daje podobną elastyczność, ale z natywnymi elementami interfejsu i szybszym pierwszym ekranem.

Kiedy warto rozważyć pilotaż Lynx

Lynx jest dziś dobrym narzędziem dla firm z działającą aplikacją natywną i doświadczonymi programistami iOS i Android w zespole. Dla startupów i firm bez istniejącego kodu natywnego bezpieczniejszy pozostaje React Native z Expo albo Flutter - oba pozwalają ruszyć bez budowania natywnego szkieletu od zera.

Jak sprawdzić Lynx bez dużego ryzyka

Jeśli Twoja sytuacja przypomina trzecią firmę, nie ma potrzeby decydować od razu o całej aplikacji. Lepiej przenieść na Lynx jeden ekran, najlepiej taki, który często się zmienia i jest mierzalny, na przykład stronę promocji. Przed rozpoczęciem pilotażu dobrze jest ustalić, co dokładnie zostanie zmierzone:

  • czas od otwarcia ekranu do pokazania treści, porównany z obecną wersją,
  • płynność przewijania i animacji na tańszym telefonie z Androidem, a nie tylko na najnowszym iPhonie,
  • wzrost rozmiaru aplikacji po dodaniu silnika Lynx,
  • czas, jaki zespół poświęcił na integrację z natywną częścią aplikacji,
  • funkcje, których zabrakło i które trzeba było dopisać samodzielnie.


Takie dane pozwalają podjąć decyzję na podstawie własnej aplikacji, a nie cudzych benchmarków. Przy okazji wychodzi na jaw, ile wiedzy natywnej faktycznie potrzeba w zespole. Jeśli pilot pokaże, że zysk jest niewielki, firma traci jeden ekran pracy, a nie przebudowę całego produktu.

Na etapie decyzji przydaje się spojrzenie z zewnątrz. W ramach usługi mobile development dobieramy technologię do produktu, a nie odwrotnie. Gdy pytań jest więcej niż odpowiedzi, warsztaty product discovery pozwalają przed pierwszą linijką kodu ustalić zakres i rząd wielkości kosztów.

Na co patrzeć w kolejnych miesiącach

Lynx rozwija się w tempie, które trudno zignorować. Między marcem 2025 a wrześniem 2026 roku doczekał się kilku dużych wydań, obsługi HarmonyOS i komputerów oraz własnych narzędzi do testów. Za projektem stoi firma, która używa go we własnych produktach o ogromnym zasięgu, więc ryzyko porzucenia jest mniejsze niż przy wielu młodych frameworkach.

Żeby Lynx stał się realną alternatywą dla React Native w typowym projekcie, musiałoby się jednak zmienić kilka rzeczy. Najważniejsza to możliwość założenia samodzielnej aplikacji bez ręcznego budowania natywnego szkieletu. Do tego dochodzi większy zestaw gotowych integracji i społeczność, w której łatwo znaleźć odpowiedź na nietypowy problem. Obserwujemy to z bliska, bo wybór technologii mobilnej to decyzja o koszcie utrzymania aplikacji na lata, a nie na jeden sezon.

Do tego czasu nasza odpowiedź na pytanie z początku brzmi tak: Lynx jest dziś bardzo dobrym narzędziem dla firm z dużą aplikacją natywną i zespołami po obu stronach. Dla większości pozostałych bezpieczniejszy pozostaje React Native albo Flutter. Jeśli nie wiesz, do której grupy należy Twój projekt, porozmawiajmy o nim.

FAQ

FAQ - Najczęściej zadawane pytania o Lynx

  • Tak, Lynx jest darmowy i można go używać także w aplikacjach komercyjnych. ByteDance udostępnił go w marcu 2025 roku na licencji Apache 2.0, która pozwala na modyfikowanie kodu i używanie go w zamkniętych produktach bez opłat licencyjnych. Kod silnika, framework ReactLynx i narzędzie do budowania Rspeedy są publicznie dostępne na GitHubie. Koszt wdrożenia Lynx to więc w praktyce wyłącznie czas zespołu: przygotowanie natywnej aplikacji, która go osadzi, napisanie ekranów i ich utrzymanie. Wysokość tego kosztu zależy głównie od tego, czy firma ma już aplikację natywną i ludzi, którzy ją znają.
  • Lynx działa na iOS i Androidzie, a także w przeglądarce, na HarmonyOS oraz na komputerach z macOS i Windows. Obsługę HarmonyOS dodała wersja 3.4 we wrześniu 2025 roku, a obsługę komputerów wersja 3.7 w kwietniu 2026 roku. Wymagane minimum to Android 5.0 i iOS 10. W praktyce ten sam ekran napisany w ReactLynx można wyświetlić w aplikacji na telefonie i w wersji webowej, choć na każdej platformie potrzebna jest aplikacja lub strona, która osadzi silnik Lynx. Najlepiej dopracowane są dziś platformy mobilne, na których Lynx działa w produktach ByteDance od lat.
  • Tak, programista znający React zwykle zaczyna pisać ekrany w ReactLynx po kilku dniach, a swobodnie pracuje po kilku tygodniach. Komponenty, hooki i składnia JSX działają podobnie jak w React, a style zapisuje się w zwykłym CSS. Nauki wymagają głównie różnice: zamiast elementów HTML używa się elementów Lynx, takich jak view i text, a kod trzeba świadomie dzielić między wątek główny i wątek w tle. Dłużej trwa część natywna, czyli osadzenie Lynx w aplikacji na iOS i Androida, która wymaga znajomości Swifta lub Kotlina. Czas nauki zależy więc od tego, czy w zespole jest ktoś, kto zajmie się stroną natywną.
  • Tak, Lynx działa w produktach ByteDance używanych na całym świecie. Według zespołu Lynx zbudowano na nim między innymi panel wyszukiwania w TikToku, aplikację TikTok Studio dla twórców, sklepy w TikTok Shop i fragmenty transmisji LIVE. Wersja udostępniona jako open source to ten sam kod, który ByteDance stosował wewnętrznie, a nie osobny eksperyment. Poza ByteDance wdrożeń jest na razie znacznie mniej niż w przypadku React Native czy Fluttera, więc trudniej znaleźć opisane doświadczenia innych firm. Ocena dojrzałości zależy więc od tego, czy projekt przypomina sposób, w jaki Lynx jest używany w TikToku, czyli osadzanie ekranów w dużej aplikacji natywnej.
  • Pilotaż jednego ekranu w istniejącej aplikacji natywnej zajmuje zwykle od kilku tygodni do około dwóch miesięcy. Na ten czas składa się dodanie silnika Lynx do projektów na iOS i Androida, konfiguracja usług takich jak ładowanie obrazów i komunikacja z serwerem, napisanie samego ekranu oraz testy na różnych urządzeniach. Krócej trwa to w aplikacji o uporządkowanej architekturze, z doświadczonymi programistami natywnymi w zespole. Dłużej, gdy ekran potrzebuje funkcji telefonu, do których trzeba samodzielnie napisać połączenie, albo gdy aplikacja ma dużo starszego kodu. Przeniesienie wielu ekranów to już projekt liczony w miesiącach i warto go planować dopiero po ocenie wyników pilotażu.
  • Tak, Lynx obsługuje TypeScript, a nowy projekt można od razu założyć w wersji z TypeScriptem. TypeScript to JavaScript z dodanymi typami, które pozwalają wychwycić część błędów jeszcze przed uruchomieniem aplikacji. W projektach mobilnych, które rozwija kilka osób przez kilka lat, ułatwia to wprowadzanie zmian bez psucia innych ekranów. Typy są dostępne zarówno dla komponentów ReactLynx, jak i dla elementów samego silnika. Zespół, który używa TypeScriptu w aplikacjach webowych lub React Native, może przenieść do Lynx te same nawyki i część konfiguracji narzędzi.
  • Tak, Lynx obsługuje CSS bezpośrednio, z selektorami, animacjami, przejściami, gradientami i, od wersji 4.0, zapytaniami media queries. Style zapisuje się w plikach CSS, podobnie jak na stronie internetowej, zamiast w obiektach JavaScript, jak w React Native. Dzięki temu programiści front-end mogą korzystać ze znanych technik, a projektanci łatwiej przekładają projekt na kod. Nie każda właściwość z przeglądarki jest obsługiwana w identyczny sposób, bo Lynx rysuje natywne elementy, a nie strony HTML, więc przy bardziej złożonych układach trzeba sprawdzić dokumentację. Zakres różnic zależy od tego, jak bardzo ekran korzysta z nietypowych właściwości CSS.

Blog

Powiązane artykuły

Czytaj więcej
Front-end

Aplikacje mobilne — native czy hybrydowe?

Wybór odpowiedniej technologii do tworzenia aplikacji mobilnej to jedna z pierwszych i najważniejszych decyzji w procesie projektowania produktu cyfrowego. Dylemat: aplikacja natywna czy hybrydowa – dotyczy nie tylko aspektów technicznych, ale też strategicznych, takich jak czas realizacji, budżet czy skalowalność. Każde z tych podejść ma swoje zalety i ograniczenia, a optymalny wybór zależy od celów biznesowych i oczekiwań użytkowników.

Tomasz Kozon
28 mar 2025
Front-end

Czym jest JSX?

Zanurz się w fascynujący świat JSX, składni, która czyni pisanie kodu komponentów Reacta nie tylko efektywnym, ale i przyjemnym. Odkryj, jak JSX, będący połączeniem JavaScriptu i XML, rewolucjonizuje sposób, w jaki tworzymy interaktywne interfejsy użytkownika.

Tomasz Kozon
30 wrz 2023
UX Research i badania

Jak tworzyć wysokowydajne animacje CSS

Animacje CSS odgrywają kluczową rolę w tworzeniu interaktywnych i atrakcyjnych stron internetowych. Tworzenie wysokowydajnych animacji CSS to jednak sztuka sama w sobie. W tym artykule, omówimy techniki i praktyki, dzięki którym animacje na naszych stronach będą płynne i mało obciążające dla przeglądarek.

Tomasz Kozon
10 sty 2025
Support

Detox w praktyce: Jak skutecznie przeprowadzić testy E2E w środowisku React Native

Testy E2E w środowisku React Native to niezawodne narzędzie do identyfikacji błędów w aplikacjach. Przeprowadzenie ich 'detoxem' niesie za sobą wiele korzyści, jednak wymaga również precyzyjnego podejścia. To jest klucz do wysokiej jakości produktu z perspektywy użytkownika. Poznajmy zasady skutecznego wykorzystania Detox do E2E testowania w React Native.

Tomasz Kozon
09 wrz 2025
Back-end

Czym jest MVP i dlaczego jest ważne w branży IT?

MVP, czyli Minimum Viable Product, to pojęcie, które staje się coraz bardziej popularne w branży IT. Oznacza ono najprostszą i najbardziej podstawową wersję produktu, która jest gotowa do udostępnienia na rynku. MVP jest szczególnie ważne, ponieważ pozwala na szybkie i efektywne sprawdzenie pomysłu i uzyskanie feedbacku od potencjalnych klientów.

Tomasz Kozon
18 lis 2022