Expo Ecosystem
Expo adalah platform yang mempermudah development, build, dan deploy React Native app. Dengan Expo, kamu bisa membuat app tanpa menyentuh Xcode atau Android Studio di awal.
Expo Go vs Development Build
# Expo Go: sandbox app untuk development cepat
npx expo start
# Scan QR → app berjalan di Expo Go
# Development Build: native build custom
npx expo install expo-dev-client
eas build --profile development --platform ios
# Hasilkan app custom yang bisa diinstall
Expo SDK Libraries
# Expo menyediakan 50+ library siap pakai:
npx expo install expo-camera # Kamera
npx expo install expo-location # GPS
npx expo install expo-notifications # Push notifications
npx expo install expo-file-system # File operations
npx expo install expo-image-picker # Pilih foto dari gallery
npx expo install expo-secure-store # Encrypted storage
npx expo install expo-haptics # Vibration feedback
npx expo install expo-av # Audio/Video
EAS (Expo Application Services)
// eas.json — konfigurasi build profiles
{
"build": {
"development": {
"developmentClient": true,
"distribution": "internal"
},
"preview": {
"distribution": "internal"
},
"production": {}
},
"submit": {
"production": {
"ios": {
"appleId": "[email protected]",
"ascAppId": "1234567890"
},
"android": {
"serviceAccountKeyPath": "./google-services.json"
}
}
}
}
EAS Commands
# Build di cloud (tidak perlu Mac untuk iOS!)
eas build --platform ios
eas build --platform android
# Update tanpa rebuild (OTA update)
eas update --branch production --message "Fix typo"
# Submit ke App Store / Play Store
eas submit --platform ios
eas submit --platform android
Managed vs Bare Workflow
- Managed — Expo mengurus native code. Kamu hanya tulis JS/TS. Mudah tapi ada batasan.
- Bare — Kamu punya akses ke folder ios/ dan android/. Lebih fleksibel tapi lebih kompleks.
- Prebuild — Best of both: managed workflow tapi bisa generate native folders saat dibutuhkan (
npx expo prebuild). - Rekomendasi: Mulai managed, eject ke bare hanya jika benar-benar butuh.