The original

This article was translated from Medium by Paweł Białecki

Copyright :(Unsplash/Markus Pe)


Hello iOS developers! My name is Paweł, I’m an indie iOS developer and the author of Enter Universe.


About two years ago I released 27 iOS open source libraries, so let your development rocket. This is my best post here (based on feedback from Medium users) :

If 155,000 people are worried about finding the best iOS open source library across the web, I deliver it.


Take a look at my GitHub homepage. Since this post there are more than 180 repositories, so it’s time to update my Medium.


Say hello to 33 pods that will rocket your 2017 development. Fire and go.

Copyright (NASA/Joel Kowsky)


You’ll find TL at the bottom of the article; The DR is a summary list that lists all of these libraries with links to them and the CocoaPods name (if any). You don’t need to take notes while reading. Now let’s get down to business.


1.IGListKit,作者是 Instagram Engineering

Created by Instagram programmers, IGListKit is a data-driven UICollectionView framework for building fast and extensible lists. Plus, it helps you end up using a lot of view controllers in your app. Check out this tutorial from Ray Wenderlich on how to implement this library in a project, or read Rodrigo Cavalcante’s article on migrating an existing UITableView to IGListCollectionView.

Instagram/IGListKit – A data-driven UICollectionView framework for building fast and extensible lists


Realm, by Realm.io

Realm is a mobile database that runs directly inside phones, tablets and wearables, not just iOS. If you want to try something a little different from Core Data, use Realm. Many say it’s a modern, product-ready alternative to Apple’s native solution.

Realm/realm-Cocoa-Realm is a replacement for mobile databases: Core Data and SQLite



3.Moya by Ash Furrow

Moya is the missing network layer in your app. Instead of wondering where (or how) to place your network requests, Moya manages them for you.

Moya/Moya – Network abstraction layer written in Swift


4.SwiftyJSON by Pinglin Tang

Swift king of JSON parsing.

Put this code:

if let statusesArray = try? JSONSerialization.jsonObject(with: data, options: .allowFragments) as? [[String: Any]],

    let user = statusesArray[0][“user”] as? [String: Any],

    let username = user[“name”] as? String {

    // Finally we got the username

}

It became this:

let json = JSON(data: dataFromNetworking)

if let userName = json[0][“user”][“name”].string {

  // Now you got your value

}

Automatically unpack the optional values for you.

SwiftyJSON/SwiftyJSON – a better way to handle JSON in Swift


5.Valet by Square

Valet allows you to securely store data in an iOS or OS X keychain without having to have any knowledge of how the keychain works. It supports data sharing between multiple apps on one device (with the same developer) and iCloud sharing between multiple devices within an app. Touch ID support? no problem

Square/Valet-Valet allows you to securely store data in iOS or OS X keychains without having to have any knowledge of how the keychain works.


6. Firebase Analytics by Google Developers

Made by Google (well, acquired), it’s probably the best free analytics solution for iOS. Tracking app usage, user activity, and events; Set user properties; Create custom audiences; There’s more.

Firebase Analytics | Firebase – Firebase Analytics is a free app monitoring solution, dosage of insight into the app and user activity


7. AsyncDisplayKit

Facebook created this asynchronous UI SDK for their App Paper. If you want your app to always render at 60 frames per second, be sure to check out this library. Here’s a story from the Buffer team:

Smooth scrolling in iOS Buffer: How (and why) we implemented AsyncDisplayKit – Every year after Apple’s WWDC, we turn most of our attention to updating our Buffer…

Facebook /AsyncDisplayKit – Smooth asynchronous user interface for iOS apps.


8.DZNEmptyDataSet

After the user installs your app, they’ll see a blank UITableView.


DZNEmptyDataSet helps you avoid this situation by providing a default implementation of EmptyDataSet Pattern.

Dzenbot/DZNEmptyDataSet – embedded UITableView/UICollectionView parent category, is used to display an empty data set, whenever…


Chameleon was written by Vicc Alexander

Chameleon is a lightweight and powerful color framework for iOS. It was built on the idea that software applications should be easy to function while maintaining a beautiful interface.


With Chameleon, you no longer have to fiddle with RGB values, waste time figuring out the right color combinations in your app, and worry about whether text can be seen in different contexts in your app.

ViccAlexander/ Chameleon-ios Flat color Frames (OBJ-C and Swift)


