Section 21/212 menit
Ringkasan Fitur Swift Concurrency yang Digunakan
Ringkasan Fitur Swift Concurrency yang Digunakan
| Fitur | Digunakan Di | Tujuan |
|---|---|---|
actor |
Worker, Interactor | Isolasi state — thread-safe tanpa lock manual |
@MainActor |
ViewController, Presenter, Router | Jamin semua UIKit di main thread |
async/await |
Semua layer | Alur async yang linear dan mudah dibaca |
Task {} |
ViewController | Bridge sync UIKit callback → async method |
Task.cancel() |
ViewController | Batalkan fetch saat view hilang — hemat resource |
Task.checkCancellation() |
Worker | Cek cancellation sebelum operasi berat |
withTaskCancellationHandler |
Worker | Cleanup resource eksternal saat cancel |
async let |
Interactor | Fetch beberapa sumber data secara parallel |
withTaskGroup |
Worker | Bulk operation dengan jumlah task dinamis |
Task.detached |
Interactor | Operasi background yang tidak terikat isolation parent |
AsyncStream |
Worker | Live polling — push values ke consumer secara async |
for await |
Interactor | Konsumsi AsyncStream secara sequential |
withCheckedContinuation |
ViewController | Bridge UIKit delegate → async function |
withCheckedThrowingContinuation |
LocationService | Bridge delegate yang bisa throw → async throws |
Sendable |
Semua models | Izinkan nilai melewati isolation boundary dengan aman |
nonisolated(unsafe) |
Interactor.selectedUser | Trade-off eksplisit untuk DataStore pattern |
Dibuat: 2026-05-08 | Diperbarui: 2026-05-09 | Swift 6.0 | UIKit | Pattern: VIP (Clean Swift)