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+