Junior — Middle
Ako je implementovaná sieťová interakcia vo vašom projekte?
sobes.tech AI
Odpoveď od AI
V mojom iOS projekte, sieťová komunikácia je implementovaná pomocou URLSession, ktorá poskytuje API na vykonávanie HTTP požiadaviek.
Pre pohodlie a opakovateľnosť som vytvoril sieťovú vrstvu s abstrakciou, ktorá spravuje tvorbu požiadaviek, spracovanie odpovedí a chýb. JSON sa tiež analyzuje pomocou Codable.
Príklad jednoduchého požiadavku:
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()
}
Pre zložitejšie úlohy sa používajú knižnice tretích strán, ako je Alamofire, ktoré uľahčujú zostavovanie požiadaviek a spracovanie odpovedí.