10. PermissionScope,作者是 Nick O’Neill

PermissionScope is a Swift framework for subtly requesting permissions from users. It includes not only a simple permission request UI, but also a unified permission API that tells you the status of any given system permission and makes it easy to request them.

Nickoneill/PermissionScope – clever iOS permissions UI and unified API


11. FileKit is written by Nikolai Vazquez

FileKit is a Swift framework that provides simple and expressive file management. Take a look at an example.

NVZQZ /FileKit – Simple and expressive Swift file management



12. SwiftyUserDefaults by Radek Pietruszewski

SwiftyUserDefaults makes user Defaults a joy to use by combining the meaningful Swifty API with the benefits of static input. Defining keys in one place, making it easy to use value types, and getting extra security and easy compile-time checking are all free.

Radex /SwiftyUserDefaults – Modern Swift API for NSUserDefaults


Kingfisher, by Wang Wei

Kingfisher is a lightweight, Swift-only library that can asynchronously download and cache images from the network.

onevcat/Kingfisher


14. Hero by Luke Zhao

Hero is a library for iOS trying to animate the controller transition. It provides a layer on top of UIKit’s cumbersome transition animation API, making custom transition animations an easy task for developers.

Lkzhao /Hero – iOS elegant transition animation library, written in Swift.


15. The author of Hedwig is Wang Wei

Hedwig is a Swift package that provides a set of advanced apis that allow you to easily send email to your SMTP server. If you’re looking to send email from the next magical Swift server app, Hedwig might be a good choice.

Onevcat /Hedwig – Send mail to any SMTP server like a boss, written in Swift and cross-platform


16. DeviceKit by Dennis Weissmann

DeviceKit is a value type replacement for UIDevice. Easy access to device information and battery power.

dennisweissmann/DeviceKit


17.  Charts

Beautiful charts, pie charts, bar charts, distribution charts, bubble charts, radar charts and more, this is a library of charts.

Danielgindi /Charts – iOS/tvOS/OSX beautiful Charts! Cross-platform MPAndroidChart for Apple


18.  MGSwipeTableCell

An easy to use UITableViewCell subclass that allows the display of sliding buttons with multiple transformations.

MortimerGoro/MGSwipeTableCell


RandomKit is written by Nikolai Vazquez

Easy to use random data generation.

#285: Generate random data with RandomKit – whether it’s a sample value needed in the app’s prototype interface, or some multipliers of game logic, random…

NVZQZ /RandomKit – Random data generation in Swift


20.  ResponseDetective

ResponseDetective is a non-embedded framework for intercepting any outgoing requests and incoming responses between the application and the server for debugging purposes.

Make HTTP tuning easier in iOS with ResponseDetective – we are pleased to release ResponseDetective, our new open source iOS tool for HTTP debugging. How many times have you…

Netguru/ResponseDetective – Sherlock Holmes in the network layer


21.  Onboard

With just a few lines of code, it’s easy to create a beautiful, engaging user guide page experience.

mamaral/Onboard


22. Quick + Nimble author is no o Domo kasarashii

Quick is a BDD testing framework for Swift and Objective-C that works with Nimble, the matterer framework.

Quick/ Quick-Swift (and Objective-C) testing frameworks.

Quick/Nimble – Swift and Objective-C matchers


Natalie was written by Marcin Krzyzanowski

Natalie generates Swift code based on storyboard files to make storyboards and segues easier to use. The generated file reduces the use of strings as identifiers for segues or storyboards.

Krzyzanowskim/Natali-Storyboard Code Generator (Swift)


24. RxSwift author is ReactiveExtensions*

Interested in programming Reactive in Swift? This is RxSwift.

ReactiveX/RxSwift


GDPerformanceView is written by Daniil Gavrilov

GDPerformanceView displays FPS, CPU usage, app and iOS versions at the top of the status bar and reports FPS and CPU usage via a delegate.

dani-gavrilov/GDPerformanceView-Swift


26.  Alamofire

Alamofire is an HTTP network library written in Swift.

Swift’s absolute web guide, in Alamofire – Swift’s network has been the focus of controversy since its release in June 2014. Even…

Alamofire/Alamofire – Elegant HTTP networking in Swift


27. SwiftyStoreKit is by Andrea Bizzotto

