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).