This article was translated from Medium, originally by Paweł Białecki, original article
You don’t want to miss them, really.
I love open source.
And I love how developers spend their precious personal time creating amazing things that they then share with others without asking for anything in return. Open source authors and contributors, you are the most handsome. Thank you for your continued work.
So, because I’m a sorting freak, this is my favorite from the iOS open source library. The sequence of these items is random, all cool.
Most libraries support CocoaPods, so adding them to your Xcode projects is a breeze.
At the end of the article you’ll find a version that’s too long to read — a simple list with just the title and links to the project. If you find this article useful, share it with your iOS developer brothers. Good things need to be spread.
DZNEmptyDataSet
This should have been a standard, built-in way of dealing with empty tables and Collection Views in iOS. By default, if your table View is empty, the screen is empty. But it’s not the best user experience you can offer.
With this library, you just have to follow a set of protocols and iOS will gracefully take over your Collection View and display the information correctly and nicely to the user. Obviously, every iOS project should adopt it.
This is completely customizable.
CocoaPods:
Pod ‘DZNEmptyDataSet’
GitHub
2. PDTSimpleCalendar
Does your app need a simple, good-looking, and effective calendar component?
There you have it — PDTSimpleCalendar is quite possibly the best iOS calendar component. There are many ways to customize it, logically valid and good-looking.
CocoaPods:
pod ‘PDTSimpleCalendar’
GitHub
3. MagicalRecord
They say, Core Data is simple. They say it’s nice and easy. Haha, are you serious, Apple? A bunch of cliched code is added to every project, and it’s really not elegant or simple. Not to mention adding, removing, and updating many entities, saving context, creating different Core Data stacks for different environments, and so on. I love Core Data, of course, but Apple can really simplify it in a nice, simple way — the MagicalRecord method.
MagicalRecord works like a wrapper around Core Data and hides all extraneous stuff from developers. If you’ve ever used active record mode (such as Ruby on Rails), you already know it. I really recommend this library if you’re using Core Data in your app.
CocoaPods:
pod ‘MagicalRecord’
GitHub
4. Chameleon
If you’re reading this, you’re a good programmer, not a designer. This is for you.
Chameleon is a color framework for iOS. It extends UIColor with beautiful, modern flat colors. It also gives us the ability to create palettes of our own defined colors. It can do a lot of other things, exploring readme files. If you want beautiful applications, add this library to your projects.
Chameleon base flat color
CocoaPods:
pod ‘ChameleonFramework’
GitHub
5. Alamofire
Alamofire is an elegant web library written in Swift. Have you ever used AFNetworking? ALamofire is his younger brother. Younger and more talented, of course (AFNetworking is written in Objective-C).
Need to do network related things like download, upload, get JSON, etc? Alamofire is for you. The 8,000 people on GitHub can’t go wrong.
CocoaPods:
pod ‘MagicalRecord’
GitHub
6. TextFieldEffects
Don’t you find standard UITextField a little boring? Me too — so say hello to Textfield ffects! I won’t write too much, I’ll just show you some examples of what the library can do:
Yes, these are simple, easy-to-use controllers. You can even use IBDesignable in storyboard!
Unfortunately the library doesn’t support CocoaPods (if you’re from the future and that changed some time ago, let me know on Twitter), but it does support Carthage. You can also simply download the project from GitHub and add it to your workspace.
Carthage:
github “raulriera/TextFieldEffects”
GitHub
7. GPUImage
Have you ever created a camera app? If you don’t, you will by the end of this library.
Possibility GPUImage
GPUImage provides us with a GPU-accelerated camera effect (both images and video) that burns like wildfire. There are hundreds of apps in the App Store that use this library — one of them is mine:
GPUImage used in one of my apps
GitHub has 8,869 favorites and counting.
CocoaPods:
pod ‘GPUImage’
GitHub
8. iRate
What’s the best way to get more reviews on the App Store? I don’t have definitive data to answer this question, but if I had to guess, I’d say simply ask users. Maybe it’s an old-fashioned approach — most developers now create custom in-app reminders — but if you don’t have the time or don’t want to do everything from scratch, using iRate is better than not. And this is iRate — a little library that you included in your project and forgot to ask users to comment on — and iRate will do it for you automatically, at the right time.
CocoaPods:
pod ‘iRate’
GitHub
9. GameCenterManager
Managing Game Center in the case of liking or hating a person is easy, with a little help from our most famous anti-pattern (You only have Game Center, right?).
To be honest, managing Game Center on iOS isn’t that difficult, but using this library is simple and fast. Better is the enemy of good.
I used it in one of my games, and it was an enjoyable experience.
CocoaPods:
pod ‘GameCenterManager’
GitHub
10. PKRevealController 2
This is a real gem and one of my favorite iOS controls. PKRevealController is a slideable sidebar (left, right, or both) that you swipe with your finger (or just click a button, but that’s not as cool as swiping).
I’ve used a few other libraries that provide this kind of space, and PKRevealController is the best. It’s easy to set up, highly customizable, and gesture recognition is very, very good. It can be included in the iOS SDK as a standard space, really.
CocoaPods:
pod ‘PKRevealController’
GitHub
11. SlackTextViewController
Have you ever used the Slack iOS app? If you work for a larger software company, the answer is probably yes. For those of you who don’t — Slack is hard. Slack’s iOS app, too, especially for nice, custom text input controls… The code you have right now — the code you can use in your app!
Self-growing text field? That’s right. Gesture recognition, auto fill, multimedia paste? That’s right. Simple to use? That’s right. What else might you need?
CocoaPods:
pod ‘SlackTextViewController’
GitHub
12. RETableViewManager
RETableViewManager will help you create and manage your table View dynamically, all in code. It provides our pre-defined cells (Boolean, text, date, and so on). — see the screenshot below), you can also create your own custom views to use with the default.
What a cliche!
You can do all this in Storybard without the library’s help, but sometimes the code is simpler than the visual editor.
CocoaPods:
pod ‘RETableViewManager’
GitHub
13. PermissionScope
Useful libraries that lead to a better user experience by prompting users to require system permission before asking them. High acceptability -> more user activity using the app-> better retention -> Better data -> more downloads. Highly recommended POD.
CocoaPods:
pod ‘PermissionScope’
GitHub
14. SVProgressHUD
The image is loading correctly without waiting long or needing a page refresh. This is what SVProgressHUD looks like in your app. If you need custom waiting instructions, here’s one (and probably the best).
CocoaPods:
pod ‘SVProgressHUD’
GitHub
15. FontAwesomeKit
Font Awesome is cool, and with this library you can easily add fonts to your projects and use it in a variety of ways.
CocoaPods:
pod ‘FontAwesomeKit’
GitHub
16. SnapKit
Like Auto Layout? You should be!
At least when it’s created in storyboard.
Creating constraints with code is painful, if not helpful, but fortunately SnapKit is here and you can easily write your constraints declarations using it. Take a look.
CocoaPods:
pod ‘SnapKit’
GitHub
17. MGSwipeTableCell
Another UI component that is common in many apps that Apple should consider adding to the iOS standard library. Sliding table cell is the best description of this POD. The best one.
These are just three animation categories, and there are many more. Explore the readme file.
CocoaPods:
pod ‘MGSwipeTableCell’
GitHub
18. Quick
Unit tests in Swift, for Swift (ok, for Objective-C), and Xcode. If you’re an Objective-C fan, I’d recommend Specta over this, but it’s probably the best for Swift Quick.
CocoaPods:
pod ‘Quick’
GitHub
19. IAPHelper
In-app purchases give us a lot of cliched code that is not needed with this library, which simply wraps the most common tasks related to trading money from iOS users to your (or your company’s) wallet.
CocoaPods:
pod ‘IAPHelper’
GitHub
20. ReactiveCocoa
Well, here we have a little monster.
ReactiveCocoa is not a small, easy-to-use project, just like the others on this list. ReactiveCocoa brings us a completely different approach to programming/architecture, value-based signals and flows. This is complete brainstorming, and first you need to forget what you’ve learned to understand how it works. It’s not an easy task, but it can be rewarding.
This is not the right place to teach you how to use ReactiveCocoa, but I’ll give you some good resources if you’re interested.
Getting Started with ReactiveCocoa
ReactiveCocoa
ReactiveCocoa Tutorial – The Definitive Introduction: Part 1/2
CocoaPods:
pod ‘ReactiveCocoa’
GitHub
21. SwiftyJSON
Make JSON parsing in Swift easier.
CocoaPods:
pod ‘SwiftyJSON’
GitHub
22. Spring
Animation is easier, chaining, and declarative.
CocoaPods:
pod ‘Spring’
GitHub
23. FontBlaster
It’s easier to load custom fonts into your app.
CocoaPods:
pod ‘FontBlaster’
GitHub
24. TAPromotee
Cross-marketing your apps is one of the best sales strategies, and you can do it in them for free. Using this library is so easy that you can no longer justify not using it – add TAPromotee to your Podfile, configure it, and enjoy more downloads for free.
CocoaPods:
pod ‘TAPromotee’
GitHub
25. Concorde
Load a lot of JPeGs in your app? You can load better with Concorde. A schedule approach.
CocoaPods:
pod ‘Concorde’
GitHub
26. KeychainAccess
Manage key string permissions of the small helper library.
CocoaPods:
pod ‘KeychainAccess’
GitHub
27. iOS-charts
Last but not least — the iOS chart library! It’s simple and effective, and I won’t write too much here — scroll down to see what you can do with it in your app.
Yes, everything is available as a drop-in (ok, maybe “writable”) component.
Unfortunately, CocoaPods support is not currently available, so you’ll need to manually drag projects into your Xcode workspace.
Too long list of all libraries to look at for quick access:
1. DZNEmptyDataSet [UI, empty table View solution]
2. PDTSimpleCalendar [UI, can be put into the calendar component]
3. MagicalRecord [Core Data helper to implement active record mode]
4. Chameleon [UI, color Frame]
5. Alamofire [Swift Network]
6. Textfield ects [UI, custom appearance text fields]
7. GPUImage [fast image processing]
8. IRate [get user reviews]
9. GameCenterManager [Easy to Manage GameCenter]
10. PKRevealController [UI, sliding sidebar]
11. SlackTextViewController [UI, highly customized text field]
12. RETableViewManager [create table view dynamically with code]
13. PermissionScope [UI, subtly asking the user for system permission in advance]
14. SVProgressHUD [UI, custom waiting chrysanthemum]
15. FontAwesomeKit [Easily add cool fonts to your app]
16. SnapKit [Easy Auto Layout with code]
17. MGSwipeTableCell [UI, swipeTablecell table View cells]
18. Quick [Swift Unit Testing framework]
19. IAPHelper [In-app Purchase Packaging Helper]
20. ReactiveCocoa [FRP frame]
21. SwiftyJSON [Swift JSON library]
22. Spring [animation framework]
23. FontBlaster [Easily load custom fonts in app]
24. TAPromotee [Cross prompt in your app, insert interface]
25. Concorde [Download and decode schedule JPEGs]
26. KeychainAccess
27. IOS – Charts [Beautiful Charts]
Thanks for reading, what a long list! If you think creating something is valuable, please share it by clicking the Share button at the bottom of this post – more people will benefit from it. And if you’re a Meduim user, click the recommend button — it’ll inspire me to create more iOS development articles!
One More Thing — If you’re reading this, chances are you’re an iOS developer. A lot of iOS developers are iPhone users too — so I have something you might be interested in.
I run a weekly hand-pick of the best iOS apps and games — see, I care about quality and only pick cool apps. Connections would be cool too!
You can also follow me on Twitter where I most often talk about iOS development.