gmi.software
Usługi

Wybierz rezultat, który chcesz osiągnąć.

Zobacz wszystkie usługi
Główne obszary
Aplikacje mobilnePrzejęcie, rozwój i wydania aplikacji iOS i AndroidSklepy i platformy B2BRozwój sprzedaży online i integracje z systemami firmyIntegracje i zapleczeERP, magazyn, płatności i API
Na startAudyt kodu aplikacji mobilnejPrzed pierwszym wydaniem lub gdy działająca aplikacja wymaga naprawy
Usługi komplementarne
Utrzymanie aplikacjiSLA, monitoring, stabilność i dalszy rozwójAnalityka e-commerce mobilePomiar lejka i decyzje oparte na danychAI i automatyzacjeOd procesu i business case do produkcjiProduct Discovery & DesignZakres, prototyp i plan realizacjiWarsztaty i wycenaRyzyka, decyzje i stała cena zakresu
Nie wiesz, od czego zacząć?Umów krótką konsultację
Projekty

Zobacz produkty, za którymi stoją konkretne decyzje i wyniki.

Wszystkie case studies
Zrealizowane produkty

Case studies

Interfejsy, skala i wyniki wdrożeń
Świat KsiążkiMobilny program lojalnościowy i katalogSFDCommerce, lojalność i codzienna motywacjaSTS / SolartsKonfigurator 3D instalacji fotowoltaicznych
Szukasz inspiracji? Przejdź do biblioteki pomysłów
Technologie

Stack dobieramy do produktu, skali i ryzyka.

Poznaj cały stack technologiczny
Wyróżnione
MobileReact NativeAplikacje iOS i Android gotowe do skalowaniaMobileExpoSzybsze wydania i aktualizacje aplikacji React Native
Web i commerce
Next.jsReactTypeScriptMedusaJSKonfiguratory 3D
Backend i cloud
Node.jsNestJSPostgreSQLDockerAWS
Jakość
PlaywrightMaestro
Narzędzia

Policz koszty i uporządkuj decyzje przed rozmową.

3 bezpłatne narzędzia
Wycena aplikacjiZakres, budżet i kolejny krokUruchom narzędzieDoradca AI e-commerceMapa decyzji, ryzyk i opcjiUruchom narzędzieKalkulator TCO e-commercePorównaj SaaS i custom w 5 latUruchom narzędzie
Masz już wynik albo brief?Porozmawiajmy o wyniku
Firma

Poznaj ludzi, sposób pracy i zasady współpracy z GMI.

O nasOdpowiedzialność, historia i dowodyKarieraSposób pracy i aplikacja otwartaKontaktNowy projekt, wsparcie lub partnerstwoBlogPraktyka rozwoju aplikacji i e-commerceOpinieCo mówią klienci
PLSkontaktuj się
Usługi
Aplikacje mobilneSklepy i platformy B2BIntegracje i zapleczeNa startAudyt kodu aplikacji mobilnejUtrzymanie aplikacjiAI i automatyzacjeWszystkie usługi
Projekty
Technologie
React NativeExpoNext.jsNode.jsCały stack technologiczny
Narzędzia
Wycena aplikacjiZakres, budżet i kolejny krokDoradca AI e-commerceMapa decyzji, ryzyk i opcjiKalkulator TCO e-commercePorównaj SaaS i custom w 5 lat
Firma
O nasKarieraKontaktBlogOpinie
Skontaktuj się
Wróć do bloga
Aplikacje mobilne
Opublikowano: 5 listopada 2026
9 min czytania

Jeden ekran React Native w aplikacji Swift lub Kotlin: co ustalić przed integracją

Co ustalić przed dodaniem ekranu React Native do istniejącej aplikacji Swift lub Kotlin: nawigacja, cykl życia, sesja, stan i kryteria odbioru.

Mikołaj Lehman, CEO i założyciel GMI Software
Mikołaj Lehman
CEO i założyciel GMI Software

W skrócie

Co ustalić przed dodaniem ekranu React Native do istniejącej aplikacji Swift lub Kotlin: nawigacja, cykl życia, sesja, stan i kryteria odbioru.

Wprowadzenie

Źródła sprawdzone 5 listopada 2026.

Istniejąca aplikacja iOS lub Android może otrzymać ekran React Native bez zastępowania całego interfejsu. Oficjalny poradnik React Native opisuje dodawanie widoku lub przepływu do aplikacji natywnej. Wymaga to jednak integracji z projektem iOS lub Android, a nie tylko przygotowania komponentu w JavaScript. Integracja z istniejącą aplikacją — React Native.

