Section 20/211 menit
Ringkasan Keputusan Isolation
Ringkasan Keputusan Isolation
| Keputusan | Alasan |
|---|---|
Interactor = actor bukan @MainActor |
Parsing JSON dan transformasi data berjalan di background — main thread tetap bebas |
Worker = actor terpisah |
Interactor tidak bergantung pada detail networking — mudah diganti mock saat testing |
Presenter = @MainActor |
Satu-satunya layer yang boleh menyentuh View API — menjamin semua UI update di main thread |
Models = Sendable struct |
Harus melewati minimal 3 isolation boundary (Worker → Interactor → Presenter → View) |
Protocol method Presenter = @MainActor |
Compiler memaksa semua caller menggunakan await — tidak ada yang bisa "lupa" thread |
Task {} di ViewController, bukan Task.detached |
Mewarisi @MainActor isolation — tidak perlu MainActor.run {} saat kembali ke UI |