Section 10/102 menit
10. Ringkasan & Decision Guide
10. Ringkasan & Decision Guide
Decision Guide: Apakah Saya Perlu Macro?
swift
Apakah ada pola kode yang berulang di banyak tempat?
│
├─ TIDAK → Tidak perlu macro. Gunakan fungsi/protocol biasa.
│
└─ YA → Berapa kali pola ini muncul?
│
├─ < 5 kali → Terlalu sedikit. Tulis manual atau gunakan protocol.
│
└─ ≥ 5 kali → Apakah pola ini bisa diekspresikan di compile time?
│
├─ TIDAK (butuh runtime info) → Gunakan protocol/generic.
│
└─ YA → Apakah timmu familiar dengan SwiftSyntax?
│
├─ TIDAK → Investasi waktu belajar dulu,
│ atau gunakan library macro yang ada.
│
└─ YA → ✓ Buat macro!
Mulai dari yang paling simple.
Test setiap skenario expansion.
Quick Reference: Pilih Jenis Macro yang Tepat
| Kebutuhan | Jenis Macro |
|---|---|
| Generate nilai dari ekspresi | @freestanding(expression) |
| Generate deklarasi baru di level file | @freestanding(declaration) |
| Tambah property/method ke type | @attached(member) |
| Tambah atribut ke semua member | @attached(memberAttribute) |
| Ubah stored property jadi computed | @attached(accessor) |
| Tambah protocol conformance + impl | @attached(conformance) |
| Generate fungsi async dari completion handler | @attached(peer) |
| Generate extension terpisah | @attached(extension) |
Checklist Sebelum Merilis Macro
- Semua jenis input (struct, class, enum, generic) sudah di-test
- Error message informatif dan memberikan solusi
- Dokumentasi penggunaan tersedia (docstring + README)
- Package.swift sudah dikonfigurasi dengan benar
- Version SwiftSyntax sesuai dengan minimum Swift requirement
- CI/CD pipeline sudah include test macro
- "Expand Macro" di Xcode sudah diverifikasi hasilnya benar
Sumber Belajar Lanjutan
- swift-syntax repository — source code dan contoh resmi dari Apple
- WWDC 2023: Write Swift Macros — sesi pengenalan macro oleh tim Swift
- WWDC 2023: Expand on Swift Macros — deep dive implementasi
- swift-macro-examples — koleksi contoh macro dari Apple di GitHub
Dibuat: 2026-05-23 | Swift 5.9+