Section 5/71 menit
5. Kapan Tidak Digunakan
5. Kapan Tidak Digunakan
Hindari package ketika:
1. Single-module project (app tanpa library)
swift
// App target biasa — hanya satu module
// 'package' = 'internal' di sini karena tidak ada module lain dalam "package"
// Gunakan 'internal' saja — lebih jelas intent-nya
// JANGAN: penggunaan tidak berguna
package class ViewModel { } // sama saja dengan internal di single-module app
// GUNAKAN: internal (default)
class ViewModel { } // otomatis internal
2. API yang memang harus public
swift
// Jika end-user SDK perlu menggunakan type ini, harus public
// 'package' menyembunyikannya dari end-user
// JANGAN jika ini adalah public API:
package class UserProfile { } // end-user tidak bisa pakai!
// GUNAKAN: public
public class UserProfile { }
3. Implementation detail yang hanya relevan dalam satu module
swift
// Ini cukup internal — tidak perlu diakses dari module lain dalam paket
// JANGAN: terlalu luas
package func validateEmail(_ email: String) -> Bool { } // tidak perlu lintas module
// GUNAKAN: internal (atau private)
func validateEmail(_ email: String) -> Bool { } // default internal
4. Ketika package boundary tidak sesuai dengan logical boundary
swift
// Hati-hati: "package" berarti SEMUA module dalam Package.swift
// Jika package-mu sangat besar, ini mungkin terlalu luas
// Lebih baik rancang module boundary yang tepat daripada
// menggunakan 'package' sebagai workaround untuk design yang buruk