Pytanie przed pierwszym ekranem brzmi więc: jak będzie współpracował z resztą produktu? Trzeba określić, kto otwiera i zamyka widok, skąd pochodzi sesja użytkownika oraz co dzieje się z rozpoczętą operacją po przerwaniu działania aplikacji. Jeden ekran może mieć mały zakres wizualny, a jednocześnie dotykać wielu zależności.

Trzy różne modele integracji

Drugi model opisuje dokumentacja Native Platform. Ten artykuł dotyczy trzeciego, często nazywanego integracją brownfield. Dostęp do funkcji natywnej z RN nie jest sam w sobie dowodem, że aplikacja natywna jest gotowa przyjąć ekran RN.

Dobrym kandydatem do oceny jest ekran z wyraźnym wejściem, wyjściem i ograniczonym zestawem danych. Może to być widok statusu zamówienia albo część programu lojalnościowego. To przykłady hipotetyczne, nie opis projektu klienta. Jeśli ekran wymaga jednoczesnej zmiany logowania, płatności i całej nawigacji, zakres oceny obejmuje także te zależności. Trzeba też wskazać osobę odpowiedzialną za każdą aplikację natywną i jej wydanie.

  • Nowa aplikacja React Native. Co jest punktem wyjścia: Nowy produkt z interfejsem RN Co trzeba rozstrzygnąć: Architekturę całego produktu i jego zależności.
  • Moduł lub komponent natywny w aplikacji RN. Co jest punktem wyjścia: Aplikacja RN korzystająca z kodu albo widoku platformy Co trzeba rozstrzygnąć: Jak udostępnić tę funkcję kodowi RN.
  • Ekran RN wewnątrz aplikacji natywnej. Co jest punktem wyjścia: Istniejący produkt Swift/Kotlin, który otwiera widok RN Co trzeba rozstrzygnąć: Jak ekran współpracuje z natywnym hostem i resztą aplikacji.

Najpierw ustal granicę odpowiedzialności

Poniższa lista jest propozycją pytań projektowych, nie obowiązkową architekturą. „Host” oznacza istniejącą aplikację natywną. Właścicieli i mechanizmy trzeba dopasować do konkretnego produktu.

Callstack dokumentuje mechanizm, w którym kod RN wywołuje nawigację hosta przez zdefiniowany kontrakt i natywne delegaty. To konkretny wzorzec integracji, nie automatyczna synchronizacja wszystkich stosów ekranów. Przed wyborem rozwiązania warto opisać również gest cofania, zewnętrzny link do ekranu i zamknięcie widoku w połowie operacji. Brownfield Navigation — Callstack.

  • Nawigacja. Po stronie hosta trzeba ustalić: Kiedy i z jakimi parametrami otwiera ekran Po stronie ekranu RN trzeba ustalić: Jak zgłasza zakończenie lub prośbę o przejście dalej Wspólna decyzja: Kto zmienia stos ekranów; co oznacza Back i anulowanie
  • Cykl życia. Po stronie hosta trzeba ustalić: Jakie zdarzenia i odtworzenie obsługuje aplikacja Po stronie ekranu RN trzeba ustalić: Co robi po utracie i odzyskaniu aktywności Wspólna decyzja: Jak wznowić widok bez powtórzenia operacji
  • Stan. Po stronie hosta trzeba ustalić: Które dane są źródłowe i kto je aktualizuje Po stronie ekranu RN trzeba ustalić: Które dane są tylko lokalnym stanem UI Wspólna decyzja: Format, wersja i aktualność przekazywanych danych
  • Tożsamość. Po stronie hosta trzeba ustalić: Kto odpowiada za sesję, wylogowanie i jej odświeżenie Po stronie ekranu RN trzeba ustalić: Jak uzyskuje potrzebny kontekst użytkownika Wspólna decyzja: Jak oba obszary reagują na wygasłą sesję
  • Operacje w toku. Po stronie hosta trzeba ustalić: Kto może ustalić wynik operacji biznesowej Po stronie ekranu RN trzeba ustalić: Jak pokazuje oczekiwanie, błąd i potwierdzenie Wspólna decyzja: Jak identyfikować operację i obsłużyć ponowienie
  • Analityka. Po stronie hosta trzeba ustalić: Kto wysyła zdarzenia całej aplikacji Po stronie ekranu RN trzeba ustalić: Kto wysyła zdarzenia nowego widoku Wspólna decyzja: Jedna definicja zdarzenia i sposób unikania duplikatów

Sesja i stan nie mogą opierać się na domysłach