SwiftyStoreKit is a lightweight in-app purchase framework that supports iOS 8.0+, tvOS 9.0+ and macOS 10.10+.

bizz84/SwiftyStoreKit


28. Timepiece author is AnyType

Intuitive date handling in Swift.

naoty/Timepiece


29. CryptoSwift was written by Marcin Krzyzanowski

Swift encryption related help function implementation.

Krzyzanowskim/CryptoSwift – CryptoSwift is a collection of a constantly expanding, contains a standard, safe, Swift, implementing encryption algorithm


30.  FSCalendar

Fully custom iOS calendar library, compatible with Objective-C and Swift.

WenchaoD/FSCalendar


31. The author of ImageViewer is Kristian Angyal

Image browser that mimics Twitter.

MailOnline/ImageViewer


32.  PromiseKit

PromiseKit is a thoughtful and complete promises implementation for any platform with SwifTC, with excellent Objective-C bridging and aesthetically pleasing specialization for iOS, macOS, tvOS, and watchOS.

PromiseKit – Promises for Swift and ObjC


The author of Ensembles is Drew McCormack

Ensembles is an Objective-C framework — which also supports Swift — that extends Apple’s Core Data framework to add point-to-point synchronization to Mac OS and iOS. Multiple SQLite Persistent Stores can be coupled together via a file synchronization platform such as iCloud or Dropbox. The framework can be easily extended to support any service that can move files between devices, including custom servers.




TL for these libraries; DR list for quick query:

1. IGListKit -> pod ‘IGListKit’, ‘~> 2.0.0

Realm -> pod ‘RealmSwift ‘

3. Moya -> pod ‘Moya’, ‘8.0.0’

4. SwiftyJSON -> pod ‘SwiftyJSON ‘

5. Valet -> Pod ‘valet ‘

6. Firebase Analytics -> Pod ‘Firebase/Core ‘

7. AsyncDisplayKit -> pod ‘AsyncDisplayKit ‘

8. DZNEmptyDataSet [empty state mode] -> pod ‘DZNEmptyDataSet ‘

9. Chameleon [flat color frame] – > pod ‘ChameleonFramework/Swift: git = >’ https://github.com/ViccAlexander/Chameleon.git ‘

10. PermissionScope -> pod ‘PermissionScope ‘

11. FileKit -> pod ‘FileKit’, ‘~> 4.0.0 ‘

12. [user defaults helper] -> pod ‘SwiftyUserDefaults’

13. Kingfisher -> pod ‘Kingfisher’, ‘~> 3.0 ‘

14. Hero [custom attempt controller transition animation] -> pod ‘Hero ‘

15. Hedwig [to send emails]

16. DeviceKit -> POD ‘DeviceKit’, ‘~> 1.0 ‘

17. Charts [Charts] -> Pod ‘Charts’

18. MGSwipeTableCell -> pod ‘MGSwipeTableCell ‘

-> pod ‘RandomKit’, ‘~> 3.0.0 ‘

20. ResponseDetective -> pod ‘ResponseDetective ‘

21. Onboard [onScreen] -> Onboard ‘

22. Quick + Nimble [BDD] -> pod ‘Quick ‘

Pod ‘Nimble’

23. Natalie [Generating code from storyboard]

RxSwift [Reactive] -> pod ‘RxSwift’, ‘~> 3.0 ‘

GDPerformanceView [Real-Time FPS and CPU usage] -> pod ‘GDPerformanceView-Swift’, ‘~> 1.1.0 ‘

26. Alamofire -> pod ‘Alamofire’, ‘~> 4.3 ‘

27. SwiftyStoreKit [app purchase] -> Pod ‘SwiftyStoreKit ‘

28. Timepiece [date helper] -> pod ‘Timepiece ‘

29. CryptoSwift -> pod ‘CryptoSwift ‘

FSCalendar [calendar] -> pod ‘FSCalendar ‘

31. ImageViewer [Twitter ImageViewer] -> pod ‘ImageViewer ‘

PromiseKit [promise] -> PromiseKit [promise] -> PromiseKit [promise] -> PromiseKit

Ensembles [Core Data] -> pod ‘Ensembles’

Thanks for reading, this is not the shortest article you can read on Medium! If you like this article, click below?? Come and share it with your friends so that more people will discover these great libraries. You can also follow me on Twitter, where I post mostly iOS development. Thank you very much!