
Quale sviluppatore di applicazioni iPhone e Android non si è mai imbattuto nell’interfacciamento della propria app con un back-end web o delle API esterne? Probabilmente nessuno. Infatti, chi prima, chi dopo, ma ognuno di noi si è trovato a dover utilizzare dati provenienti dal web all’interno della propria app. In articoli precedenti è stato spiegato come implementare il proprio back-end; ma come gestire le chiamate web dentro l’app? Apple fornisce alcune API native, ma spesso sono complesse da utilizzare. Un alternativa valida e molto potente è AFNetworking, una libreria usatissima nello sviluppo iOS creata e mantenuta da Mattt Thompson.
Installazione
Per installarla è sufficiente usare Cocoapods: nel file Pods inserire questa riga:
pod 'AFNetworking', '~> 2.4'
Come tutte le librerie Cocoapods, basterà poi il comando “pod install” per ritrovarsi tutto configurato e pronto per essere utilizzato.
Le funzioni basilari
AFNetworking è in grado di sostituire, o meglio integrarsi, con tutte le funzioni basilari per effettuare chiamate web.
La più classica funzione per ottenere dati da un sito web con una chiamata GET necessità di solo due righe di codice:
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; [manager GET:@"http://esempio.it/file.json" parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) { NSLog(@"JSON: %@", responseObject); } failure:^(AFHTTPRequestOperation *operation, NSError *error) { NSLog(@"Error: %@", error); }];
Molto più veloce rispetto al codice richiesto dalle API base Apple!
Una caratteristica molto utile è anche il parsing automatico dei file JSON, trasformando velocemente in un oggetto Cocoa la chiamata web. Esistono anche altri parser integrati nella libreria per gestire ad esempio XML, immagini e altri tipi di dati per velocizzare lo sviluppo web.
Oltre al metodo GET esistono ovviamente altri metodi con la stessa implementazione per le varie tipologie di chiamate web: POST, PUT, DELETE etc.
La libreria include inoltre anche funzioni per download e upload semplificando (e non poco) il networking della vostra app.
Per tutte le informazioni potete visitare la pagina ufficiale della libreria su github: https://github.com/AFNetworking/AFNetworking
No Responses to “AFNetworking: una libreria per semplificare il networking di un app”