Kontekst zalogowania nie sprowadza się do przekazania identyfikatora użytkownika. Zespół powinien określić, kto odświeża uprawnienia, co oznacza wylogowanie oraz jak ekran reaguje na zmianę konta. Nie należy przenosić tokenów do przypadkowego magazynu tylko dlatego, że jest dostępny z JavaScript. Dokumentacja RN rozróżnia przechowywanie danych zwykłych i wrażliwych; Async Storage nie jest miejscem na tokeny. Security — React Native.

Podobnie trzeba oddzielić stan interfejsu od stanu biznesowego. Pozycja listy lub otwarta zakładka to inne dane niż potwierdzenie przyjęcia zamówienia. Callstack opisuje bibliotekę Brownie do współdzielenia stanu między RN a kodem natywnym. Sam wybór takiego narzędzia nie ustala jednak, które dane są nadrzędne ani kto rozstrzyga konflikt. Brownie — Callstack.

RN udostępnia AppState do obserwowania aktywności aplikacji. To sygnał do obsługi zmiany stanu, nie gotowy mechanizm odtworzenia ekranu lub zakończenia zamówienia. AppState — React Native.

Na iOS cykl życia sceny interfejsu wymaga uwzględnienia osobno od procesu aplikacji. Na Androidzie ViewModel może przetrwać zmianę konfiguracji, ale nie systemowe zakończenie procesu. Integracja musi uwzględniać odpowiedni model platformy; zdarzenie „wrócono do aplikacji” nie dowodzi, że wszystkie dane w pamięci nadal istnieją. Sceny UIKit — Apple, zachowywanie stanu widoku — Android.

zachowywanie stanu widoku — Android.

Zgodność sprawdza się dla konkretnego zestawu wersji

Na dzień odczytu dokumentacja Callstack zawiera tabele testowanych kombinacji React Native, Expo i pakietów brownfield. Nie jest to obietnica wsparcia dowolnej starszej aplikacji. W ocenie projektu trzeba zapisać wybrane wersje, datę dokumentacji oraz wynik sprawdzenia zależności. Tabele zgodności — Callstack.

Do takiego zapisu warto włączyć wersję RN i używaną architekturę, ewentualne Expo, wymagane biblioteki natywne, toolchain iOS/Android, minimalne systemy oraz sposób dostarczenia kodu RN w wydaniu. Otwarta pozostaje także odpowiedzialność za aktualizacje po pierwszej integracji. Nie należy przepisywać instrukcji instalacji z innej wersji dokumentacji i uznawać jej za potwierdzenie zgodności całego produktu.

Hipotetyczny pierwszy ekran: status zamówienia

Załóżmy, że natywna aplikacja ma już logowanie i listę zamówień, a nowy ekran RN pokazuje szczegóły wybranego zamówienia. To przykład do rozmowy projektowej, nie case study GMI ani gotowa specyfikacja.

Host otwiera ekran z uzgodnionym kontekstem. Zespół określa sposób pobrania danych, uprawnienia i zachowanie po zmianie użytkownika. Ekran zgłasza zamknięcie przez ustalony kontrakt. Jeżeli pozwala wykonać operację, na przykład anulować zamówienie, trzeba dodatkowo ustalić, jak sprawdzić jej wynik po utracie odpowiedzi. Brak odpowiedzi na ekranie nie może być samodzielną podstawą do pokazania ani sukcesu, ani pewnej porażki.

Nie jest to porównanie pełnej przebudowy z naprawą aplikacji. To ocena konkretnej granicy między działającą częścią natywną a nowym ekranem.

Co odebrać przed udostępnieniem ekranu

Poniższe scenariusze to propozycja kryteriów odbioru dla opisanego przykładu. Ich oczekiwane wyniki trzeba potwierdzić z właścicielami systemów; nie są raportem z wykonanych testów.

