EAS Build: Cloud Build Setup
Build aplikasi di cloud tanpa perlu Mac atau Android Studio
Tujuan Pembelajaran
- Memahami EAS Build dan perbedaannya dengan local build
- Mampu mengkonfigurasi eas.json untuk berbagai profile
- Mengerti cara trigger build dari local machine
Analogi
Local Build = Masak Sendiri:
- Butuh dapur (Mac, Android Studio)
- Butuh bahan (Xcode, SDK, keystore)
- Lama, resource-intensive
EAS Build = Pesan Katering:
- Kamu kasih resep (eas.json)
- Katering masak di dapur mereka (Expo servers)
- Hasil diantar ke kamu (download build)
EAS Build seperti katering — kamu kirim resep, Expo yang masak di dapur cloud mereka. Build selesai, kamu download hasilnya.
Penjelasan Konsep
EAS Build adalah layanan cloud build dari Expo. Kamu upload kode JavaScript + native config, Expo build di server mereka, return binary (IPA/AAB) yang siap deploy.
Kenapa cloud build: (1) Tidak perlu Mac untuk build iOS — Expo sediakan Mac servers. (2) Tidak perlu install Android Studio + NDK. (3) CI-friendly — bisa panggil via GitHub Actions. (4) Credentials management otomatis.
Konfigurasi: eas.json di root project. Definisikan build profiles: development, preview, production. Setiap profile punya: distribution (store/internal), channel, autoIncrement, credentialsSource.
Build profiles: (1) Development — untuk development build (testing native module). Auto code signing. (2) Preview — untuk Ad Hoc/TestFlight testing. Internal distribution. (3) Production — untuk App Store/Play Store submission. Harus punya distribution cert dan provisioning.
Trigger build: (1) eas build --platform ios --profile production. (2) eas build --platform android --profile production. (3) eas build --platform all untuk kedua platform.
Build process: (1) Upload project snapshot ke EAS servers. (2) Expo run expo prebuild — generate native code. (3) Install dependencies (CocoaPods, Gradle). (4) Build native binary. (5) Upload hasil ke Expo dashboard. (6) Kamu download atau submit ke store.
Inti yang Perlu Dipahami
Bagian ini berfokus pada memahami EAS Build dan perbedaannya dengan local build., mampu mengkonfigurasi eas.json untuk berbagai profile., dan mengerti cara trigger build dari local machine. Jangan terburu-buru menghafal istilahnya. Lebih penting untuk memahami peran setiap konsep dan kapan konsep itu muncul dalam pekerjaan web development.
Saat membaca EAS Build, gunakan tujuan belajar sebagai penanda arah. Kalau kamu sudah bisa menjelaskan tujuan itu dengan kata-katamu sendiri, berarti fondasinya mulai terbentuk.
Cara Membayangkannya
EAS Build seperti katering — kamu kirim resep, Expo yang masak di dapur cloud mereka. Build selesai, kamu download hasilnya. Analogi ini dipakai supaya konsep teknis tidak terasa melayang. Hubungkan setiap istilah dengan perannya: siapa yang meminta, siapa yang memproses, data apa yang berpindah, dan hasil apa yang diharapkan.
Kalau analoginya sudah terasa masuk akal, barulah lihat istilah teknisnya. Cara ini membuat materi lebih mudah dipahami daripada langsung menghafal definisi.
Saat Melihat Contoh Kode
Contoh kode pada chapter ini memakai bahasa json. Bacalah contoh kode sebagai ilustrasi alur, bukan sebagai bagian yang harus langsung dihafal. development profile: developmentClient untuk debug. preview: internal distribution untuk tester. production: store distribution untuk App Store/Play Store.
Perhatikan nama fungsi, urutan langkah, dan data yang berpindah. Biasanya tiga hal itu sudah cukup untuk memahami hubungan antara teori dan praktik.
Konteks dalam Perjalanan Belajar
Setiap konsep di platform ini dipilih karena dipakai di industri. Fokus pada pemahaman, bukan hafalan.
Kamu sudah di bagian lanjutan. Mulai pikirkan bagaimana konsep ini dipakai di dunia kerja — bukan hanya untuk belajar, tapi untuk membangun produk nyata.
Gunakan pertanyaan reflektif dan prompt AI di akhir chapter sebagai latihan aktif. Membaca saja tidak cukup — kamu perlu menjelaskan ulang dengan kata-katamu sendiri.
Contoh Kode
{
"cli": { "version": ">= 3.0" },
"build": {
"development": {
"developmentClient": true,
"distribution": "internal"
},
"preview": {
"distribution": "internal",
"channel": "preview"
},
"production": {
"distribution": "store",
"channel": "production"
}
}
}Penjelasan Kode
Prompt AI
Konfigurasikan eas.json untuk workflow: (a) dev build untuk development harian, (b) staging build untuk QA testing (via TestFlight), (c) production build untuk App Store. Sertakan environment variables berbeda per profile.
Pertanyaan Reflektif
Berapa lama waktu build aplikasi mobile tanpa EAS? Apakah cloud build worth it untuk project kecil?