
Expo to platforma i zestaw narzędzi przeznaczonych do tworzenia aplikacji w React Native, czyli technologii pozwalającej budować aplikacje mobilne przy użyciu JavaScriptu lub TypeScriptu oraz biblioteki React. Expo upraszcza przygotowanie, testowanie, budowanie i publikowanie aplikacji na Androida i iOS, a część projektów może być również uruchamiana w przeglądarce internetowej.
Rola Expo SDK w ekosystemie React Native
Podstawą Expo jest Expo SDK, czyli Software Development Kit, a więc zestaw bibliotek i modułów wykorzystywanych podczas tworzenia aplikacji. Udostępnia on gotowy dostęp do funkcji urządzenia, takich jak aparat, lokalizacja, kontakty, czujniki ruchu, wibracje, pliki czy powiadomienia. Dzięki temu aplikacja działająca na smartfonie lub tablecie może korzystać z tych możliwości bez konieczności samodzielnego pisania całej warstwy natywnego kodu dla Androida i iOS.
Expo nie jest osobnym systemem operacyjnym ani językiem programowania. Jest frameworkiem działającym w ekosystemie React Native. Sam React Native zapewnia podstawę do tworzenia aplikacji natywnych za pomocą Reacta, natomiast Expo dodaje do niego zestaw narzędzi, bibliotek i usług, które upraszczają typowe zadania programistyczne. Pakiet Expo można także dodać do istniejącego projektu React Native, więc nie trzeba budować całej aplikacji od początku w jednym ściśle zamkniętym środowisku.
Expo Router i testowanie z aplikacją Expo Go
Ważnym elementem platformy jest Expo Router. To system nawigacji oparty na strukturze plików projektu. Poszczególne ekrany aplikacji odpowiadają określonym plikom i katalogom, dzięki czemu organizacja tras przypomina rozwiązania znane z nowoczesnych frameworków internetowych. Expo Router może obsługiwać nawigację w aplikacjach mobilnych oraz wersjach webowych, co ułatwia budowanie jednego projektu przeznaczonego dla różnych platform.
Do uruchamiania i testowania projektu można wykorzystać Expo Go. Jest to aplikacja instalowana na smartfonie lub tablecie, która pozwala szybko otworzyć projekt podczas tworzenia i sprawdzić jego działanie na fizycznym urządzeniu. Rozwiązanie jest szczególnie przydatne podczas nauki i we wczesnych etapach prac.
Usługi chmurowe EAS i obsługa kodu natywnego
Expo obejmuje również EAS, czyli Expo Application Services. Jest to zestaw usług chmurowych wspierających kolejne etapy przygotowania i publikacji aplikacji. EAS Build pozwala kompilować i podpisywać aplikacje dla Androida i iOS w chmurze, natomiast EAS Submit ułatwia przesyłanie gotowych wersji do Google Play i App Store. EAS Update służy do dostarczania określonych aktualizacji bez konieczności każdorazowego publikowania pełnej nowej wersji w sklepie, a EAS Workflows umożliwia automatyzację procesu budowania, testowania i wdrażania.
Istotną funkcją Expo jest możliwość korzystania z własnego kodu natywnego. Starsze wersje platformy były częściej kojarzone z ograniczeniem do zestawu funkcji dostarczanych przez Expo, ale współczesny model jest znacznie bardziej elastyczny. W projekcie można instalować zewnętrzne biblioteki React Native wymagające zmian w kodzie Androida lub iOS, używać własnych modułów napisanych np. w Kotlinie lub Swift oraz konfigurować projekty natywne za pomocą tzw. config plugins.