--- name: mobile-expo-expert description: "Expert guide for React Native 0.76+ and Expo SDK 52+ development. Covers cross-platform mobile architecture, Expo Router v4, New Architecture, OTA updates, and native modules / Panduan ahli pengembangan React Native 0.76+ dan Expo SDK 52+ untuk aplikasi mobile." author: "Roedy Rustam" --- # Mobile Expo Expert (SDK 52+ / RN 0.76+ Edition) [English](#english) | [Bahasa Indonesia](#bahasa-indonesia) --- ## English ### Description Best practices for building production-ready, cross-platform mobile applications (iOS, Android, Web) using **React Native (0.76+)** with **Expo SDK 52+**. Embraces the New Architecture (Fabric renderer & TurboModules enabled by default), Expo Router v4, and Expo Application Services (EAS). ### Trigger Conditions - Starting or upgrading a mobile app project to Expo SDK 52+ / React Native 0.76+. - Implementing file-based routing with Expo Router v4. - Migrating to or troubleshooting React Native's New Architecture (Fabric/TurboModules). - Setting up Over-The-Air (OTA) updates via EAS Update. - Building custom native modules via Expo Modules API (Swift & Kotlin). - Implementing push notifications, background tasks, and biometric auth. ### Core Architecture Guidelines #### 1. React Native New Architecture (Default in Expo SDK 52+) - The **New Architecture** (Fabric + TurboModules + C++ core) is enabled by default. Avoid legacy bridge-dependent packages. - Use concurrent React features (`useTransition`, `useDeferredValue`) safely within native views. #### 2. File-Based Routing (Expo Router v4) - Use `app/(tabs)` for tab navigation and `app/(auth)` for auth flows. - Use `_layout.tsx` to define shared headers, stacks, and context providers. - Handle universal deep linking natively using dynamic route parameters (`app/user/[id].tsx`). #### 3. Styling & Modern UI Systems - **NativeWind (v4)**: Use Tailwind CSS utility tokens directly in React Native components. - **Safe Area & Keyboard**: Wrap screens in `SafeAreaView` and use `KeyboardAvoidingView` or `react-native-keyboard-controller` to handle software keyboards smoothly. #### 4. Build, Distribution & OTA Updates (EAS) - **EAS Build**: Cross-compile native builds in the cloud. - **EAS Update**: Ship instant JS/asset patches Over-The-Air without waiting for App Store / Play Store reviews. - **EAS Submit**: Automate store submission pipelines. --- ## Bahasa Indonesia ### Deskripsi Praktik terbaik untuk membangun aplikasi seluler *cross-platform* (iOS, Android, Web) yang siap produksi menggunakan **React Native (0.76+)** dan **Expo SDK 52+**. Mengadopsi Arsitektur Baru (renderer Fabric & TurboModules yang aktif secara default), Expo Router v4, serta Expo Application Services (EAS). ### Kondisi Pemicu - Memulai atau memperbarui proyek mobile ke Expo SDK 52+ / React Native 0.76+. - Mengimplementasikan routing berbasis file dengan Expo Router v4. - Mengkonfigurasi Arsitektur Baru React Native (Fabric / TurboModules). - Mengatur pembaruan langsung (*Over-The-Air* / OTA) via EAS Update. - Membangun modul native kustom via Expo Modules API (Swift & Kotlin). - Menerapkan *push notifications*, *background tasks*, dan autentikasi biometrik. ### Panduan Arsitektur Inti #### 1. Arsitektur Baru React Native (Default di Expo SDK 52+) - **Arsitektur Baru** (Fabric + TurboModules) aktif secara otomatis. Hindari paket lama yang masih bergantung pada *legacy bridge*. - Gunakan fitur konkurensi React (`useTransition`, `useDeferredValue`) dengan aman di komponen native. #### 2. Perutean Berbasis File (Expo Router v4) - Gunakan `app/(tabs)` untuk navigasi tab dan `app/(auth)` untuk alur autentikasi. - Gunakan `_layout.tsx` untuk mendefinisikan *header* bersama, tumpukan navigasi (*stack*), dan penyedia konteks. - Kelola *universal deep linking* secara otomatis via rute dinamis (`app/user/[id].tsx`). #### 3. Styling & UI System Modern - **NativeWind (v4)**: Gunakan utilitas Tailwind CSS langsung di komponen React Native. - **Area Aman & Keyboard**: Bungkus layar dengan `SafeAreaView` dan gunakan `KeyboardAvoidingView` agar bidang input tidak tertutup keyboard. #### 4. Build, Distribusi & OTA Updates (EAS) - **EAS Build**: Kompilasi build native di *cloud*. - **EAS Update**: Rilis perbaikan bug instan tanpa perlu menunggu proses tinjauan App Store / Google Play. - **EAS Submit**: Otomatiskan alur pengiriman ke toko aplikasi.