Junior — Middle
Jak zrealizowano interakcję sieciową w Twoim projekcie?
sobes.tech AI
Odpowiedź od AI
W moim projekcie iOS komunikacja sieciowa jest realizowana za pomocą URLSession, które zapewnia API do wykonywania żądań HTTP.
Dla wygody i ponownego użycia stworzyłem warstwę sieciową z abstrakcją, która obsługuje tworzenie żądań, przetwarzanie odpowiedzi i błędów. Do parsowania JSON używany jest również Codable.
Przykład prostego żądania:
func fetchUsers(completion: @escaping ([User]?, Error?) -> Void) {
let url = URL(string: "https://api.example.com/users")!
URLSession.shared.dataTask(with: url) { data, response, error in
guard let data = data, error == nil else {
completion(nil, error)
return
}
do {
let users = try JSONDecoder().decode([User].self, from: data)
completion(users, nil)
} catch {
completion(nil, error)
}
}.resume()
}
Dla bardziej skomplikowanych zadań używane są biblioteki zewnętrzne, takie jak Alamofire, które ułatwiają tworzenie żądań i obsługę odpowiedzi.