Section 16/181 menit

16. Kapan Tidak Digunakan

16. Kapan Tidak Digunakan

  • Build Tool Plugin untuk transformasi sederhana: Jika sekadar copy file atau rename, resources declaration di Package.swift sudah cukup. Plugin menambah kompleksitas yang tidak perlu.

  • Binary Target untuk package yang sering berubah: Setiap perubahan membutuhkan build ulang XCFramework, upload, dan update checksum. Untuk package yang aktif dikembangkan, source distribution jauh lebih efisien.

  • Command Plugin yang memerlukan state kompleks: Command plugin berjalan dalam sandbox yang terbatas. Untuk release automation yang kompleks (bump version, update changelog, tag git, push) lebih baik gunakan tool khusus seperti Fastlane atau shell script.

  • Local packages sebagai pengganti module: Membuat local package hanya untuk dua atau tiga file adalah overkill. Gunakan Swift module biasa (folder dengan sources) terlebih dahulu, baru ekstrak ke package ketika sudah jelas batasannya.

  • Swift Package Registry untuk project solo atau tim kecil: Overhead setup dan maintenance self-hosted registry tidak sepadan untuk tim kecil. GitHub URL dependencies sudah memadai.

  • Unsafe flags di library yang didistribusikan: Library dengan unsafeFlags tidak bisa menjadi dependency dari package lain — SPM akan menolak. Hanya gunakan di root package atau test targets.