Swift Concurrency: async/await ile Modern Eşzamanlılık

Giriş Swift 5.5 ile birlikte gelen async/await, iOS geliştirme dünyasında callback ve completion handler cehenneminden kurtulmanın en temiz yolu haline geldi. Bu yazıda gerçek dünya senaryolarıyla Swift Concurrency’yi ele alacağız. Neden async/await? Klasik completion handler yaklaşımının sorunları: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 // ❌ Eski yöntem — callback cehennemi func fetchUser(id: String, completion: @escaping (Result<User, Error>) -> Void) { networkService.get("/users/\(id)") { result in switch result { case .success(let data): do { let user = try JSONDecoder().decode(User.self, from: data) self.fetchPosts(for: user) { postsResult in // Bir kat daha içeriye... } } catch { completion(.failure(error)) } case .failure(let error): completion(.failure(error)) } } } 1 2 3 4 5 6 7 8 9 10 11 // ✅ async/await ile temiz kod func fetchUser(id: String) async throws -> User { let data = try await networkService.get("/users/\(id)") return try JSONDecoder().decode(User.self, from: data) } func loadUserWithPosts(id: String) async throws -> (User, [Post]) { let user = try await fetchUser(id: id) let posts = try await fetchPosts(for: user) return (user, posts) } Structured Concurrency ile Paralel İşlemler İki bağımsız network isteğini paralel yapmak için async let kullanın: ...

6 Haziran 2026 · 3 dk · Kemal Türk