Definicja #
React Native to framework open-source do tworzenia wieloplatformowych aplikacji mobilnych (iOS i Android) z jednego kodu źródłowego. Stworzony przez Meta (Facebook) i wydany w 2015 roku. W odróżnieniu od hybrydowych rozwiązań webowych (Cordova, Ionic), React Native bazuje na React i JavaScript/TypeScript i generuje natywne komponenty UI — nie elementy HTML wyświetlane w WebView.
Kluczowe cechy React Native:
- JavaScript/TypeScript — kod pisany w JS/TS, wspólny dla iOS i Android
- Natywne komponenty —
View,Text,Image,ScrollViewmapują się na natywne widoki iOS/Android - Nowa architektura (JSI) — od RN 0.71 nowy silnik komunikacji JS-native (JSI) zamiast starego Bridge, zmniejsza opóźnienia
- Expo — zestaw narzędzi i bibliotek upraszczający tworzenie aplikacji RN (managed workflow lub bare)
- Metro Bundler — bundler JavaScript dla React Native
- Hot Reloading / Fast Refresh — szybki podgląd zmian bez restartu aplikacji
React Native jest używany przez duże firmy: Meta, Microsoft, Shopify, Wix. Główną alternatywą jest Flutter (Google, język Dart, własny silnik renderujący).
Zastosowania #
React Native stosuje się do:
- Tworzenia aplikacji mobilnych iOS i Android z jedną bazą kodu JavaScript/TypeScript — oszczędność czasu i kosztów
- Projektów gdzie zespół zna już React — łatwe przeniesienie kompetencji frontendowych do mobile
- Aplikacji wymagających natywnego wyglądu na każdej platformie — komponenty mapowane na natywne widoki
- Aplikacji z potrzebą dostępu do funkcji urządzenia — kamera, GPS, powiadomienia, Bluetooth przez biblioteki lub Expo
- Szybkiego prototypowania aplikacji mobilnych z Expo bez konfiguracji native build toolchainów
Ścieżka nauki #
Przed nauką React Native niezbędna jest dobra znajomość JavaScript/TypeScript i najlepiej podstaw React (komponenty, hooks, state, props).
Zacznij od:
- Środowisko — zacznij od Expo Go (najłatwiejszy start, bez Xcode/Android Studio)
- Podstawowe komponenty:
View,Text,StyleSheet,Image,TouchableOpacity - Nawigacja — React Navigation (stack, tab, drawer)
- State management — React hooks, Context API lub Zustand/Redux
Następnie poznaj:
- Expo SDK — Camera, Location, Notifications, SecureStore, FileSystem
- Debugowanie — Flipper, React Native Debugger, Expo DevTools
- Nowa architektura RN — JSI, Fabric renderer, TurboModules
- Porównaj z Flutter — kiedy wybrać Flutter, kiedy React Native
FAQ #
- Czym różni się React Native od Flutter?
- React Native używa JavaScript/TypeScript i mapuje komponenty na natywne widoki platformy (iOS/Android). Flutter używa języka Dart i własnego silnika renderującego (Skia/Impeller) — rysuje UI samodzielnie, niezależnie od natywnych widgetów. Flutter daje pełną kontrolę nad UI, React Native jest bliżej natywnego wyglądu platformy.
- Czy React Native zastępuje natywny iOS/Android?
- Nie całkowicie. React Native sprawdza się dla większości aplikacji biznesowych. Aplikacje wymagające maksymalnej wydajności (gry, AR/VR, złożone animacje) lub głębokiej integracji z systemem nadal lepiej budować natywnie (Swift, Kotlin). W praktyce wiele aplikacji mieszają RN z natywnymi modułami.
- Czy do React Native potrzebuję Maca?
- Do budowania aplikacji iOS tak — Xcode działa tylko na macOS. Aplikacje Android można buildować na Windows i Linux. Expo Go pozwala testować na fizycznym urządzeniu bez konfiguracji native build, ale finalne buildy iOS wymagają Maca lub usługi CI (EAS Build).
- Ile zarabia React Native Developer?
- Mid React Native Developer zarabia w Polsce od 11 000 do 19 000 zł brutto. Senior z doświadczeniem w natywnych modułach, nowej architekturze i wdrożeniach do App Store/Google Play może zarabiać 18 000–28 000 zł.