Services like GitHub or Bitbucket are full of useful third-party libraries that can be easily integrated into your project by using tools like CocoaPods and Carthage. Here are 5 libraries that we use in every-day development and think every iOS developer should know about.

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).

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 NSHipster. An amazing community of developers contributes to AFNetworking daily, making it the most popular third-party iOS library.

To see just how easy it is to use it, check out the code example below:

Swift alternative

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.

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.

Swift alternative

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.

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:

Swift alternative

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.

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.

Basic usage

Check if the email length is greater than 0, password length greater than 8, and enable the login button if both requirements are met.