React Native dostępny na Meta Quest
Ta strona została przetłumaczona przez PageTurner AI (beta). Nie jest oficjalnie zatwierdzona przez projekt. Znalazłeś błąd? Zgłoś problem →
React Native zawsze koncentrował się na pomaganiu programistom w ponownym wykorzystaniu wiedzy na różnych platformach. To, co zaczęło się od Androida i iOS, stopniowo rozszerzyło się na Apple TV, Windows, macOS, a nawet internet dzięki react-strict-dom. W 2021 roku wpis o wizji wielu platform zarysował wizję przyszłości, w której React Native mógłby dostosowywać się do nowych urządzeń i formatów bez fragmentacji ekosystemu.
Na React Conf 2025 postawiliśmy kolejny krok w kierunku tej wizji, ogłaszając oficjalne wsparcie React Native dla urządzeń Meta Quest. Ten post koncentruje się na tym, jak rozpocząć pracę z React Native na Meta Quest, co działa obecnie oraz jak programiści mogą tworzyć i publikować aplikacje VR przy użyciu znanych narzędzi i wzorców.
Najważniejsze zmiany
React Native na Meta Quest

React Native apps running on Meta Quest.
Urządzenia Meta Quest działają pod kontrolą systemu Meta Horizon OS, systemu operacyjnego opartego na Androidzie. Z perspektywy React Native oznacza to, że istniejące narzędzia dla Androida, systemy budowania i przepływy pracy związane z debugowaniem działają przy minimalnych zmianach. Dla programistów, którzy już tworzą aplikacje React Native na Androida, znaczna część istniejącego modelu deweloperskiego przenosi się.
Jest to zgodne z tym, jak React Native rozszerzał się na inne środowiska oparte na Androidzie w czasie. Zamiast wprowadzać nowe środowisko uruchomieniowe lub model deweloperski, Meta Quest opiera się na tym samym fundamencie Androida i integruje się z istniejącymi abstrakcjami React Native. Pozwala to na dodawanie funkcji specyficznych dla platformy bez fragmentacji frameworka i bez konieczności stosowania oddzielnego podejścia do rozwoju.
Rozpoczęcie pracy na Meta Quest
W tej sekcji przedstawiamy podstawowy przepływ pracy deweloperskiej na Meta Quest, zaczynając od Expo Go i przechodząc do buildów deweloperskich i konfiguracji specyficznej dla platformy.
Krok po kroku: Uruchamianie aplikacji Expo na Meta Quest
Aby uruchomić aplikację Expo na Meta Quest, rozpocznij standardowy projekt Expo, uruchom serwer deweloperski i otwórz aplikację za pomocą Expo Go na urządzeniu. Poza kilkoma wymaganiami specyficznymi dla systemu Meta Horizon OS przepływ pracy jest taki sam jak na Androidzie.
-
Zainstaluj Expo Go na urządzeniu
Expo Go jest dostępne w sklepie Meta Horizon Store i można je zainstalować bezpośrednio na urządzeniach Meta Quest. Jest używane do szybkiej iteracji podczas rozwoju.
-
Utwórz (lub użyj) projekt Expo
Jeśli zaczynasz od zera, utwórz standardową aplikację Expo. Nie jest wymagany żaden specjalny szablon.
npx create-expo-app@latest my-quest-app
cd my-quest-app -
Uruchom serwer deweloperski
npx expo start -
Połącz się z Quest za pomocą Expo Go
Otwórz Expo Go na urządzeniu i zeskanuj kod QR wyświetlany przez Expo CLI za pomocą kamery urządzenia. Aplikacja uruchomi się w nowym oknie na urządzeniu, umożliwiając live reloading i szybką iterację.
-
Iteruj jak zwykle
Zmiany w kodzie są natychmiast odzwierciedlane na urządzeniu, zgodnie z tym samym cyklem edycja-odświeżanie używanym na Androidzie i iOS.
Buildy deweloperskie i funkcje natywne
Expo Go wystarcza do wczesnego etapu rozwoju i prac nad interfejsem użytkownika. Gdy potrzebny jest dostęp do modułów natywnych lub głębszej integracji z platformą, należy użyć wersji deweloperskich. Takie buildy wykorzystują standardowy workflow Expo i działają bezpośrednio na urządzeniu Quest.
Konfiguracja specyficzna dla platformy i różnice w stosunku do urządzeń mobilnych
Mimo że ogólny przepływ pracy pozostaje niezmieniony, Meta Quest wymaga kilku platformowych modyfikacji.
Konfiguracja projektu dla Meta Horizon OS
Aplikacje Meta Quest muszą spełniać określone wymagania, aby działać poprawnie i kwalifikować się do publikacji w sklepie. Obejmują one konfigurację Androida specyficzną dla platformy, warianty produktów (product flavors) oraz metadane aplikacji.
Expo udostępnia wtyczkę dla Meta Horizon OS, która automatycznie stosuje te wymagania podczas budowania. Użycie tej wtyczki zapewnia zgodność konfiguracji projektu z oczekiwaniami Meta Quest bez konieczności ręcznej modyfikacji plików natywnych.
Zainstaluj expo-horizon-core i dodaj do app.json lub app.config.js:
{
"expo": {
"plugins": [
[
"expo-horizon-core",
{
"horizonAppId": "your-horizon-app-id",
"defaultHeight": "640dp",
"defaultWidth": "1024dp",
"supportedDevices": "quest2|quest3|quest3s",
"disableVrHeadtracking": false,
"allowBackup": false
}
]
]
}
}
Zmodyfikuj również wartość orientacji:
{
...
"orientation": "default",
...
}
Zaktualizuj package.json o skrypty specyficzne dla Quest:
{
"scripts": {
"android": "expo run:android --variant mobileDebug",
"quest": "expo run:android --variant questDebug",
"android:release": "expo run:android --variant mobileRelease",
"quest:release": "expo run:android --variant questRelease"
}
}
Korzystanie z React Native bez Expo
Expo zapewnia najprostszy sposób rozpoczęcia pracy z React Native na Meta Quest. Jeśli preferujesz budowanie bez frameworka, możesz ręcznie zastosować wymaganą konfigurację Meta Horizon OS bezpośrednio w projekcie Android.
Minimalnie obejmuje to:
-
Utworzenie wariantu budowania specyficznego dla Meta Quest w
android/app/build.gradle -
Ustawienie
horizonAppId -
Zdefiniowanie domyślnego rozmiaru panelu w manifeście Androida
-
Deklarację obsługiwanych urządzeń (np.
quest2|quest3|quest3s) -
Usunięcie zabronionych uprawnień
-
Dostosowanie minimalnej obsługiwanej wersji Android SDK
-
Dodanie kontroli runtime np.
isHorizonDevice()iisHorizonBuild()
Pełną listę zmian można prześledzić, analizując implementację wtyczki expo-horizon-core i ręcznie replikując tę samą konfigurację.
Android bez usług Google Play
Meta Horizon OS bazuje na Android Open Source Project (AOSP), który dostarcza rdzeń platformy Android bez zastrzeżonych usług Google. Z perspektywy deweloperskiej oznacza to, że aplikacje działają na standardowych API Androida, ale nie mają dostępu do usług Google Mobile Services takich jak Play Services czy integracje specyficzne dla Sklepu Play.
Tworząc aplikacje dla Meta Quest, należy projektować je tak, aby unikać bezpośrednich zależności od usług Google lub zapewniać alternatywy specyficzne dla platformy tam, gdzie to konieczne.
Listę nieobsługiwanych zależności znajdziesz w dokumentacji Meta Horizon OS.
Uprawnienia i możliwości urządzeń
Niektóre uprawnienia Androida i założenia sprzętowe powszechne na urządzeniach mobilnych nie mają zastosowania w goglach VR. Funkcje komórkowe (np. SMS), niektóre czujniki (jak GPS) oraz zabronione uprawnienia są niedostępne lub zabronione. Projekty muszą wyraźnie uwzględniać te różnice podczas konfiguracji.
Ocena kompatybilności bibliotek
Większość bibliotek React Native działa na Meta Quest, ale kompatybilność zależy od założeń biblioteki dotyczących podstawowej platformy. Szczególnie problematyczne mogą być biblioteki opierające się na sprzęcie dostępnym tylko na urządzeniach mobilnych, wprowadzeniu dotykowym lub usługach niedostępnych w Horizon OS.
Ogólne wytyczne:
-
Biblioteki samowystarczalne, korzystające wyłącznie ze standardowych API React Native i Androida, zwykle działają bez zmian
-
Biblioteki zakładające wyłącznie wprowadzenie dotykowe, sprzęt mobilny lub Google Mobile Services wymagają adaptacji lub warunkowego użycia
-
Biblioteki zależne od zabronionych uprawnień lub niedostępnych funkcji urządzenia nie są obsługiwane
W typowych przypadkach użycia, takich jak lokalizacja czy powiadomienia, Expo oferuje gotowe zamienniki dla Meta Horizon OS. Inne biblioteki mogą działać bez modyfikacji lub wymagać obsługi specyficznej dla platformy, w zależności od ich zależności.
Ścieżki kodu rozpoznające platformę
Aplikacje przeznaczone zarówno dla Meta Quest, jak i innych platform powinny zabezpieczać zachowania specyficzne dla platformy. Meta Horizon OS dostarcza narzędzia runtime do wykrywania, czy aplikacja działa na urządzeniu Quest, co pozwala wyłączyć lub zastąpić nieobsługiwane funkcje w razie potrzeby.
import ExpoHorizon from 'expo-horizon-core';
// Check if running on a Horizon device
if (ExpoHorizon.isHorizonDevice) {
console.log('Running on Meta Horizon OS!');
}
// Check if this is a Horizon build
if (ExpoHorizon.isHorizonBuild) {
console.log('This is a Horizon build variant');
}
// Access the Horizon App ID
const appId = ExpoHorizon.horizonAppId;
console.log('Horizon App ID:', appId ?? 'Not configured');
Zagadnienia projektowe i UX dla VR
Projektowanie pod wyświetlacz montowany na głowie wprowadza ograniczenia odmienne od urządzeń mobilnych opartych na dotyku. Interfejsy są oglądane z dystansu, renderowane w przestrzeni i obsługiwane przy użyciu szerszego zakresu metod wprowadzania danych.
Elementy UI zazwyczaj wymagają większych obszarów dotykowych, zwiększonych odstępów oraz typografii, która pozostaje czytelna przy różnych odległościach. Te wyzwania są podobne do tych napotykanych na desktopach, tabletach i urządzeniach składanych, gdzie aplikacje działają w zmiennych oknach, a układy muszą dynamicznie adaptować się.
Główna różnica między Meta Quest a urządzeniami mobilnymi z Androidem dotyczy wprowadzania danych. Zamiast głównie dotyku, aplikacje na Meta Quest są zwykle sterowane za pomocą kontrolerów, śledzenia dłoni oraz opcjonalnie myszy i klawiatury. Kontrolery zachowują się bardziej jak urządzenie wskazujące, co wprowadza wzorce interakcji bliższe UI na desktopach i w sieci, w tym nawigację opartą o hover i focus.
System zdarzeń i model komponentów React Native może obsługiwać te wzorce interakcji, ale aplikacje powinny unikać założeń opartych wyłącznie na dotyku oraz zapewniać, że elementy UI mają wyraźne stany focusa i przewidywalną nawigację przy sterowaniu urządzeniami wskazującymi.
Razem te względy sprzyjają responsywnym układom i interakcjom niezależnym od metody wprowadzania danych. System układów i model komponentów React Native stanowią solidną podstawę do budowania komfortowych i użytecznych interfejsów VR.
Więcej szczegółów znajdziesz w oficjalnych wytycznych projektowych.
Przykłady i materiały referencyjne
Projekt referencyjny
-
Projekt referencyjny z pełną konfiguracją używaną w tym artykule
-
Aplikacja demonstracyjna Callstack Meta Horizon OS z React Conf
Dowiedz się więcej
-
Przewodnik dla programistów React Native po Meta Horizon OS (ebook)
-
Jak dodać obsługę Meta Quest do swoich buildów deweloperskich Expo (artykuł)
-
React Native na Meta Quest: Czego nauczyliśmy się budując dla VR (transmisja na żywo)
Podziękowania
Wprowadzenie React Native na nowe platformy wymaga więcej niż kodu. Jesteśmy wdzięczni wszystkim, którzy poświęcili swój czas, udzielili informacji zwrotnych i wsparcia w trakcie tej drogi.


