Section 8/221 menit
8. Explicit Module Build
8. Explicit Module Build
Xcode 15 memperkenalkan Explicit Module Build (EMB) sebagai default untuk Swift modules. Di Xcode 16, EMB juga aktif untuk Clang/ObjC modules.
Apa Bedanya dengan Implicit Module Build
Implicit (lama): Setiap file Swift yang mengimpor sebuah modul memulai scan untuk menemukan dan mengkompilasi modul itu. Banyak file yang mengimpor Foundation → banyak scan redundan.
Explicit (baru): Build system melakukan satu scan di awal untuk semua modul, mengkompilasi setiap modul sekali, lalu semua file menggunakan hasil kompilasi tersebut.
Mengaktifkan di Xcode 15+
swift
Build Settings → Swift Compiler - General
→ Enable Explicit Module Builds: YES
Atau via xcconfig:
swift
# Configs/Debug.xcconfig
SWIFT_ENABLE_EXPLICIT_MODULE_BUILD = YES
Dampak pada Build Time
Hasil benchmark internal Apple dan komunitas menunjukkan:
- Clean build: 10–30% lebih cepat
- Incremental build: 20–40% lebih cepat (terutama untuk modul besar seperti SwiftUI)
Manfaat paling terasa pada project yang banyak menggunakan framework Apple (SwiftUI, Combine, Foundation).