Android opisuje zachowanie Back na poziomie zadań i stosu Activity, z wyjątkami zależnymi od konfiguracji. Dlatego trzeba sprawdzić zachowanie rzeczywistego hosta, a nie przenosić regułę jednego stosu na drugi. Tasks and the back stack — Android.

  • Wejście z natywnej listy i powrót. Oczekiwany rezultat do uzgodnienia: Właściwe zamówienie; powrót do ustalonego miejsca bez dodatkowego ekranu lub utraty potrzebnego kontekstu.
  • Back, gest cofania, przycisk zamknięcia. Oczekiwany rezultat do uzgodnienia: Spójna obsługa przez uzgodnionego właściciela nawigacji. Androidowy stos Activity i wewnętrzny stos RN nie są traktowane jako ten sam mechanizm.
  • Sesja wygasa przy otwieraniu lub po zalogowaniu zewnętrznym. Oczekiwany rezultat do uzgodnienia: Zdefiniowana ścieżka ponownego uwierzytelnienia lub wyjścia; brak danych poprzedniego konta.
  • Aplikacja trafia w tło, wraca lub zostaje odtworzona po zakończeniu procesu. Oczekiwany rezultat do uzgodnienia: Stan UI i dane biznesowe są ponownie ustalone zgodnie z kontraktem, bez założenia ciągłości pamięci.
  • Operacja została wysłana, ale odpowiedź nie dotarła. Oczekiwany rezultat do uzgodnienia: Użytkownik widzi ustalony stan oczekiwania lub niepewności. Ponowienie nie tworzy drugiej operacji dzięki uzgodnionemu mechanizmowi po stronie odpowiedzialnego systemu.
  • Host i RN obserwują ten sam zakup. Oczekiwany rezultat do uzgodnienia: Zdarzenie biznesowe jest liczone raz według wspólnej definicji; ponowne wyświetlenie nie udaje nowego zakupu.
  • Kod RN nie uruchamia się lub dane nie mogą zostać odczytane. Oczekiwany rezultat do uzgodnienia: Jest uzgodniona ścieżka błędu i wyjścia, a użytkownik nie otrzymuje fikcyjnego potwierdzenia.
  • Nowy ekran zostaje wyłączony. Oczekiwany rezultat do uzgodnienia: Znana jest alternatywna ścieżka i sposób obsługi operacji rozpoczętych przed wyłączeniem.

Wycofanie ekranu ma granice

Wyłączenie punktu wejścia, powrót do poprzedniego widoku i wycofanie całego wydania aplikacji to różne działania. Zespół musi ustalić, które są faktycznie dostępne, kto je uruchamia oraz jak długo stare i nowe kontrakty danych muszą ze sobą współpracować. Istnienie flagi funkcji lub zdalnego wyłączenia nie jest założeniem tego przykładu.

Odtworzenie UI również nie odwraca już przyjętego zamówienia czy innej operacji biznesowej. Dokumentacja Apple o przywracaniu stanu dotyczy odtworzenia interfejsu i wymaga danych oraz obsługi po stronie aplikacji. To nie mechanizm cofania transakcji. Restoring your app’s state — Apple.

Przed decyzją o pierwszym ekranie warto zebrać wersje aplikacji i zależności, diagram nawigacji, zasady sesji, opis operacji, właścicieli wydania oraz oczekiwane zachowanie po błędzie. Z takim materiałem można omówić wykonalność i potwierdzić zakres oceny. Sam opis biblioteki nie przesądza kosztu, terminu ani dopasowania do konkretnej aplikacji.

Omów wymagania aplikacji

Omów wymagania aplikacji.

Treść zaktualizowano: 5 listopada 2026

Mikołaj Lehman, CEO i założyciel GMI Software
Mikołaj Lehman
CEO i założyciel GMI Software

Mikołaj Lehman jest CEO i założycielem GMI Software. Na blogu opisuje decyzje związane z aplikacjami mobilnymi, e-commerce oraz realizacją produktów cyfrowych.

  • Aplikacje mobilne i React Native
  • Headless i e-commerce B2B
  • MedusaJS
  • Realizacja produktów cyfrowych

Google Preferred Sources

Czytaj GMI częściej w Google

Dodaj gmi.software do preferowanych źródeł. Google może częściej wyróżniać nasze nowe materiały w Top Stories i obsługiwanych widokach AI.

Udostępnij artykuł:

Powiązane artykuły

Aplikacje mobilne

Naprawa, modernizacja czy przepisanie aplikacji? | GMI

Porównaj naprawę, etapową modernizację i rewrite aplikacji. Sprawdź potrzebne dowody, koszty przejścia oraz warunki bezpiecznej decyzji.

→
Aplikacje mobilne

Checklista gotowości produkcyjnej aplikacji mobilnej zbudowanej z AI

Checklista kodu, danych, testów, wydania i odpowiedzialności za aplikację React Native lub Expo.

→

Porozmawiajmy o projekcie.

Opisz, czego potrzebujesz. Zaproponujemy następny krok.

[email protected]
gmi.software Sp. z o.o.ul. Jana Heweliusza 11 / 819
80-890 Gdańsk, Polska
Ocena 5,0 na 5 w Google5,017 opinii klientów w GooglePrzeczytaj opinie
© 2026 gmi.software Sp. z o.o.
Polityka prywatnościRegulamin