<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/">
	<channel>
		<title>Top 5 iOS Libraries Every iOS Developer Should Know About | Infinum</title>
		<atom:link href="https://infinum.com/blog/top-5-ios-libraries-every-ios-developer-should-know-about/feed/" rel="self" type="application/rss+xml" />
		<link>https://infinum.com/blog/top-5-ios-libraries-every-ios-developer-should-know-about/</link>
		<description>Building digital products</description>
		<lastBuildDate>Fri, 03 Apr 2026 12:58:20 +0000</lastBuildDate>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>

					<item>
				<image>
					<url>8133https://infinum.com/uploads/2015/07/top-5-ios-libraries-every-ios-developer-should-know-about-0.webp</url>
				</image>
				<title>Top 5 iOS Libraries Every iOS Developer Should Know About</title>
				<link>https://infinum.com/blog/top-5-ios-libraries-every-ios-developer-should-know-about/</link>
				<pubDate>Wed, 29 Apr 2015 14:05:00 +0000</pubDate>
				<dc:creator>Vedran Burojevic</dc:creator>
				<guid isPermaLink="false">https://infinum.com/the-capsized-eight/top-5-ios-libraries-every-ios-developer-should-know-about/</guid>
				<description>
					<![CDATA[<p>Using third-party libraries in your iOS projects can save you a lot of time and hassle. Which libraries are worth using, though? Read on and find out!</p>
<p>The post <a href="https://infinum.com/blog/top-5-ios-libraries-every-ios-developer-should-know-about/">Top 5 iOS Libraries Every iOS Developer Should Know About</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</description>
				<content:encoded>
					<![CDATA[<div
	class="wrapper"
	data-id="es-253"
	 data-animation-target='inner-items'>
		
			<div class="wrapper__inner">
			<div class="block-blog-content js-block-blog-content">
	
<div class="block-blog-content-sidebar" data-id="es-92">
	</div>

<div class="block-blog-content-main">
	
<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-95"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-93">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-94'
	>
	You probably know that using third-party libraries in your iOS projects can save you a lot of time and hassle. The question is, which libraries are worth using? Read on and find out!</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-98"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-96">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-97'
	>
	<em>Note: Looking for Swift libraries? Head over to <a href="https://infinum.com/blog/top-10-ios-swift-libraries-every-ios-developer-should-know-about/">Top 10 iOS Swift libraries every iOS developer should know about</a></em></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-101"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-99">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-100'
	>
	Services like <a href="https://github.com/">GitHub</a> or <a href="https://bitbucket.org/">Bitbucket</a> are full of useful third-party libraries that can be easily integrated into your project by using tools like <a href="http://cocoapods.org">CocoaPods</a> and <a href="https://github.com/Carthage/Carthage">Carthage</a>. Here are 5 libraries that we use in every-day development and think every iOS developer should know about.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-104"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-media">
	<div	class="media block-media__media media__border--none media__align--center-center"
	data-id="es-102"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-103">
	<picture class="image__picture block-media__image-picture">
												<img
					src="https://infinum.com/uploads/2015/07/top-5-ios-libraries-every-ios-developer-should-know-about-1.webp"
					class="image__img block-media__image-img"
					alt=""
										height="751"
															width="1024"
										loading="lazy"
					 />
					</picture>

	</figure></div></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-107"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-105">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-106'
	>
	1. <a href="https://github.com/AFNetworking/AFNetworking">AFNetworking</a></h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-110"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-108">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-109'
	>
	When it comes to networking, this library makes every developer’s life a whole lot easier. AFNetworking is a light-weight and fast networking library that uses blocks and GCD (Grand Central Dispatch).</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-113"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-111">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-112'
	>
	It is a great example of how an open-source project should be run, largely thanks to its creator Mattt Thompson, the founder and former writer on <a href="http://nshipster.com/">NSHipster</a>. An amazing community of developers contributes to AFNetworking daily, making it the most popular third-party iOS library.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-116"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-114">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-115'
	>
	To see just how easy it is to use it, check out the code example below:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-119"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-117">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-118'
	>
	GET request</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-121"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-code">
	<pre class="phiki language-c github-light" data-language="c" style="background-color: #fff;color: #24292e;"><code><span class="line"><span class="token">AFHTTPRequestOperationManager </span><span class="token" style="color: #d73a49;">*</span><span class="token">manager </span><span class="token" style="color: #d73a49;">=</span><span class="token"> </span><span class="token">[</span><span class="token">AFHTTPRequestOperationManager manager</span><span class="token">]</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">[</span><span class="token">manager GET:@</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">http://example.com/resources.json</span><span class="token" style="color: #032f62;">&quot;</span><span class="token"> parameters:nil success:</span><span class="token" style="color: #d73a49;">^</span><span class="token">(</span><span class="token">AFHTTPRequestOperation </span><span class="token" style="color: #d73a49;">*</span><span class="token">operation</span><span class="token">,</span><span class="token"> id responseObject</span><span class="token">)</span><span class="token"> </span><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #6f42c1;">NSLog</span><span class="token">(</span><span class="token">@</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">JSON: </span><span class="token" style="color: #b31d28;font-style: italic;">%</span><span class="token" style="color: #032f62;">@</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">,</span><span class="token"> responseObject</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">}</span><span class="token"> failure:</span><span class="token" style="color: #d73a49;">^</span><span class="token">(</span><span class="token">AFHTTPRequestOperation </span><span class="token" style="color: #d73a49;">*</span><span class="token">operation</span><span class="token">,</span><span class="token"> NSError </span><span class="token" style="color: #d73a49;">*</span><span class="token">error</span><span class="token">)</span><span class="token"> </span><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #6f42c1;">NSLog</span><span class="token">(</span><span class="token">@</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">Error: </span><span class="token" style="color: #b31d28;font-style: italic;">%</span><span class="token" style="color: #032f62;">@</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">,</span><span class="token"> error</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">}</span><span class="token">]</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span></code></pre></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-124"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-122">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-123'
	>
	POST request</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-126"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-code">
	<pre class="phiki language-c github-light" data-language="c" style="background-color: #fff;color: #24292e;"><code><span class="line"><span class="token">AFHTTPRequestOperationManager </span><span class="token" style="color: #d73a49;">*</span><span class="token">manager </span><span class="token" style="color: #d73a49;">=</span><span class="token"> </span><span class="token">[</span><span class="token">AFHTTPRequestOperationManager manager</span><span class="token">]</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">NSDictionary </span><span class="token" style="color: #d73a49;">*</span><span class="token">parameters </span><span class="token" style="color: #d73a49;">=</span><span class="token"> @</span><span class="token">{</span><span class="token">@</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">foo</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">: @</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">bar</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">}</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">[</span><span class="token">manager POST:@</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">http://example.com/resources.json</span><span class="token" style="color: #032f62;">&quot;</span><span class="token"> parameters:parameters success:</span><span class="token" style="color: #d73a49;">^</span><span class="token">(</span><span class="token">AFHTTPRequestOperation </span><span class="token" style="color: #d73a49;">*</span><span class="token">operation</span><span class="token">,</span><span class="token"> id responseObject</span><span class="token">)</span><span class="token"> </span><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #6f42c1;">NSLog</span><span class="token">(</span><span class="token">@</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">JSON: </span><span class="token" style="color: #b31d28;font-style: italic;">%</span><span class="token" style="color: #032f62;">@</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">,</span><span class="token"> responseObject</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">}</span><span class="token"> failure:</span><span class="token" style="color: #d73a49;">^</span><span class="token">(</span><span class="token">AFHTTPRequestOperation </span><span class="token" style="color: #d73a49;">*</span><span class="token">operation</span><span class="token">,</span><span class="token"> NSError </span><span class="token" style="color: #d73a49;">*</span><span class="token">error</span><span class="token">)</span><span class="token"> </span><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #6f42c1;">NSLog</span><span class="token">(</span><span class="token">@</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">Error: </span><span class="token" style="color: #b31d28;font-style: italic;">%</span><span class="token" style="color: #032f62;">@</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">,</span><span class="token"> error</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">}</span><span class="token">]</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span></code></pre></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-129"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-127">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-128'
	>
	Swift alternative</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-132"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-130">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-131'
	>
	<strong><a href="https://github.com/Alamofire/Alamofire">Alamofire</a></strong> – also made by Mattt</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-135"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-133">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-134'
	>
	2. <a href="https://github.com/icanzilb/JSONModel">JSONModel</a></h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-138"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-136">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-137'
	>
	If you are working on an app that requires communication with a remote server, chances are you’ll get a JSON response. This is where JSONModel comes to the rescue.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-141"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-139">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-140'
	>
	JSONModel is an open-source library that helps you with parsing and initializing your model classes with JSON response from the server. When it comes to applications with a more complex data model, JSONModel proves to be a real time-saver.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-144"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-142">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-143'
	>
	Initializing model from JSON response</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-146"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-code">
	<pre class="phiki language-c github-light" data-language="c" style="background-color: #fff;color: #24292e;"><code><span class="line"><span class="token">JSONModelError </span><span class="token" style="color: #d73a49;">*</span><span class="token">jsonModelError </span><span class="token" style="color: #d73a49;">=</span><span class="token"> nil</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">PersonModel </span><span class="token" style="color: #d73a49;">*</span><span class="token">personModel </span><span class="token" style="color: #d73a49;">=</span><span class="token"> </span><span class="token">[</span><span class="token">[</span><span class="token">PersonModel alloc</span><span class="token">]</span><span class="token"> initWithDictionary:personDictionary error:</span><span class="token" style="color: #d73a49;">&amp;</span><span class="token">jsonModelError</span><span class="token">]</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span></code></pre></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-149"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-147">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-148'
	>
	Swift alternative</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-152"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-150">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-151'
	>
	<strong><a href="https://github.com/Hearst-DD/ObjectMapper">ObjectMapper</a></strong> – this framework written in Swift simplifies the conversion of Model objects (Classes and Structs) to JSON and vice versa</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-155"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-153">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-154'
	>
	3. <a href="https://github.com/magicalpanda/MagicalRecord">MagicalRecord</a></h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-158"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-156">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-157'
	>
	The Core Data API is used by iOS developers to persist and query user data. While powerful, using its API can also be quite time-consuming and contain a lot of boilerplate code.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-161"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-159">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-160'
	>
	Luckily, you can help yourself by using a library called MagicalRecord, a wrapper around Core Data that simplifies managing your persistence storage. It was inspired by the ease of Ruby on Rails’ Active Record fetching and it allows you to:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-164"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="lists" data-id="es-162">
	<ul	class='typography typography--size-16-text-roman js-typography lists__typography'
	data-id='es-163'
	>
	<li>Clean up your Core Data related code</li><li>Use simple, one-line fetches</li><li>Modify the NSFetchRequest when request optimizations are needed</li></ul></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-167"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-165">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-166'
	>
	Let’s see how we can put MagicalRecord to use:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-170"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-168">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-169'
	>
	Create an object</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-172"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-code">
	<pre class="phiki language-c github-light" data-language="c" style="background-color: #fff;color: #24292e;"><code><span class="line"><span class="token">Person </span><span class="token" style="color: #d73a49;">*</span><span class="token">person </span><span class="token" style="color: #d73a49;">=</span><span class="token"> </span><span class="token">[</span><span class="token">Person MR_createEntity</span><span class="token">]</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">person.name </span><span class="token" style="color: #d73a49;">=</span><span class="token"> @“Vedran”</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">person.age </span><span class="token" style="color: #d73a49;">=</span><span class="token"> @</span><span class="token" style="color: #005cc5;">23</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span></code></pre></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-175"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-173">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-174'
	>
	Retrieve all records for the NSManagedObject subclasses</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-177"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-code">
	<pre class="phiki language-c github-light" data-language="c" style="background-color: #fff;color: #24292e;"><code><span class="line"><span class="token">NSArray </span><span class="token" style="color: #d73a49;">*</span><span class="token">people </span><span class="token" style="color: #d73a49;">=</span><span class="token"> </span><span class="token">[</span><span class="token">Person MR_findAll</span><span class="token">]</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span></code></pre></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-180"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-178">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-179'
	>
	Updating an entity</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-182"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-code">
	<pre class="phiki language-c github-light" data-language="c" style="background-color: #fff;color: #24292e;"><code><span class="line"><span class="token">person.age </span><span class="token" style="color: #d73a49;">=</span><span class="token"> @</span><span class="token" style="color: #005cc5;">28</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span></code></pre></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-185"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-183">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-184'
	>
	Delete single record</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-187"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-code">
	<pre class="phiki language-c github-light" data-language="c" style="background-color: #fff;color: #24292e;"><code><span class="line"><span class="token">[</span><span class="token">person MR_deleteEntity</span><span class="token">]</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span></code></pre></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-190"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-188">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-189'
	>
	Swift alternative</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-193"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-191">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-192'
	>
	<strong><a href="https://github.com/SugarRecord/SugarRecord">SugarRecord</a></strong> – a data management library designed to make working with CoreData and Realm simpler</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-196"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-194">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-195'
	>
	4. <a href="https://github.com/rs/SDWebImage">SDWebImage</a></h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-199"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-197">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-198'
	>
	AFNetworking has a great category to load images from the web (UIImageView+AFNetworking), but there’s a library even more suited to this task.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-202"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-200">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-201'
	>
	SDWebImage specializes in image downloading and caching, and offers an extensive list of features:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-205"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="lists" data-id="es-203">
	<ul	class='typography typography--size-16-text-roman js-typography lists__typography'
	data-id='es-204'
	>
	<li>A UIImageView category adding web image and cache management to the Cocoa Touch framework</li><li>An asynchronous image downloader</li><li>An asynchronous memory + disk image caching with automatic cache expiration handling</li><li>Animated GIF support</li><li>Background image decompression</li><li>Guarantees that the same URL won&#8217;t be downloaded several times</li><li>Guarantees that bogus URLs won&#8217;t be retried again and again</li><li>Guarantees that the main thread will never be blocked</li></ul></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-208"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-206">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-207'
	>
	Here is a basic example of usage:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-211"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-209">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-210'
	>
	Load remote image using blocks</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-213"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-code">
	<pre class="phiki language-c github-light" data-language="c" style="background-color: #fff;color: #24292e;"><code><span class="line"><span class="token">[</span><span class="token" style="color: #24292e;">cell</span><span class="token">.</span><span class="token" style="color: #24292e;">imageView</span><span class="token"> setImageWithURL:</span><span class="token">[</span><span class="token">NSURL URLWithString:@</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">http://www.domain.com/path/to/image.jpg</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">]</span><span class="token">
</span></span><span class="line"><span class="token">                placeholderImage:</span><span class="token">[</span><span class="token">UIImage imageNamed:@</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">placeholder.png</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">]</span><span class="token">
</span></span><span class="line"><span class="token">                       completed:</span><span class="token" style="color: #d73a49;">^</span><span class="token">(</span><span class="token">UIImage </span><span class="token" style="color: #d73a49;">*</span><span class="token">image</span><span class="token">,</span><span class="token"> NSError </span><span class="token" style="color: #d73a49;">*</span><span class="token">error</span><span class="token">,</span><span class="token"> SDImageCacheType cacheType</span><span class="token">)</span><span class="token"> </span><span class="token">{</span><span class="token">… completion code here …</span><span class="token">}</span><span class="token">]</span><span class="token">;</span><span class="token">
</span></span></code></pre></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-216"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-214">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-215'
	>
	Swift alternative</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-219"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-217">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-218'
	>
	<strong><a href="https://github.com/onevcat/Kingfisher">Kingfisher</a></strong> – lightweight and pure Swift implemented library for downloading and caching images from the web</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-222"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-220">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-221'
	>
	5. <a href="https://github.com/ReactiveCocoa/ReactiveCocoa">ReactiveCocoa</a></h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-225"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-223">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-224'
	>
	Objective-C framework inspired by functional programming. It provides methods to compose and transform streams of values. It functions by using signals (RACSignal) that capture present and future values. You can observe and update values by chaining, combining and reacting to signals.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-228"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-226">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-227'
	>
	A major advantage of ReactiveCocoa is that it provides a way to deal with asynchronous behaviors, including delegate methods, callback blocks, target-action mechanisms, notifications and KVO, simply by using signals.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-231"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-229">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-230'
	>
	Basic usage</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-234"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-232">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-233'
	>
	Check if the email length is greater than 0, password length greater than 8, and enable the login button if both requirements are met.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-236"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-code">
	<pre class="phiki language-c github-light" data-language="c" style="background-color: #fff;color: #24292e;"><code><span class="line"><span class="token">RACSignal </span><span class="token" style="color: #d73a49;">*</span><span class="token">formValid </span><span class="token" style="color: #d73a49;">=</span><span class="token"> </span><span class="token">[</span><span class="token">RACSignal
</span></span><span class="line"><span class="token">                            combineLatest:@</span><span class="token">[</span><span class="token">
</span></span><span class="line"><span class="token">                                            </span><span class="token" style="color: #24292e;">self</span><span class="token">.</span><span class="token" style="color: #24292e;">emailField</span><span class="token">.</span><span class="token" style="color: #24292e;">rac_textSignal</span><span class="token">,</span><span class="token">
</span></span><span class="line"><span class="token">                                            </span><span class="token" style="color: #24292e;">self</span><span class="token">.</span><span class="token" style="color: #24292e;">passwordField</span><span class="token">.</span><span class="token" style="color: #24292e;">rac_textSignal</span><span class="token">
</span></span><span class="line"><span class="token">                                            </span><span class="token">]</span><span class="token">
</span></span><span class="line"><span class="token">                            reduce:</span><span class="token" style="color: #d73a49;">^</span><span class="token">(</span><span class="token">NSString </span><span class="token" style="color: #d73a49;">*</span><span class="token">email</span><span class="token">,</span><span class="token"> NSString </span><span class="token" style="color: #d73a49;">*</span><span class="token">password</span><span class="token">)</span><span class="token"> </span><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">                                </span><span class="token" style="color: #d73a49;">return</span><span class="token"> @</span><span class="token">(</span><span class="token">[</span><span class="token">email length</span><span class="token">]</span><span class="token"> </span><span class="token" style="color: #d73a49;">&gt;</span><span class="token"> </span><span class="token">0</span><span class="token"> </span><span class="token" style="color: #d73a49;">&amp;&amp;</span><span class="token"> </span><span class="token">[</span><span class="token">password length</span><span class="token">]</span><span class="token"> </span><span class="token" style="color: #d73a49;">&gt;</span><span class="token"> </span><span class="token" style="color: #005cc5;">8</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">                            </span><span class="token">}</span><span class="token">]</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #6f42c1;">RAC</span><span class="token">(</span><span class="token">self.loginButton.enabled</span><span class="token">)</span><span class="token"> </span><span class="token" style="color: #d73a49;">=</span><span class="token"> formValid</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span></code></pre></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-239"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-237">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-238'
	>
	ReactiveCocoa has grown to be quite a big piece of library, and I recommend that you check its GitHub page to see everything it can do.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-242"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-240">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-241'
	>
	Swift alternative</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-245"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-243">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-244'
	>
	<strong>ReactiveCocoa v3.0</strong> will contain a brand new Swift API. You can learn more in this great <a href="http://blog.scottlogic.com/2015/04/24/first-look-reactive-cocoa-3.html">blog post</a> written by Scott Logic.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-248"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-246">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-247'
	>
	Honorable mentions</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-251"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="lists" data-id="es-249">
	<ul	class='typography typography--size-16-text-roman js-typography lists__typography'
	data-id='es-250'
	>
	<li><a href="https://github.com/TransitApp/SVProgressHUD" target="_blank" rel="noreferrer noopener">SVProgressHUD</a> &#8211; Clean and easy-to-use HUD intended for displaying the progress of an ongoing task</li><li><a href="https://github.com/zwaldowski/BlocksKit" target="_blank" rel="noreferrer noopener">BlocksKit</a> &#8211; Objective-C framework which facilitates the use of blocks for many iOS native classes such as UIAlertView, UIWebView, UIActionSheet, NSArray, etc.</li><li><a href="https://github.com/facebook/pop" target="_blank" rel="noreferrer noopener">pop</a> &#8211; An extensible animation engine for iOS and OS X</li><li><a href="https://github.com/mattt/FormatterKit" target="_blank" rel="noreferrer noopener">FormatterKit</a> &#8211; Collection of well-crafted NSFormatter subclasses for things like units of information, distance and relative time intervals</li><li><a href="https://github.com/Masonry/Masonry" target="_blank" rel="noreferrer noopener">Masonry</a> &#8211; Light-weight layout framework which wraps AutoLayout with a nicer syntax</li><li><a href="https://github.com/xmartlabs/XLForm" target="_blank" rel="noreferrer noopener">XLForm</a> &#8211; The most flexible and powerful iOS library to create dynamic table-view forms</li><li><a href="https://github.com/i-dama/IDAlertController" target="_blank" rel="noreferrer noopener">IDAlertController</a> &#8211; iOS7-safe UIAlertController</li><li><a href="https://github.com/infinum/FBAnnotationClustering" target="_blank" rel="noreferrer noopener">FBAnnotationClustering</a> &#8211; An iOS library for fast and easy clustering of map notifications (here&#8217;s a nice <a href="https://infinum.com/blog/a-blazingly-fast-open-source-algorithm-for-poi-clustering-on-ios/" target="_blank" rel="noreferrer noopener">blog post</a> about it)</li></ul></div>	</div>
</div>
</div>		</div>
	</div><p>The post <a href="https://infinum.com/blog/top-5-ios-libraries-every-ios-developer-should-know-about/">Top 5 iOS Libraries Every iOS Developer Should Know About</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</content:encoded>
			</item>
		
	</channel>
</rss>