Een paar weken geleden bereikte AFNetworking versie 1.0, een belangrijke mijlpaal voor elk softwareproject. In deze snelle tip zal ik u snel introduceren bij AFNetworking en laten zien welke versie 1.0 te bieden heeft.
De README van de AFNetworking GitHub-repository vat het mooi samen.
AFNetworking is een heerlijke netwerkbibliotheek voor iOS en Mac OS X. Het is er bovenop gebouwd
NSURLConnection
,NSOperation
, en andere vertrouwde Foundation-technologieën. Het heeft een modulaire architectuur met goed ontworpen, veelzijdige API's die een genot zijn om te gebruiken.
Zoals de README vermeldt, is de community de belangrijkste component van AFNetworking en daar ben ik het niet meer mee eens. Telkens wanneer ik een open-sourcebibliotheek voor een project beschouw, zoek ik naar drie dingen:
Naar mijn mening zal een project dat wordt onderhouden door een enkele persoon eerder in de steek worden gelaten dan een project met tientallen actieve bijdragers, zoals AFNetworking. Het is veilig om te zeggen dat AFNetworking niet snel zal verdwijnen!
Mattt Thompson (@mattt) en Scott Raymond (@sco) startten AFNetworking op Gowallo. Helaas werd Gowalla in december 2011 overgenomen door Facebook en vervolgens gesloten. Mattt Thompson stopte echter niet met AFNetworking. Hij heeft het project opengesteld en toen kreeg AFNetworking echt populariteit en momentum. Een geweldige community van ontwikkelaars heeft het afgelopen jaar aan AFNetworking gewerkt en dit heeft geresulteerd in de release van versie 1.0 in oktober 2012.
Zoals ik eerder schreef, is netwerken moeilijk, vooral op mobiele apparaten. De meeste mobiele applicaties hebben een of andere netwerkcomponent om gegevens naar een webservice te halen of te plaatsen. Het is daarom niet verrassend dat AFNetworking een van de meest populaire opslagplaatsen op GitHub is in de categorie Objectief-C. Het vervangt geleidelijk de populaire ASIHTTPRequest-bibliotheek en biedt ontwikkelaars een betrouwbare en prachtige netwerkbibliotheek om mee te werken.
Als u AFNetworking nog niet kent, moet u zich afvragen waarom u AFNetworking zou moeten gebruiken in plaats van NSURLConnection
of een van de andere native netwerkbibliotheken die beschikbaar zijn met de iOS SDK. Laten we eens kijken naar wat AFNetworking te bieden heeft.
Afgezien van de uitgebreide functieset van AFNetworking zijn er twee belangrijke voordelen voor het werken met AFNetworking. Het eerste voordeel is gebruiksgemak. AFNetworking maakt uitgebreid gebruik van blokken, en dit maakt zijn API's eenvoudig, elegant en, durf ik, mooi! Hoewel AFNetworking is gebouwd op de top van NSURLConnection
, als ontwikkelaar hoeft u zich geen zorgen te maken over callbacks van gedelegeerden tijdens het werken met AFNetworking. Door gebruik te maken van succes- en faalblokken, is uw netwerkcode beknopt, beter leesbaar en over het algemeen eenvoudiger te onderhouden. De kernklassen van AFNetworking zijn gebaseerd op NSOperation
, Dit geeft AFNetworking veel kracht en flexibiliteit in termen van plannings- en wachtrijaanvragen en pauzeren en annuleren van verzoeken.
Het tweede belangrijke voordeel van AFNetworking is de modulariteit. Hoewel AFNetworking wordt geleverd met een aantal gespecialiseerde klassen voor het afhandelen van algemene taken, zoals het ophalen en verwerken van JSON-gegevens van een webservice, is het eenvoudig om AFNetworking aan te passen aan de behoeften van uw toepassing.
Wat krijg je gratis als je AFNetworking kiest? Ik zal niet alle functies van deze geweldige bibliotheek behandelen, maar ik wil de functies benadrukken die AFNetworking echt laten schitteren.
AFURLConnectionOperation
is de kerncomponent van AFNetworking op het gebied van het afhandelen van aanvragen. inwendig, AFURLConnectionOperation
toepassingen NSURLConnection
. Zoals ik eerder al zei, zijn de kernklassen van AFNetworking subklassen van NSOperation
. Dit betekent dat aanvragen in de wachtrij kunnen worden geplaatst, gepauzeerd en geannuleerd wanneer dat nodig is.
AFHTTPRequestOperation
is een subklasse van AFURLConnectionOperation
en is gericht op het specifiek behandelen van HTTP (S) -verzoeken.
AFJSONRequestOperation
, AFXMLRequestOperation
, AFPropertyListRequestOperation
, en AFImageRequestOperation
zijn subklassen van AFHTTPRequestOperation
. Elk van deze subklassen zorgt voor de afhandeling van een specifiek type verzoek. Hoewel deze gespecialiseerde klassen uit de doos werken, is het eenvoudig om een subklasse te maken AFHTTPRequestOperation
om een subklasse te maken die perfect aansluit op de behoeften van uw toepassing.
Als uw toepassing met een webservice praat, dan zult u het geweldig vinden AFHTTPClient
. Deze klasse biedt een handige interface voor interactie met een webservice. Door te subclasseren AFHTTPClient
, u kunt standaardkopteksten voor elke aanvraag opgeven, verificatie beheren, meervoudige formulierverzoeken samenstellen en nog veel meer. AFHTTPClient
heeft ook de mogelijkheid om netwerkveranderingen te controleren en erop te reageren, net als de bereikbaarheidsklasse van Apple.
UIImageView
De AFNetworking-bibliotheek wordt ook geleverd met een categorie UIImageView
, waarover ik een paar maanden geleden heb gesproken. Deze lichtgewichtcategorie maakt het laden van afbeeldingen snel en eenvoudig zonder afbreuk te doen aan het reactievermogen van de hoofddraad.
In versie 1.0 kunt u een verzoekbewerking ook markeren als een achtergrondtaak, wat betekent dat de bewerking op de achtergrond blijft uitvoeren wanneer de toepassing naar de achtergrond wordt verplaatst.
Oorspronkelijk heeft AFNetworking ARC niet uit de verpakking ondersteund. Met de 1.0-release biedt AFNetworking standaard echter volledige ARC-ondersteuning.
Zoals ik aan het begin van dit artikel al zei, is de gemeenschap van een open-sourceproject vaak cruciaal voor het succes ervan. Het is niet alleen belangrijk om de ontwikkeling actief te houden, maar ontwikkelaars zijn ook vaak terughoudend in het gebruik van bibliotheken die niet worden ondersteund door een gezonde community voor hulp en ondersteuning. AFNetworking heeft een geweldige community en Matt Thompson beantwoordt zelfs vragen over Stack Overflow over AFNetworking.
Bovendien zijn de documentatie en Wiki van AFNetworking een geweldige bron om met AFNetworking aan de slag te gaan. Dankzij de populariteit van AFNetworking zijn er ook een aantal uitstekende zelfstudies die u helpen om snel aan de slag te gaan.
Hoewel eerdere versies van AFNetworking compatibel waren met iOS 4.3, vereist versie 1.0 iOS 5.0 (of hoger) of OS X 10.7 (of hoger).
AFNetworking is niet zomaar een bibliotheek met een paar hulpprogramma klassen. Het is een robuuste maar toch flexibele bibliotheek die zijn waarde en betrouwbaarheid heeft bewezen. Als u op zoek bent naar een netwerkbibliotheek voor uw volgende iOS- of OS X-project, zijn er genoeg redenen om voor dit juweeltje te kiezen!