<?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>Author at Infinum</title>
		<atom:link href="https://infinum.com/blog/author/vedran-burojevic/feed/" rel="self" type="application/rss+xml" />
		<link></link>
		<description>Building digital products</description>
		<lastBuildDate>Fri, 17 Apr 2026 13:59:15 +0000</lastBuildDate>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>

					<item>
				<image>
					<url>8083https://infinum.com/uploads/2017/10/how-to-prepare-mobile-app-new-iPhone-x-0.webp</url>
				</image>
				<title>How to Prepare Your Mobile App for the New iPhone X</title>
				<link>https://infinum.com/blog/how-to-prepare-mobile-app-new-iphone-x/</link>
				<pubDate>Thu, 05 Oct 2017 13:45:00 +0000</pubDate>
				<dc:creator>Vedran Burojevic</dc:creator>
				<guid isPermaLink="false">https://infinum.com/the-capsized-eight/how-to-prepare-mobile-app-new-iphone-x/</guid>
				<description>
					<![CDATA[<p>iPhone X starts shipping in early November, so it’s time to roll up your sleeves. Apps that aren’t adjusted will run in compatibility mode.</p>
<p>The post <a href="https://infinum.com/blog/how-to-prepare-mobile-app-new-iphone-x/">How to Prepare Your Mobile App for the New iPhone X</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</description>
				<content:encoded>
					<![CDATA[<div
	class="wrapper"
	data-id="es-217"
	 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'
	>
	Apple revealed the <a href="https://www.apple.com/iphone-x/">new iPhone X</a> on their last September event, which comes with a bold new design. The device is no longer rectangular. Instead, it features rounded corners, edge-to-edge display, and a notch on top of the screen which holds the TrueDepth camera system for the new Face ID. It also lacks the iconic home button, which is now replaced by a virtual home indicator.</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'
	>
	The question is how will current apps behave on the new iPhone X, and how can you adjust your apps for it?</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-media">
	<div	class="media block-media__media media__border--none media__align--center-center"
	data-id="es-99"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-100">
	<picture class="image__picture block-media__image-picture">
								
			<source
				srcset=https://infinum.com/uploads/2017/10/how-to-prepare-mobile-app-new-iPhone-x-1-1400x841.webp				media='(max-width: 699px)'
				type=image/webp								height="841"
												width="1400"
				 />
												<img
					src="https://infinum.com/uploads/2017/10/how-to-prepare-mobile-app-new-iPhone-x-1.webp"
					class="image__img block-media__image-img"
					alt=""
										height="847"
															width="1410"
										loading="lazy"
					 />
					</picture>

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

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-104"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-102">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-103'
	>
	iPhone X starts shipping early November, so it’s time to roll up your sleeves and get your hands dirty. Apps that aren’t adjusted for the new iPhone X will run in compatibility mode, letterboxed with slightly rounded corners.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-107"
	 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-105"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-106">
	<picture class="image__picture block-media__image-picture">
												<img
					src="https://infinum.com/uploads/2017/10/how-to-prepare-mobile-app-new-iPhone-x-2.webp"
					class="image__img block-media__image-img"
					alt=""
										height="800"
															width="1400"
										loading="lazy"
					 />
					</picture>

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

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-110"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-108">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-109'
	>
	Getting started</h2></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'
	>
	You’ll, of course, need to use Xcode 9 and build your app with iOS 11 SDK. It’s possible that you still use launch images instead of launch storyboard, so you’ll need to migrate to launch storyboard or add one for new iPhone X dimensions. Otherwise, iPhone X will still run the app in letterboxed mode. I recommend using the storyboard approach since you won’t have to worry about future device sizes.</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-heading" data-id="es-114">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-115'
	>
	Auto Layout</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-119"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-117">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-118'
	>
	If you use Auto Layout correctly, chances are your app will be in a pretty good shape with a smaller amount of work. A problem arises if your app has a lot of custom controls (especially in the bottom portion of the screen, since it’s covered now by the virtual indicator), or if you calculate layout manually.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-122"
	 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-120"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-121">
	<picture class="image__picture block-media__image-picture">
												<img
					src="https://infinum.com/uploads/2017/10/how-to-prepare-mobile-app-new-iPhone-x-3.webp"
					class="image__img block-media__image-img"
					alt=""
										height="552"
															width="1400"
										loading="lazy"
					 />
					</picture>

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

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-125"
	 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-123"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-124">
	<picture class="image__picture block-media__image-picture">
												<img
					src="https://infinum.com/uploads/2017/10/how-to-prepare-mobile-app-new-iPhone-x-4.webp"
					class="image__img block-media__image-img"
					alt=""
										height="552"
															width="1400"
										loading="lazy"
					 />
					</picture>

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

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-128"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-126">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-127'
	>
	Safe Area</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-131"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-129">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-130'
	>
	Safe area helps you place your views within the always visible portion of the screen. It’s guaranteed not to be covered by navigation bars, tab bars, toolbars, and other ancestors that can be a part of a view controller’s view.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-134"
	 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-132"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-133">
	<picture class="image__picture block-media__image-picture">
												<img
					src="https://infinum.com/uploads/2017/10/how-to-prepare-mobile-app-new-iPhone-x-5.webp"
					class="image__img block-media__image-img"
					alt=""
										height="800"
															width="1400"
										loading="lazy"
					 />
					</picture>

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

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-137"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-135">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-136'
	>
	Safe Area Layout Guides</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-140"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-138">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-139'
	>
	Safe Area Layout guides are the building blocks when it comes to adjusting your app for the new iPhone X. Apple introduced topLayoutGuide and bottomLayoutGuide in iOS 7 SDK which allowed you to constrain your views to the status bar, navigation bar or tab bar. Now in iOS 11 SDK and Xcode 9, you should use new Safe Area Layout Guides instead. You can also access them through code via <code>safeAreaLayoutGuide</code> property on your view.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-143"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-141">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-142'
	>
	The important thing to know is that <strong>safe area layout guides are backward compatible up to iOS 9</strong>. This means you should drop the support for iOS 8 if you want to adjust your app nicely for iPhone X.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-146"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-144">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-145'
	>
	Another important thing to keep in mind is that you can add safe areas to multiple views in your hierarchy. This is useful when you need to constrain some view to edges of the screen, but it’s subviews elements to safe area layout guides.</p></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'
	>
	Migrating Storyboards and Xibs</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'
	>
	When you open a xib or storyboard in Xcode 9, there is an option to use Safe Area Layout Guides. Once selected, top and bottom layout guides, as well as leading and trailing edges will automatically be replaced with safe area layout guides. You should take some time to go through your xibs and storyboards, and adjust every one of them. Don’t forget to perform a smoke test after each adjusted screen, to see if everything looks good.</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-media">
	<div	class="media block-media__media media__border--none media__align--center-center"
	data-id="es-153"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-154">
	<picture class="image__picture block-media__image-picture">
												<img
					src="https://infinum.com/uploads/2017/10/how-to-prepare-mobile-app-new-iPhone-x-6.webp"
					class="image__img block-media__image-img"
					alt=""
										height="135"
															width="256"
										loading="lazy"
					 />
					</picture>

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

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-158"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-156">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-157'
	>
	Native components</h2></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'
	>
	If your app uses native components such as UITableView, UINavigationBar or UITabBar, their layout will automatically be adjusted for the iPhone X so you have one less thing to worry about.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-164"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-162">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-163'
	>
	Table view</h3></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'
	>
	Table views still cover screen edge-to-edge, and the virtual home indicator is placed above it (and it passes taps to table view). However, cells are constrained to safe area layout guides. This means that in a landscape, for example, cell content will be constrained to the area where rounded corners begin. There’s a new property <code>insetsContentViewsToSafeArea</code> to modify this behaviour.</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'
	>
	Search bar</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-173"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-171">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-172'
	>
	In iOS 11, the search bar is now included in the navigation bar to best use the area where the search bar is usually displayed.<br>The following snippet shows how should you present search bar now, and how was it done before.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-175"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-code">
	<pre class="phiki language-swift github-light" data-language="swift" style="background-color: #fff;color: #24292e;"><code><span class="line"><span class="token" style="color: #d73a49;">let</span><span class="token"> searchController </span><span class="token" style="color: #d73a49;">=</span><span class="token"> </span><span class="token">UISearchController(</span><span class="token">searchResultsController:</span><span class="token"> </span><span class="token" style="color: #005cc5;">nil</span><span class="token">)</span><span class="token">
</span></span><span class="line"><span class="token" style="color: #005cc5;">self</span><span class="token">.</span><span class="token">navigationItem</span><span class="token">.</span><span class="token">searchController</span><span class="token"> </span><span class="token" style="color: #d73a49;">=</span><span class="token"> searchController
</span></span><span class="line"><span class="token">searchController.</span><span class="token">isActive</span><span class="token"> </span><span class="token" style="color: #d73a49;">=</span><span class="token"> </span><span class="token" style="color: #005cc5;">true</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-178"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-176">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-177'
	>
	General tips</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-181"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-179">
	<h4	class='typography typography--size-24-text js-typography block-heading__heading'
	data-id='es-180'
	>
	Bottom controls</h4></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-184"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-182">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-183'
	>
	Don’t place controls at the bottom of the screen. If your app uses custom bottom UI controls, they should be constrained to bottom safe area layout guide, while their superviews can be constrained to the edge of the screen.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-187"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-185">
	<h4	class='typography typography--size-24-text js-typography block-heading__heading'
	data-id='es-186'
	>
	Swipe Up Gestures</h4></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-190"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-188">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-189'
	>
	You shouldn’t use swipe up gestures from the bottom of the screen, this area is now reserved for the virtual home button indicator. You can give your gesture priority, but this is not recommended according to Apple’s guidelines.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-193"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-191">
	<h4	class='typography typography--size-24-text js-typography block-heading__heading'
	data-id='es-192'
	>
	Virtual home indicator</h4></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-196"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-194">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-195'
	>
	You can modify the home indicator behavior to autohide if the user doesn’t touch the screen for some time, but you should only do it in specific cases such as viewing photos or videos in full-screen. When a user taps the screen again virtual home indicator will reappear.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-198"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-code">
	<pre class="phiki language-swift github-light" data-language="swift" style="background-color: #fff;color: #24292e;"><code><span class="line"><span class="token" style="color: #d73a49;">override</span><span class="token"> </span><span class="token">func prefersHomeIndicatorAutoHidden</span><span class="token">(</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;">Bool</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" style="color: #005cc5;">true</span><span class="token">
</span></span><span class="line"><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-201"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-199">
	<h4	class='typography typography--size-24-text js-typography block-heading__heading'
	data-id='es-200'
	>
	Larger navigation bars</h4></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-204"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-202">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-203'
	>
	Navigation bar got an update as well in iOS 11. They can now be way taller with larger title fonts. This behavior is disabled by default, but you can enable it if needed.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-206"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-code">
	<pre class="phiki language-swift github-light" data-language="swift" style="background-color: #fff;color: #24292e;"><code><span class="line"><span class="token">navigationItem.</span><span class="token">largeTitleDisplayMode</span><span class="token"> </span><span class="token" style="color: #d73a49;">=</span><span class="token"> .</span><span class="token">automatic</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-209"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-207">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-208'
	>
	I hope this post helps you in adjusting your app for the new iPhone X!<br>If you found something interesting while adjusting your app, feel free to share it in the comments below!</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-212"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-210">
	<h4	class='typography typography--size-24-text js-typography block-heading__heading'
	data-id='es-211'
	>
	More info</h4></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-215"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="lists" data-id="es-213">
	<ul	class='typography typography--size-16-text-roman js-typography lists__typography'
	data-id='es-214'
	>
	<li><a href="https://developer.apple.com/documentation/uikit/uiview/positioning_content_relative_to_the_safe_area">Positioning Content Relative to the Safe Area</a></li><li><a href="https://developer.apple.com/videos/play/fall2017/201/">Building Apps for iPhone X</a></li><li><a href="https://developer.apple.com/videos/play/fall2017/201/">Designing for iPhone X</a></li><li><a href="https://developer.apple.com/design/human-interface-guidelines">Human Interface Guidelines – iPhone X</a></li><li><a href="https://developer.apple.com/ios/update-apps-for-iphone-x/">Update your apps for iPhone X</a></li></ul></div>	</div>
</div>
</div>		</div>
	</div><p>The post <a href="https://infinum.com/blog/how-to-prepare-mobile-app-new-iphone-x/">How to Prepare Your Mobile App for the New iPhone X</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</content:encoded>
			</item>
					<item>
				<image>
					<url>7841https://infinum.com/uploads/2017/02/becoming-an-ios-developer-swiftly-0.webp</url>
				</image>
				<title>Becoming an iOS Developer Swiftly</title>
				<link>https://infinum.com/blog/becoming-an-ios-developer-swiftly/</link>
				<pubDate>Wed, 23 Nov 2016 17:05:00 +0000</pubDate>
				<dc:creator>Vedran Burojevic</dc:creator>
				<guid isPermaLink="false">https://infinum.com/the-capsized-eight/becoming-an-ios-developer-swiftly/</guid>
				<description>
					<![CDATA[<p>So you want to learn the programming language everyone&#8217;s talking about, but don&#8217;t know where to look? We&#8217;ll give you a few pointers to kick-start you on your way to becoming <strong>a great Swift developer</strong>!</p>
<p>The post <a href="https://infinum.com/blog/becoming-an-ios-developer-swiftly/">Becoming an iOS Developer Swiftly</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</description>
				<content:encoded>
					<![CDATA[<div
	class="wrapper"
	data-id="es-337"
	 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-218">
	</div>

<div class="block-blog-content-main">
	
<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-221"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-219">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-220'
	>
	So you want to learn the programming language everyone’s talking about, but don’t know where to look? We’ll give you a few pointers to kick-start you on your way to becoming <strong>a great Swift developer</strong>!</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-224"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-222">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-223'
	>
	It doesn’t matter whether you’re already an experienced Objective-C developer or completely new to iOS development, you’ll still run into trouble choosing the right learning resources. There are already a lot of them available for learning Swift. To save you time, we’re here to recommend a few good ones!</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-227"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-225">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-226'
	>
	Why start with Swift?</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-230"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-228">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-229'
	>
	If you’re just starting out with iOS development, you’re probably wondering whether to go with Objective-C and then move to Swift or skip Objective-C altogether.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-233"
	 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-231"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-232">
	<picture class="image__picture block-media__image-picture">
												<img
					src="https://infinum.com/uploads/2017/02/becoming-an-ios-developer-swiftly-1.webp"
					class="image__img block-media__image-img"
					alt=""
										height="533"
															width="1000"
										loading="lazy"
					 />
					</picture>

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

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-236"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-234">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-235'
	>
	Objective-C is <strong>33 years old</strong>, and it served us well so far (and still does). On the other hand, Swift has been around for only <strong>2 years</strong>, but it’s steadily gaining momentum. Without a doubt, Apple will keep supporting Objective-C for some time, as most of Apple’s apps are still written in it. Nevertheless, it’s clear Apple is putting its money on Swift. It’s the future of both iOS and macOS, and <strong>Swift 3</strong> was just released with a lot of improvements!</p></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'
	>
	Swift is a brand new programming language for iOS, macOS, watchOS and tvOS. It has the best of C and Objective-C languages, but adds a lot of new modern features like flow control, data structures, and functions, with high-level constructs like objects, protocols, closures, and generics. It also brings type safety to help developers write less error-prone code.</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-paragraph" data-id="es-240">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-241'
	>
	If you are just starting out with iOS development, it makes sense to start with Swift. <strong>The iOS community moved away from Objective-C</strong>, and every new blog post, video tutorial, code example, and framework is referencing Swift. It’s a clear sign Swift is now mature and ready to be used in production.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-245"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-243">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-244'
	>
	First steps</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-248"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-246">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-247'
	>
	I wrote an article on how to <a href="https://infinum.com/blog/becoming-an-ios-developer/">become an iOS developer</a>, so if you’re completely new to this, you could head out and read that one first. Since Swift didn’t exist then, it was written with Objective-C in mind. Nonetheless, it contains all the information you need to start with iOS development.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-251"
	 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-249"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-250">
	<picture class="image__picture block-media__image-picture">
												<img
					src="https://infinum.com/uploads/2017/02/becoming-an-ios-developer-swiftly-2.webp"
					class="image__img block-media__image-img"
					alt=""
										height="533"
															width="1000"
										loading="lazy"
					 />
					</picture>

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

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-254"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-252">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-253'
	>
	Resources</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-257"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-255">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-256'
	>
	Books</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-260"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-258">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-259'
	>
	There are quite a few books already available for Swift. The ones that stood out for me come from the <strong>Big Nerd Ranch</strong>. Their books are beginner-friendly, so you’ll have no trouble starting out. At the time of writing this article new Big Nerd Ranch books updated for Swift 3 and iOS 10 SDK are only available for preorder.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-263"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-261">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-262'
	>
	To learn the language, I recommend <a href="http://www.informit.com/store/swift-programming-the-big-nerd-ranch-guide-9780134610610">Swift Programming: The Big Nerd Ranch Guide</a>, which will help you learn basic Swift features and even some advanced concepts. It will also give you a taste of the iOS SDK. By the end, you’ll even be able to write a simple app.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-266"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-264">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-265'
	>
	When you feel comfortable with Swift, it’s time to move on! The next step is <strong>iOS SDK</strong>, and that means learning the basic usage of Apple’s framework for creating iOS apps. You can learn by reading <a href="http://www.informit.com/store/ios-programming-the-big-nerd-ranch-guide-9780134682334">iOS Programming: The Big Nerd Ranch Guide</a>, in which they cover everything from creating an actual Xcode project to controlling animations and persisting data with the Core Data framework.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-269"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-267">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-268'
	>
	Also, there’s an <strong>official book by Apple</strong>, <a href="https://itunes.apple.com/us/book/swift-programming-language/id881256329?mt=11">The Swift Programming Language</a>, which offers an in-depth tour of the language and its features. I’d strongly recommend going through it!</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-272"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-270">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-271'
	>
	If you’ve read all of the above and want to explore more, <a href="https://www.objc.io/books/advanced-swift">Advanced Swift</a> is the book for you. You can examine some high-level (like programming with generics and protocols), as well as low-level topics (for example, wrapping a C library and string internals).</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-275"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-273">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-274'
	>
	Videos</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-278"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-276">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-277'
	>
	Not into books? That’s alright, we feel you. Luckily, <strong>Stanford University</strong> has a fantastic course called Developing iOS 10 Apps with Swift. It’s the most popular video course for iOS development aimed at beginners. If you prefer videos, I strongly recommend starting out with that one!</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-281"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-279">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-280'
	>
	Videos from <a href="https://www.raywenderlich.com/video-tutorials">Ray Wenderlich’s</a> team are also worth checking out. They cover a wide array of topics, including some great Swift courses.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-284"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-282">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-283'
	>
	You could also skim through some sessions by Apple’s engineers. Apple holds a <a href="https://developer.apple.com/wwdc/">WWDC</a> conference each year and has <a href="https://developer.apple.com/videos/wwdc2016/">development-related talks</a> about new SDKs and general tips concerning iOS development. They are usually <strong>advanced-level topics</strong>, so I’d recommend watching them after you feel comfortable with Swift.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-287"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-285">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-286'
	>
	Online courses</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-290"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-288">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-289'
	>
	Some websites like <a href="https://www.codeschool.com/courses/app-evolution-with-swift">Code School</a> give you a chance to learn Swift directly from your web browser. The cool thing is that you don’t have to be on macOS! Their courses cover more common uses of the UIKit framework and how to use it with Swift.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-293"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-291">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-292'
	>
	Another great resource is <a href="https://www.hackingwithswift.com/read">Hacking with Swift</a>, a set of tutorials which lead you from beginner-level topics, to more advanced ones in 39 hands-on projects! It also has an awesome introduction to Swift programming language.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-296"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-294">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-295'
	>
	Blogs</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-299"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-297">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-298'
	>
	The iOS community is constantly evolving. Reading blog posts by other developers is an excellent way to learn new techniques and gain insight into how others solve problems. Quite a few of these blogs are related to Swift, and you could learn heaps from following them.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-302"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-300">
	<h5	class='typography typography--size-20-text js-typography block-heading__heading'
	data-id='es-301'
	>
	Some blogs I’d recommend:</h5></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-305"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="lists" data-id="es-303">
	<ul	class='typography typography--size-16-text-roman js-typography lists__typography'
	data-id='es-304'
	>
	<li><a href="https://www.natashatherobot.com">Natasha The Robot</a></li><li><a href="https://www.ayaka.me/">Ayaka Nonaka</a></li><li><a href="https://thatthinginswift.com">That Thing In Swift</a></li><li><a href="http://bartjacobs.com">Bart Jacobs</a></li><li><a href="https://www.objc.io/issues">Objc.io Issues</a> and their brand new <a href="https://talk.objc.io/">Swift Talks</a></li></ul></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-308"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-306">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-307'
	>
	Newsletters</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-311"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-309">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-310'
	>
	There are also popular iOS weekly newsletters like <a href="https://iosdevweekly.com/">iOS Dev Weekly</a> and our own <a href="https://ioscocoatreats.ongoodbits.com/">iOS Cocoa Treats</a> in which you can find great blog posts, libraries, videos and tools related to iOS and Swift development.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-314"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-312">
	<h4	class='typography typography--size-24-text js-typography block-heading__heading'
	data-id='es-313'
	>
	And more…</h4></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-317"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-315">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-316'
	>
	These two links are the <strong>holy grail of iOS development resources</strong>. They contain tons of resources which you can use to learn Swift and the iOS SDK!</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-320"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="lists" data-id="es-318">
	<ul	class='typography typography--size-16-text-roman js-typography lists__typography'
	data-id='es-319'
	>
	<li><a href="https://github.com/hsavit1/Awesome-Swift-Education">Awesome Swift Education</a></li><li><a href="https://github.com/vsouza/awesome-ios">Awesome iOS</a></li></ul></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-323"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-321">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-322'
	>
	What about Objective-C?</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-326"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-324">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-325'
	>
	It’s still a good idea to learn fundamentals of Objective-C. If you just started out with iOS development, you might think there is no need for it or no time to learn both languages, but it’ll pay off. You should know Objective-C because sooner or later you will stumble upon it. <strong>It’s highly unlikely you’ll only work in Swift during your professional career</strong>. Older projects are written in Objective-C and they have to be maintained. Once you are acquainted with the iOS SDK, it’s much easier to switch from Swift to Objective-C and vice-versa.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-329"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-327">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-328'
	>
	Since Objective-C has been around for quite some time, you can find a lot of answers to your iOS development related problems online. <a href="https://stackoverflow.com">Stack Overflow</a> is always a good starting point.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-332"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-330">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-331'
	>
	What next?</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-335"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-333">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-334'
	>
	Ok, so you wrapped up this article, and now you have everything you need to become the next big name in iOS development.<br>Bookmark this post for future reference, fire up your Xcode and good luck! ?</p></div>	</div>
</div>
</div>		</div>
	</div><p>The post <a href="https://infinum.com/blog/becoming-an-ios-developer-swiftly/">Becoming an iOS Developer Swiftly</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</content:encoded>
			</item>
					<item>
				<image>
					<url>8113https://infinum.com/uploads/2017/02/top-10-ios-swift-libraries-every-ios-developer-should-know-about-0.webp</url>
				</image>
				<title>Top 10 iOS Swift Libraries Every iOS Developer Should Know About</title>
				<link>https://infinum.com/blog/top-10-ios-swift-libraries-every-ios-developer-should-know-about/</link>
				<pubDate>Thu, 10 Dec 2015 10:19:00 +0000</pubDate>
				<dc:creator>Vedran Burojevic</dc:creator>
				<guid isPermaLink="false">https://infinum.com/the-capsized-eight/top-10-ios-swift-libraries-every-ios-developer-should-know-about/</guid>
				<description>
					<![CDATA[<p>To make the transition to Swift easier and save you from writing some components for your app, here are 10 libraries every iOS developer should know about.</p>
<p>The post <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> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</description>
				<content:encoded>
					<![CDATA[<div
	class="wrapper"
	data-id="es-443"
	 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-338">
	</div>

<div class="block-blog-content-main">
	
<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-341"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-339">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-340'
	>
	Swift is gaining popularity each day. If you’re starting a new project, chances are that you’ll decide to write it in Swift. To make the transition easier for you and save you the time you would spend writing certain components for your app, here are 10 libraries that we think every iOS developer should know about!</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-344"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-342">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-343'
	>
	Just like we mentioned in our <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> article, <a href="https://github.com/">GitHub</a> and <a href="https://bitbucket.org/">Bitbucket</a> are great places to find open source iOS libraries. Tools like <a href="http://cocoapods.org">CocoaPods</a> and <a href="https://github.com/Carthage/Carthage">Carthage</a> can help you speed up installing and maintaining libraries you use in your projects, and in that way make project dependency management easy for you.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-347"
	 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-345"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-346">
	<picture class="image__picture block-media__image-picture">
												<img
					src="https://infinum.com/uploads/2017/02/top-10-ios-swift-libraries-every-ios-developer-should-know-about-1.webp"
					class="image__img block-media__image-img"
					alt=""
										height="608"
															width="1000"
										loading="lazy"
					 />
					</picture>

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

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

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-353"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-351">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-352'
	>
	When you want to abstract away and simplify networking in your app, Alamofire is the way to go. Alamofire is a HTTP networking library, built on top of NSURLSession and the Foundation URL Loading System. It nicely wraps networking mechanisms in an elegant and simple Swift interface.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-355"
	 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" style="color: #6a737d;">//</span><span class="token" style="color: #6a737d;"> Making a GET request</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token">Alamofire.</span><span class="token" style="color: #6f42c1;">request</span><span class="token">(</span><span class="token">.GET</span><span class="token">,</span><span class="token"> </span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">https://httpbin.org/get</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">,</span><span class="token"> parameters: </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">         .responseJSON </span><span class="token">{</span><span class="token"> response in
</span></span><span class="line"><span class="token">             </span><span class="token" style="color: #6f42c1;">print</span><span class="token">(</span><span class="token" style="color: #24292e;">response</span><span class="token">.</span><span class="token" style="color: #24292e;">request</span><span class="token">)</span><span class="token" style="color: #6a737d;">  </span><span class="token" style="color: #6a737d;">//</span><span class="token" style="color: #6a737d;"> original URL request
</span></span><span class="line"><span class="token">             </span><span class="token" style="color: #6f42c1;">print</span><span class="token">(</span><span class="token" style="color: #24292e;">response</span><span class="token">.</span><span class="token">response</span><span class="token">)</span><span class="token" style="color: #6a737d;"> </span><span class="token" style="color: #6a737d;">//</span><span class="token" style="color: #6a737d;"> URL response
</span></span><span class="line"><span class="token">             </span><span class="token" style="color: #6f42c1;">print</span><span class="token">(</span><span class="token" style="color: #24292e;">response</span><span class="token">.</span><span class="token" style="color: #24292e;">data</span><span class="token">)</span><span class="token" style="color: #6a737d;">     </span><span class="token" style="color: #6a737d;">//</span><span class="token" style="color: #6a737d;"> server data
</span></span><span class="line"><span class="token">             </span><span class="token" style="color: #6f42c1;">print</span><span class="token">(</span><span class="token" style="color: #24292e;">response</span><span class="token">.</span><span class="token" style="color: #24292e;">result</span><span class="token">)</span><span class="token" style="color: #6a737d;">   </span><span class="token" style="color: #6a737d;">//</span><span class="token" style="color: #6a737d;"> result of response serialization
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token">             </span><span class="token" style="color: #d73a49;">if</span><span class="token"> let JSON </span><span class="token" style="color: #d73a49;">=</span><span class="token"> </span><span class="token" style="color: #24292e;">response</span><span class="token">.</span><span class="token" style="color: #24292e;">result</span><span class="token">.</span><span class="token" style="color: #24292e;">value</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;">print</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;">JSON)</span><span class="token" style="color: #032f62;">&quot;</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><span class="line"><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-358"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-356">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-357'
	>
	2. <a href="https://github.com/SwiftyJSON/SwiftyJSON">SwiftyJSON</a></h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-361"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-359">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-360'
	>
	Explicit types in Swift make sure that we don’t make mistakes in our code and cause bugs because of them. But sometimes it is rather painful to deal with it, especially when working with JSON. Luckily, SwiftyJSON is here to help us deal with JSON data in Swift in a more readable way. Optional unwrapping is handled automatically for you as well!</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-363"
	 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" style="color: #6a737d;">//</span><span class="token" style="color: #6a737d;"> Typical JSON handling</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token" style="color: #d73a49;">if</span><span class="token"> let statusesArray </span><span class="token" style="color: #d73a49;">=</span><span class="token"> try</span><span class="token" style="color: #d73a49;">?</span><span class="token"> </span><span class="token" style="color: #24292e;">NSJSONSerialization</span><span class="token">.</span><span class="token" style="color: #6f42c1;">JSONObjectWithData</span><span class="token">(</span><span class="token">data</span><span class="token">,</span><span class="token"> options: .AllowFragments</span><span class="token">)</span><span class="token"> as</span><span class="token" style="color: #d73a49;">?</span><span class="token"> </span><span class="token">[</span><span class="token">[</span><span class="token">String: AnyObject</span><span class="token">]</span><span class="token">]</span><span class="token">,</span><span class="token">
</span></span><span class="line"><span class="token">    let user </span><span class="token" style="color: #d73a49;">=</span><span class="token"> </span><span class="token" style="color: #e36209;">statusesArray</span><span class="token">[</span><span class="token">0</span><span class="token">]</span><span class="token">[</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">user</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">]</span><span class="token"> as</span><span class="token" style="color: #d73a49;">?</span><span class="token"> </span><span class="token">[</span><span class="token">String: AnyObject</span><span class="token">]</span><span class="token">,</span><span class="token">
</span></span><span class="line"><span class="token">    let username </span><span class="token" style="color: #d73a49;">=</span><span class="token"> </span><span class="token" style="color: #e36209;">user</span><span class="token">[</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">name</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">]</span><span class="token"> as</span><span class="token" style="color: #d73a49;">?</span><span class="token"> String </span><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #6a737d;">//</span><span class="token" style="color: #6a737d;"> Finally we got the username</span><span class="token">
</span></span><span class="line"><span class="token">}</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token" style="color: #6a737d;">//</span><span class="token" style="color: #6a737d;"> With SwiftyJSON</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token">let json </span><span class="token" style="color: #d73a49;">=</span><span class="token"> </span><span class="token" style="color: #6f42c1;">JSON</span><span class="token">(</span><span class="token">data: dataFromNetworking</span><span class="token">)</span><span class="token">
</span></span><span class="line"><span class="token" style="color: #d73a49;">if</span><span class="token"> let userName </span><span class="token" style="color: #d73a49;">=</span><span class="token"> </span><span class="token" style="color: #e36209;">json</span><span class="token">[</span><span class="token">0</span><span class="token">]</span><span class="token">[</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">user</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">]</span><span class="token">[</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">name</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">]</span><span class="token">.</span><span class="token" style="color: #24292e;">string</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: #6a737d;">//</span><span class="token" style="color: #6a737d;">Now you got your value</span><span class="token">
</span></span><span class="line"><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-366"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-364">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-365'
	>
	SwiftyJSON also plays very nice with Alamofire.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-368"
	 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">Alamofire.</span><span class="token" style="color: #6f42c1;">request</span><span class="token">(</span><span class="token">.GET</span><span class="token">,</span><span class="token"> url</span><span class="token">)</span><span class="token">.</span><span class="token" style="color: #6f42c1;">validate</span><span class="token">(</span><span class="token">)</span><span class="token">.responseJSON </span><span class="token">{</span><span class="token"> response in
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #d73a49;">switch</span><span class="token"> </span><span class="token">response.result </span><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #d73a49;">case</span><span class="token"> .Success</span><span class="token">:</span><span class="token">
</span></span><span class="line"><span class="token">        </span><span class="token" style="color: #d73a49;">if</span><span class="token"> let value </span><span class="token" style="color: #d73a49;">=</span><span class="token"> </span><span class="token" style="color: #24292e;">response</span><span class="token">.</span><span class="token" style="color: #24292e;">result</span><span class="token">.</span><span class="token" style="color: #24292e;">value</span><span class="token"> </span><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">          let json </span><span class="token" style="color: #d73a49;">=</span><span class="token"> </span><span class="token" style="color: #6f42c1;">JSON</span><span class="token">(</span><span class="token">value</span><span class="token">)</span><span class="token">
</span></span><span class="line"><span class="token">          </span><span class="token" style="color: #6f42c1;">print</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;">json)</span><span class="token" style="color: #032f62;">&quot;</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><span class="line"><span class="token">    </span><span class="token" style="color: #d73a49;">case</span><span class="token"> .</span><span class="token" style="color: #6f42c1;">Failure</span><span class="token">(</span><span class="token">let 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" style="color: #6f42c1;">print</span><span class="token">(</span><span class="token">error</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><span class="line"><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-371"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-369">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-370'
	>
	3. <a href="https://github.com/Hearst-DD/ObjectMapper">ObjectMapper</a></h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-374"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-372">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-373'
	>
	If you’ve ever written an app which downloads information via an API, you’ve probably spent a lot of time writing a code to map a response to your objects. ObjectMapper helps you convert a JSON response into your model object, and vice versa. In other words, it helps you map JSON to objects, and objects back to JSON. Nested objects are supported as well.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-376"
	 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" style="color: #6a737d;">//</span><span class="token" style="color: #6a737d;"> Temperature class that conforms to Mappable protocol</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token" style="color: #d73a49;">struct</span><span class="token"> Temperature: Mappable </span><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">    var celsius: Double</span><span class="token" style="color: #d73a49;">?</span><span class="token">
</span></span><span class="line"><span class="token">    var fahrenheit</span><span class="token" style="color: #d73a49;">:</span><span class="token"> Double</span><span class="token" style="color: #d73a49;">?</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token">    init</span><span class="token" style="color: #d73a49;">?</span><span class="token">(</span><span class="token">_ map: Map</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">}</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token">    mutating func </span><span class="token" style="color: #6f42c1;">mapping</span><span class="token">(</span><span class="token">map: Map</span><span class="token">)</span><span class="token"> </span><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">        celsius     </span><span class="token" style="color: #d73a49;">&lt;</span><span class="token" style="color: #d73a49;">-</span><span class="token"> </span><span class="token" style="color: #e36209;">map</span><span class="token">[</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">celsius</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">]</span><span class="token">
</span></span><span class="line"><span class="token">        fahrenheit  </span><span class="token" style="color: #d73a49;">&lt;</span><span class="token" style="color: #d73a49;">-</span><span class="token"> </span><span class="token" style="color: #e36209;">map</span><span class="token">[</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">fahrenheit</span><span class="token" style="color: #032f62;">&quot;</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><span class="line"><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-379"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-377">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-378'
	>
	It’s also worth to mention <a href="https://github.com/tristanhimmelman/AlamofireObjectMapper">AlamofireObjectMapper</a>, an Alamofire extension which converts JSON response data into Swift objects when using ObjectMapper.</p></div>	</div>

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

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-385"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-383">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-384'
	>
	Quick is a behavior-driven development framework for Swift, inspired by <a href="https://github.com/rspec/rspec">RSpec</a>, <a href="https://github.com/specta/specta">Specta</a>, and <a href="https://github.com/onsi/ginkgo">Ginkgo</a>. Quick comes with <a href="https://github.com/Quick/Nimble">Nimble</a>, which is a matcher framework for your tests.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-387"
	 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" style="color: #6a737d;">//</span><span class="token" style="color: #6a737d;"> Documentation directory spec</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token">class TableOfContentsSpec: QuickSpec </span><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">  override func </span><span class="token" style="color: #6f42c1;">spec</span><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 class="token" style="color: #6f42c1;">describe</span><span class="token">(</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">the ’Documentation’ directory</span><span class="token" style="color: #032f62;">&quot;</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;">it</span><span class="token">(</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">has everything you need to get started</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">)</span><span class="token"> </span><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">        let sections </span><span class="token" style="color: #d73a49;">=</span><span class="token"> </span><span class="token" style="color: #6f42c1;">Directory</span><span class="token">(</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">Documentation</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">)</span><span class="token">.</span><span class="token" style="color: #24292e;">sections</span><span class="token">
</span></span><span class="line"><span class="token">        </span><span class="token" style="color: #6f42c1;">expect</span><span class="token">(</span><span class="token">sections</span><span class="token">)</span><span class="token">.</span><span class="token" style="color: #6f42c1;">to</span><span class="token">(</span><span class="token" style="color: #6f42c1;">contain</span><span class="token">(</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">Organized Tests with Quick Examples and Example Groups</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" style="color: #6f42c1;">expect</span><span class="token">(</span><span class="token">sections</span><span class="token">)</span><span class="token">.</span><span class="token" style="color: #6f42c1;">to</span><span class="token">(</span><span class="token" style="color: #6f42c1;">contain</span><span class="token">(</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">Installing Quick</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">}</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;">context</span><span class="token">(</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">if it doesn’t have what you’re looking for</span><span class="token" style="color: #032f62;">&quot;</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;">it</span><span class="token">(</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">needs to be updated</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">)</span><span class="token"> </span><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">          let you </span><span class="token" style="color: #d73a49;">=</span><span class="token"> </span><span class="token" style="color: #6f42c1;">You</span><span class="token">(</span><span class="token">awesome: </span><span class="token" style="color: #005cc5;">true</span><span class="token">)</span><span class="token">
</span></span><span class="line"><span class="token">          expect</span><span class="token">{</span><span class="token" style="color: #24292e;">you</span><span class="token">.</span><span class="token" style="color: #24292e;">submittedAnIssue</span><span class="token">}</span><span class="token">.</span><span class="token" style="color: #6f42c1;">toEventually</span><span class="token">(</span><span class="token" style="color: #6f42c1;">beTruthy</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">}</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">    </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><span class="line"><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-390"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-388">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-389'
	>
	5. <a href="https://github.com/xmartlabs/Eureka">Eureka</a></h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-393"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-391">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-392'
	>
	Eureka helps you write dynamic table-view forms in a simple and elegant way. It consists of rows, sections and forms. If your app contains a lot of forms, Eureka proves to be a real time-saver.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-395"
	 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" style="color: #6a737d;">//</span><span class="token" style="color: #6a737d;"> Creating a form</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token">class CustomCellsController : FormViewController </span><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token">    override func </span><span class="token" style="color: #6f42c1;">viewDidLoad</span><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 class="token" style="color: #24292e;">super</span><span class="token">.</span><span class="token" style="color: #6f42c1;">viewDidLoad</span><span class="token">(</span><span class="token">)</span><span class="token">
</span></span><span class="line"><span class="token">        form </span><span class="token" style="color: #d73a49;">++</span><span class="token" style="color: #d73a49;">+</span><span class="token"> </span><span class="token" style="color: #6f42c1;">Section</span><span class="token">(</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">Custom cells</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">)</span><span class="token">
</span></span><span class="line"><span class="token">                    </span><span class="token" style="color: #d73a49;">&lt;&lt;</span><span class="token" style="color: #d73a49;">&lt;</span><span class="token"> </span><span class="token" style="color: #6f42c1;">WeekDayRow</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: #b31d28;font-style: italic;">0.value</span><span class="token"> </span><span class="token" style="color: #d73a49;">=</span><span class="token"> </span><span class="token">[</span><span class="token">.Monday</span><span class="token">,</span><span class="token"> .Wednesday</span><span class="token">,</span><span class="token"> .Friday</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><span class="line"><span class="token">                    </span><span class="token" style="color: #d73a49;">&lt;&lt;</span><span class="token" style="color: #d73a49;">&lt;</span><span class="token"> </span><span class="token" style="color: #6f42c1;">TextFloatLabelRow</span><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 class="token" style="color: #b31d28;font-style: italic;">0.title</span><span class="token"> </span><span class="token" style="color: #d73a49;">=</span><span class="token"> </span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">Float Label Row, type something to see..</span><span class="token" style="color: #032f62;">&quot;</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">    </span><span class="token">}</span><span class="token">
</span></span><span class="line"><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-398"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-396">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-397'
	>
	6. <a href="https://github.com/ReactiveX/RxSwift">RxSwift</a></h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-401"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-399">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-400'
	>
	RxSwift is a Swift framework for Functional Reactive Programming. To be more specific, RxSwift is a Swift version of <a href="https://github.com/Reactive-Extensions/Rx.NET">Rx</a> and its goal is to enable easy composition of asynchronous operations and event/data streams. KVO observing, async operations and delegates are all unified under abstraction of sequence, which makes RxSwift such a powerful framework. If you’ve ever worked with <a href="https://github.com/ReactiveCocoa/ReactiveCocoa">ReactiveCocoa</a>, you are familiar with the concept.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-403"
	 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" style="color: #6a737d;">//</span><span class="token" style="color: #6a737d;"> Combine first and last name sequences, and bind the resulting string to label</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token" style="color: #6f42c1;">combineLatest</span><span class="token">(</span><span class="token">firstName.rx_text</span><span class="token">,</span><span class="token"> lastName.rx_text</span><span class="token">)</span><span class="token"> </span><span class="token">{</span><span class="token"> $</span><span class="token">0</span><span class="token"> </span><span class="token" style="color: #d73a49;">+</span><span class="token"> </span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;"> </span><span class="token" style="color: #032f62;">&quot;</span><span class="token"> </span><span class="token" style="color: #d73a49;">+</span><span class="token"> $</span><span class="token" style="color: #005cc5;">1</span><span class="token"> </span><span class="token">}</span><span class="token">
</span></span><span class="line"><span class="token">            .map </span><span class="token">{</span><span class="token"> </span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">Greeting </span><span class="token" style="color: #b31d28;font-style: italic;">\(</span><span class="token" style="color: #032f62;">$0)</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" style="color: #6f42c1;">bindTo</span><span class="token">(</span><span class="token">greetingLabel.rx_text</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-406"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-404">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-405'
	>
	7. <a href="https://github.com/SnapKit/SnapKit">SnapKit</a></h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-409"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-407">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-408'
	>
	SnapKit is an Auto Layout library that simplifies writing auto layout in code with a minimal amount of code needed without losing readability. It is type safe by design to help you avoid programming errors while coding your user interface.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-411"
	 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" style="color: #6a737d;">//</span><span class="token" style="color: #6a737d;"> Resizing and centering subview in its superview</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token">let box </span><span class="token" style="color: #d73a49;">=</span><span class="token"> </span><span class="token" style="color: #6f42c1;">UIView</span><span class="token">(</span><span class="token">)</span><span class="token">
</span></span><span class="line"><span class="token">let container </span><span class="token" style="color: #d73a49;">=</span><span class="token"> </span><span class="token" style="color: #6f42c1;">UIView</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">container.</span><span class="token" style="color: #6f42c1;">addSubview</span><span class="token">(</span><span class="token">box</span><span class="token">)</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token">box.snp_makeConstraints </span><span class="token">{</span><span class="token"> </span><span class="token">(</span><span class="token">make</span><span class="token">)</span><span class="token" style="color: #24292e;"> </span><span class="token">-&gt;</span><span class="token"> </span><span class="token" style="color: #24292e;">Void</span><span class="token"> in
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #24292e;">make</span><span class="token">.</span><span class="token" style="color: #24292e;">size</span><span class="token">.</span><span class="token" style="color: #6f42c1;">equalTo</span><span class="token">(</span><span class="token" style="color: #005cc5;">50</span><span class="token">)</span><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #24292e;">make</span><span class="token">.</span><span class="token" style="color: #24292e;">center</span><span class="token">.</span><span class="token" style="color: #6f42c1;">equalTo</span><span class="token">(</span><span class="token">container</span><span class="token">)</span><span class="token">
</span></span><span class="line"><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-414"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-412">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-413'
	>
	8. <a href="https://github.com/MengTo/Spring">Spring</a></h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-417"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-415">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-416'
	>
	Spring is an animation library that helps you create animations both in code or directly in Storyboard. You can create animations in Storyboard using runtime attributes (set through IBInspectable properties). Spring has grown into a fully developed animation library that supports quite a number of already written animations, transitions, and properties.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-419"
	 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" style="color: #6a737d;">//</span><span class="token" style="color: #6a737d;"> Usage with code</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token">layer.animation </span><span class="token" style="color: #d73a49;">=</span><span class="token"> </span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">wobble</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">
</span></span><span class="line"><span class="token">layer.</span><span class="token" style="color: #6f42c1;">animate</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-422"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-420">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-421'
	>
	9. <a href="https://github.com/onevcat/Kingfisher">Kingfisher</a></h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-425"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-423">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-424'
	>
	Kingfisher is a lightweight library for downloading and caching images from the web. Downloading and caching is done asynchronously. Downloaded images are cached in both memory and disk, which could improve your app experience quite a lot.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-427"
	 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" style="color: #6a737d;">//</span><span class="token" style="color: #6a737d;"> Basic example of downloading and caching an image</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token">imageView.</span><span class="token" style="color: #6f42c1;">kf_setImageWithURL</span><span class="token">(</span><span class="token" style="color: #6f42c1;">NSURL</span><span class="token">(</span><span class="token">string: </span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">http://your_image_url.png</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">)</span><span class="token" style="color: #d73a49;">!</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-430"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-428">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-429'
	>
	10. <a href="https://github.com/JohnEstropia/CoreStore">CoreStore</a></h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-433"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-431">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-432'
	>
	CoreStore is a wrapper library for Core Data. Its goal is to provide type safety and elegance of Swift when interacting with Core Data. CoreStore’s API provides all common methods to effectively interact with your database.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-435"
	 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" style="color: #6a737d;">//</span><span class="token" style="color: #6a737d;"> Storing a person entity</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token">CoreStore.beginAsynchronous </span><span class="token">{</span><span class="token"> </span><span class="token">(</span><span class="token">transaction</span><span class="token">)</span><span class="token" style="color: #24292e;"> </span><span class="token">-&gt;</span><span class="token"> </span><span class="token" style="color: #24292e;">Void</span><span class="token"> in
</span></span><span class="line"><span class="token">    let person </span><span class="token" style="color: #d73a49;">=</span><span class="token"> </span><span class="token" style="color: #24292e;">transaction</span><span class="token">.</span><span class="token" style="color: #6f42c1;">create</span><span class="token">(</span><span class="token" style="color: #6f42c1;">Into</span><span class="token">(</span><span class="token">MyPersonEntity</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: #24292e;">person</span><span class="token">.</span><span class="token" style="color: #24292e;">name</span><span class="token"> </span><span class="token" style="color: #d73a49;">=</span><span class="token"> </span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">John Smith</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #24292e;">person</span><span class="token">.</span><span class="token" style="color: #24292e;">age</span><span class="token"> </span><span class="token" style="color: #d73a49;">=</span><span class="token"> </span><span class="token" style="color: #005cc5;">42</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: #24292e;">transaction</span><span class="token">.</span><span class="token" style="color: #24292e;">commit</span><span class="token"> </span><span class="token">{</span><span class="token"> </span><span class="token">(</span><span class="token">result</span><span class="token">)</span><span class="token" style="color: #24292e;"> </span><span class="token">-&gt;</span><span class="token"> </span><span class="token" style="color: #24292e;">Void</span><span class="token"> in
</span></span><span class="line"><span class="token">        </span><span class="token" style="color: #d73a49;">switch</span><span class="token"> </span><span class="token">result </span><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">            </span><span class="token" style="color: #d73a49;">case</span><span class="token"> .</span><span class="token" style="color: #6f42c1;">Success</span><span class="token">(</span><span class="token">let hasChanges</span><span class="token">)</span><span class="token">:</span><span class="token"> </span><span class="token" style="color: #6f42c1;">print</span><span class="token">(</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">success!</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">)</span><span class="token">
</span></span><span class="line"><span class="token">            </span><span class="token" style="color: #d73a49;">case</span><span class="token"> .</span><span class="token" style="color: #6f42c1;">Failure</span><span class="token">(</span><span class="token">let error</span><span class="token">)</span><span class="token">:</span><span class="token"> </span><span class="token" style="color: #6f42c1;">print</span><span class="token">(</span><span class="token">error</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><span class="line"><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><span class="line"><span class="token">
</span></span></code></pre></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-438"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-436">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-437'
	>
	What’s your opinion?</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-441"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-439">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-440'
	>
	You don’t agree with us? Some other library deserves a place in this top 10 list?<br>Leave a comment and let us know what you think!</p></div>	</div>
</div>
</div>		</div>
	</div><p>The post <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> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</content:encoded>
			</item>
					<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-605"
	 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-444">
	</div>

<div class="block-blog-content-main">
	
<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-447"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-445">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-446'
	>
	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-450"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-448">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-449'
	>
	<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-453"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-451">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-452'
	>
	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-456"
	 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-454"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-455">
	<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-459"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-457">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-458'
	>
	1. <a href="https://github.com/AFNetworking/AFNetworking">AFNetworking</a></h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-462"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-460">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-461'
	>
	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-465"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-463">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-464'
	>
	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-468"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-466">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-467'
	>
	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-471"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-469">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-470'
	>
	GET request</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-473"
	 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-476"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-474">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-475'
	>
	POST request</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-478"
	 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-481"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-479">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-480'
	>
	Swift alternative</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-484"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-482">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-483'
	>
	<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-487"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-485">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-486'
	>
	2. <a href="https://github.com/icanzilb/JSONModel">JSONModel</a></h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-490"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-488">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-489'
	>
	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-493"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-491">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-492'
	>
	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-496"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-494">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-495'
	>
	Initializing model from JSON response</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-498"
	 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-501"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-499">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-500'
	>
	Swift alternative</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-504"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-502">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-503'
	>
	<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-507"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-505">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-506'
	>
	3. <a href="https://github.com/magicalpanda/MagicalRecord">MagicalRecord</a></h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-510"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-508">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-509'
	>
	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-513"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-511">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-512'
	>
	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-516"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="lists" data-id="es-514">
	<ul	class='typography typography--size-16-text-roman js-typography lists__typography'
	data-id='es-515'
	>
	<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-519"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-517">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-518'
	>
	Let’s see how we can put MagicalRecord to use:</p></div>	</div>

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

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-524"
	 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-527"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-525">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-526'
	>
	Retrieve all records for the NSManagedObject subclasses</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-529"
	 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-532"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-530">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-531'
	>
	Updating an entity</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-534"
	 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-537"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-535">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-536'
	>
	Delete single record</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-539"
	 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-542"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-540">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-541'
	>
	Swift alternative</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-545"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-543">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-544'
	>
	<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-548"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-546">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-547'
	>
	4. <a href="https://github.com/rs/SDWebImage">SDWebImage</a></h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-551"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-549">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-550'
	>
	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-554"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-552">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-553'
	>
	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-557"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="lists" data-id="es-555">
	<ul	class='typography typography--size-16-text-roman js-typography lists__typography'
	data-id='es-556'
	>
	<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-560"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-558">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-559'
	>
	Here is a basic example of usage:</p></div>	</div>

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

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-565"
	 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-568"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-566">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-567'
	>
	Swift alternative</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-571"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-569">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-570'
	>
	<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-574"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-572">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-573'
	>
	5. <a href="https://github.com/ReactiveCocoa/ReactiveCocoa">ReactiveCocoa</a></h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-577"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-575">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-576'
	>
	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-580"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-578">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-579'
	>
	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-583"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-581">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-582'
	>
	Basic usage</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-586"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-584">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-585'
	>
	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-588"
	 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-591"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-589">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-590'
	>
	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-594"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-592">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-593'
	>
	Swift alternative</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-597"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-595">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-596'
	>
	<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-600"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-598">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-599'
	>
	Honorable mentions</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-603"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="lists" data-id="es-601">
	<ul	class='typography typography--size-16-text-roman js-typography lists__typography'
	data-id='es-602'
	>
	<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>
					<item>
				<image>
					<url>8073https://infinum.com/uploads/2014/05/becoming-an-ios-developer-0.webp</url>
				</image>
				<title>Becoming an iOS Developer</title>
				<link>https://infinum.com/blog/becoming-an-ios-developer/</link>
				<pubDate>Tue, 20 May 2014 06:31:00 +0000</pubDate>
				<dc:creator>Vedran Burojevic</dc:creator>
				<guid isPermaLink="false">https://infinum.com/the-capsized-eight/becoming-an-ios-developer/</guid>
				<description>
					<![CDATA[<p>Do you want to become an iOS developer? Let me give you some tips I wish I knew when I first started!</p>
<p>The post <a href="https://infinum.com/blog/becoming-an-ios-developer/">Becoming an iOS Developer</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</description>
				<content:encoded>
					<![CDATA[<div
	class="wrapper"
	data-id="es-736"
	 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-606">
	</div>

<div class="block-blog-content-main">
	
<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-609"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-607">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-608'
	>
	When I first tried out my new iPhone, I was instantly curious about how everything worked on it. To satisfy my curiosity, I started learning iOS development. Do you want to become an iOS developer? Let me give you some tips I wish I knew when I first started!</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-612"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-610">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-611'
	>
	What’s the deal with iOS development? Is it easy, hard or somewhere in between? I’ve been asked lots of times how I started with iOS development and what was the learning process of becoming an iOS app developer.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-615"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-613">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-614'
	>
	My answer has always been the same – it takes time, effort and patience to get over the learning curve. But first, you’ll need some advice about required tools and learning resources necessary to become a competent iOS developer.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-618"
	 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-616"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-617">
	<picture class="image__picture block-media__image-picture">
												<img
					src="https://infinum.com/uploads/2014/05/becoming-an-ios-developer-1.webp"
					class="image__img block-media__image-img"
					alt=""
										height="525"
															width="700"
										loading="lazy"
					 />
					</picture>

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

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-620"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-highlighted-text">
	<p	class='typography typography--size-36-text js-typography block-highlighted-text__typography'
	data-id='es-619'
	>
	<strong>This tutorial is a part of our </strong><em>&#8216;Becoming a developer&#8217;</em><strong> series. You can check out our previous article on </strong><a href="https://infinum.com/blog/becoming-a-ruby-on-rails-developer/" target="_blank" rel="noreferrer noopener">Becoming a Ruby on Rails developer</a><strong>.</strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-623"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-621">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-622'
	>
	Equip yourself</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-626"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-624">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-625'
	>
	Unfortunately, there is no way to develop iOS apps on Windows. You’ll need OS X for this, which means you’ll need to buy either an iMac, Mac mini or a MacBook. If you’re used to working on PCs, this might be a little bit pricey, but it’s totally worth it.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-629"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-627">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-628'
	>
	Also, you don’t have to go with a top model Mac. A machine with an Intel-based processor and the Snow Leopard version of Mac OS X will be good enough, as this is the minimal requirement for Apple’s <a href="http://en.wikipedia.org/wiki/Integrated_development_environment">IDE</a> called Xcode. Newest version, Xcode 5 requires OS X 10.8 (Mountain Lion). Older Macs that don’t support Mountain Lion still support Xcode 4, but is best to have the most recent version of Xcode available. Currently, the least expensive Mac is a <a href="https://www.apple.com/mac-mini/">Mac Mini</a>, starting at $599. Of course, you can also buy a used Mac cheaper.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-632"
	 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-630"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-631">
	<picture class="image__picture block-media__image-picture">
												<img
					src="https://infinum.com/uploads/2014/05/becoming-an-ios-developer-2.webp"
					class="image__img block-media__image-img"
					alt=""
										height="315"
															width="635"
										loading="lazy"
					 />
					</picture>

			<figcaption class="image__figcaption block-media__image-figcaption">
			Different types of Mac computers		</figcaption>
	</figure></div></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-635"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-633">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-634'
	>
	But I don’t want to work on a Mac</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-638"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-636">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-637'
	>
	You’re probably thinking, why can’t I install OS X on my PC (in a virtual machine or build a <a href="https://www.hackintosh.com/">Hackintosh</a>)? This could get you started, but there are a lot of problems that can occur and I would recommend against it. If you want to be a professional developer, the best way is to have appropriate hardware which you know is stable and will always run smoothly.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-641"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-639">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-640'
	>
	Xcode IDE</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-644"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-642">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-643'
	>
	After you’ve grabbed your new, shiny Mac, the next step is to <a href="https://developer.apple.com/xcode/">download Xcode</a>. Xcode is the official IDE (Integrated Development Environment) for iOS, which contains a complete development environment, including:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-647"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="lists" data-id="es-645">
	<ul	class='typography typography--size-16-text-roman js-typography lists__typography'
	data-id='es-646'
	>
	<li>Compiler</li><li>Interface builder</li><li>Frameworks</li><li>Simulator</li><li>Full documentation reference library</li></ul></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-650"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-648">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-649'
	>
	Best of all, Apple provides this SDK <strong>completely free</strong> and it’s available on the Mac App Store. Want to see how awesome Xcode is and what it contains? You can <a href="https://developer.apple.com/xcode/">check that out here</a>.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-653"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-651">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-652'
	>
	With Xcode installed, you’ll be able to write and compile iPhone apps. But there’s a trick. If you’re not enrolled in the iOS developer program, you’ll only be able to compile your apps for the simulator. This is great, but not enough if you want to test more complicated apps that use a camera, gyroscope or other things available only on a real iOS device.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-656"
	 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-654"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-655">
	<picture class="image__picture block-media__image-picture">
												<img
					src="https://infinum.com/uploads/2014/05/becoming-an-ios-developer-3.webp"
					class="image__img block-media__image-img"
					alt=""
										height="800"
															width="1280"
										loading="lazy"
					 />
					</picture>

			<figcaption class="image__figcaption block-media__image-figcaption">
			Xcode IDE		</figcaption>
	</figure></div></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-659"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-657">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-658'
	>
	iOS Developer Program</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-662"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-660">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-661'
	>
	Once you’ve created your first iOS app, you’ll want to test it on an actual device or publish it to the App Store to reveal your masterpiece to the world (and maybe earn a few bucks in the process). That means enrolling in the iOS Developer Program (which costs $99). It also grants you access to a large number of useful developer resources in the iOS Dev Center, official Apple developer forums and beta iOS and Xcode versions.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-665"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-663">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-664'
	>
	You can enroll and become a part of iOS developers community <a href="https://developer.apple.com/programs/ios/">here</a>.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-668"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-666">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-667'
	>
	About Objective-C</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-671"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-669">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-670'
	>
	iOS apps are written in the Objective-C programming language. Objective-C is an object-oriented programming language based on C. That means that Objective-C is a superset of C and it takes everything from C, but also adds some extra functionality to it, such as Smalltalk-style messaging.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-674"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-672">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-673'
	>
	Object oriented programming is a programming paradigm that allows you to divide your application code into objects that have data fields and methods. These objects then interact with each other to implement specific behavior. Object oriented programming makes it easier to develop structured and maintainable code.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-677"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-675">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-676'
	>
	Diving into Objective-C</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-680"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-678">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-679'
	>
	If you start looking for a book to start with, you’ll find a lot of them. Read the reviews and choose one for yourself or, for starters, follow my suggestion – read <a href="http://www.amazon.com/Programming-Objective-C-Edition-Developers-Library/dp/032188728X">Programming in Objective-C</a> by Stephen Kochan.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-683"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-681">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-682'
	>
	You can also start with another great book by The Big Nerd Ranch called <a href="http://www.bignerdranch.com/book/objective-c_programming_the_big_nerd_ranch_guide_2nd_ed">Objective-C Programming: The Big Nerd Ranch Guide</a>.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-686"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-684">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-685'
	>
	Also, you can learn more about Objective-C from <a href="https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/Introduction/Introduction.html">Apple’s official library</a>, or try it on <a href="http://tryobjectivec.codeschool.com/">Code School</a>.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-689"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-687">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-688'
	>
	Cocoa Touch</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-692"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-690">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-691'
	>
	After you have a basic understanding of Objective-C, it is time to use it in an iOS programming environment. While developing iOS apps, you will use Cocoa Touch, Apple’s UI (User Interface) framework that drives iOS apps. It’s a library with frameworks and APIs, containing everything from touchable buttons, custom maps, video and audio players to device notifications.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-695"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-693">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-694'
	>
	<a href="https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/index.html#//apple_ref/doc/uid/TP40006556-CH66-SW1">Learn more about iOS user interface</a></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-698"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-696">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-697'
	>
	Creating your iOS app</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-701"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-699">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-700'
	>
	There are two ways you can learn iOS app development: books or video tutorials. It’s best to use both.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-704"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-702">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-703'
	>
	Regarding books, a very fine choice is <a href="http://www.bignerdranch.com/we-write/ios-programming">iOS Programming: The Big Nerd Ranch Guide 4th Edition</a>. The latest edition contains all the important updates built into iOS 7 and Xcode 5.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-707"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-705">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-706'
	>
	When it comes to videos, the best choice are video tutorials from Stanford University. Lucky for you, Stanford’s lectures are available online for free. This course contains everything you need to learn the basics of iOS development, and, as you follow it, you’ll write your first very own application for iPhone.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-710"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-708">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-709'
	>
	After you are finished with these, you’ll feel completely confident to write you own apps.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-713"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-711">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-712'
	>
	Don’t forget about Apple’s official documentation!</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-716"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-714">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-715'
	>
	Apple takes care of its developers, so it has created a fantastic<a href="https://developer.apple.com/library/ios/"> online resource</a> containing everything you’ll need if you get stuck with something while developing your app. It contains example code and tutorials so you can start with specific technologies and aspects of iOS apps.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-719"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-717">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-718'
	>
	Learn to use the official documentation right from the start. It’s a major plus if you master using it right at the beginning. It will make things easier for you in the future when you’ll work with new things that you haven’t encountered before.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-722"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-720">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-721'
	>
	What next?</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-725"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-723">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-724'
	>
	The best way to extend your knowledge is to continue creating apps. You have an idea for an app, but you don’t know how to write it right from the start? That shouldn’t worry you; you’ll learn things along the way. There is a massive amount of resources on the Internet for iOS development and I’m sure you’ll find your way.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-728"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-726">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-727'
	>
	With every problem comes a solution, and with every solution your knowledge will grow and you’ll become more confident and a more competent iOS developer. If you persist with your project and complete the app, you’ll definitely learn a lot along the way. That means you will be ready for a new, more complicated project.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-731"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-729">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-730'
	>
	Other valuable iOS resources</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-734"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="lists" data-id="es-732">
	<ul	class='typography typography--size-16-text-roman js-typography lists__typography'
	data-id='es-733'
	>
	<li><a href="http://www.stackoverflow.com/" target="_blank" rel="noreferrer noopener">Stackoverflow</a></li><li><a href="http://www.github.com/" target="_blank" rel="noreferrer noopener">GitHub</a></li><li><a href="http://nsscreencast.com/" target="_blank" rel="noreferrer noopener">NSScreenCast</a></li><li><a href="http://iosdevweekly.com/" target="_blank" rel="noreferrer noopener">iOS Dev Weekly</a></li><li><a href="http://nshipster.com/" target="_blank" rel="noreferrer noopener">NSHipster</a></li><li><a href="http://www.raywenderlich.com/" target="_blank" rel="noreferrer noopener">RayWenderlich tutorials</a></li><li>iOS Dev Tools</li><li><a href="http://cocoapods.org/" target="_blank" rel="noreferrer noopener">Cocoapods</a></li></ul></div>	</div>
</div>
</div>		</div>
	</div><p>The post <a href="https://infinum.com/blog/becoming-an-ios-developer/">Becoming an iOS Developer</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</content:encoded>
			</item>
		
	</channel>
</rss>