Developers spend a lot of their precious time creating something so amazing and then share it with others without asking for anything in return. Open source authors and contributors, really impressive!!

This article highlights some of the iOS open source libraries. Most libraries support CocoaPods, so it’s easy to add them to your XCode projects.

Here are 27 iOS open source libraries to help your development take off

1. DZNEmptyDataSet

Blank prompt (improve user experience)

This is a standard built into iOS for dealing with empty tables and collection views. By default, if your table view is empty, nothing is displayed on the screen. It’s not the best user experience.

With this library, you just need a few protocols, and iOS will do a good job of handling the collection view and displaying user information reasonably well. You don’t have to worry about every iOS project.

CocoaPods:

pod 'DZNEmptyDataSet'
Copy the code

Github address: github.com/dzenbot/DZN…

2. PDTSimpleCalendar

📅 calendar

Does your app need a nice calendar component? There you have it – PDTSimpleCalendar is arguably the best iOS calendar component. You can define it in a number of ways, including working logic and visuals.

CocoaPods:

pod 'PDTSimpleCalendar'
Copy the code

Github address: github.com/jivesoftwar…

3. MagicalRecord

The database

Some people say Core Data is easy. Others say it is not only simple but also beautiful. Oh, come on, apples? It’s not very elegant and simple to add so much wrapper code to a project, let alone add, remove, and update so many entities, save context, create different Core Data stacks for different environments, and so on. I love Core Data, of course, but Apple really needs to simplify it in a better way — MagicalRecord.

MagicalRecord is like a wrapper around Core Data, hiding everything that isn’t relevant to the developer. If you’ve ever used the dynamic recording pattern (Ruby on Rails, for example, is useful), this is for you. If you use Core Data in your application, I really, really recommend this library.

CocoaPods:

pod 'MagicalRecord'
Copy the code

Github address: github.com/magicalpand…

4. Chameleon

Color frame

If you’re reading this, you’re probably a better programmer than a designer. And this is for you.

Chameleon is an iOS color framework. It expands UIColor with beautiful, modern flat style colors. It also allows us to create palettes from colors defined by ourselves. Read Readme and you’ll see that it can do a lot of other things as well. If you want a beautiful application, definitely add this library to your code project.

CocoaPods:

pod 'ChameleonFramework'
Copy the code

Github address: github.com/ViccAlexand…

5. Alamofire

Swift network library

Alamofire is a beautiful web library written on Swift. Have you ever used AFNetwork? Alamofire is its sister, but Alamofire is newer and more stylish, of course (AFNetwork is written in Objective-C).

Do you need to do some web stuff, like download, upload, get JSONs, etc? Alamofire is ready for you. The 8,000 people on GitHub can’t be wrong.

CocoaPods:

pod 'Alamofire'
Copy the code

Github address: github.com/Alamofire/A…

6. TextFieldEffects

UIT text domain optimization

Do you find the standard UIT text field a little boring? I feel the same way – let’s say hello to Textfield Ffects! I won’t write too much, just to show you some examples of what this library can do:

Yes, these are simple pull-down insert keys. You can even take advantage of IBDesignables in your scripts!

CocoaPods:

pod 'TextFieldEffects'
Copy the code

Carthage: A decentralized Cocoa dependency manager

github "raulriera/TextFieldEffects"
Copy the code

Github address: github.com/raulriera/T…

7. GPUImage

Released over BSD, it can use GPU-accelerated filters and other effects on images, live camera images and video.

Have you ever built a camera APP? If not, you are sure to come across this library soon.

GPUImage provides us with gPU-accelerated camera preview effects (including images and videos) that are extremely fast. Hundreds of apps on the App Store already use this library — one of them uses it:

One of my apps uses GPUImage.

8869 stars on GitHub and still counting. There are 8,869 stars on GitHub and counting.

CocoaPods:

pod 'GPUImage'
Copy the code

Github address: github.com/BradLarson/… (GPUImage: an open source GPU-based image and video processing framework on iOS)

8. iRate

Get more comments from users

What’s the best way to get more reviews on the App Store? I don’t have actual data to answer this question, but if I had to guess, I’d say just ask the user. Maybe this is the old-fashioned way — most developers now create custom App prompt Windows — but if you don’t have the time or you don’t want to start from scratch, it’s better to use iRate than not. IRate is like this: a small library that you can include in your project and don’t have to worry about asking for user reviews — iRate will automate this when appropriate.

CocoaPods:

pod 'iRate'
Copy the code

Github address: github.com/nicklockwoo… (iRate: an easy-to-use library for urging users to download and use your app from iPhone and Mac App Stores to recommend you.)

9. GameCenterManager

A game center that helps manage iOS and Mac apps. Report and record high scores, achievements and different players.

Whether you love or hate single examples, managing Game Center with the most familiar anti-pattern here is pretty simple (you only have one Game Center in your Game, right?).

To be honest, Vanilla – Managing Game Center on iOS is not that difficult, but using this library is much easier and faster. A better experience.

I’m using it on one of my game projects and it’s a great experience.

CocoaPods:

pod 'GameCenterManager'
Copy the code

Github address: github.com/nihalahmed/…

10. PKRevealController

Sideslip: left and right drawer effect ⭐️

This is one of my favorite iOS controls. It’s like a gem. PKRevealController is a menu that slides sideways (left, right, or all at once) depending on your usage habits (or just through a button, but it doesn’t look as Cool as sliding).

I’ve tried a number of other libraries with similar features, but PKRevealController strikes me as the best, with very simple setup, high degree of customization, and gesture recognition. This could really be included in the iOS SDK as a standard library.

CocoaPods:

pod 'PKRevealController'
Copy the code

Github address: github.com/pkluz/PKRev…

11. SlackTextViewController

Slack is chat groups, massive tool integration, file consolidation and unified search.

By the end of 2014, Slack had integrated email, SMS, Google Drives, Twitter, Trello, Asana, GitHub and more than 65 other tools and services, bringing together disparate corporate communications and collaboration.

An introduction to Slack

Have you ever used the Slack iOS App? If you work for a large software company, the answer is probably yes. But some people have yet to get to Slack. Slack’s iOS App is very powerful, especially with its custom text entry controls… Here’s a code you can use in your APP!

Need to grow text area automatically? Validation. Need gesture recognition, autocomplete, multimedia paste? Validation. Need easy solution integration? Validation. What other features might you need?

CocoaPods:

pod 'SlackTextViewController'
Copy the code

Github address: github.com/slackhq/Sla…

12. RETableViewManager

Content management using data-driven UITableView.

RETableViewManager will help you create and manage table views on the fly, automatically generating control code. It gives us predefined cells (for bools, text, dates, etc. – see the screenshot below), but you can also create custom views and support using them with the default views.

All of these elements, you can implement in storyboard without using this library. But sometimes simple code is better than a visual editor.

CocoaPods:

pod 'RETableViewManager'
Copy the code

Github address: github.com/romaonthego…

13, PermissionScope

Permission scope

PermissionScope is a Swift framework that intelligently requests user rights. It includes not only a simple license request UI, but also a unified license API to tell you about any request.

The library provides a better user experience by notifying users about required system permissions before requesting them. Higher adoption -> more active users using the app-> Better feedback -> Better status -> more downloads. Highly recommended POD.

CocoaPods:

pod 'PermissionScope'
Copy the code

Github address: github.com/nickoneill/…

14, SVProgressHUD

“Chrysanthemum turn” progress improvement box

MBProgressHUD is recommended

This image shows the normal download without having to wait longer or refresh the page. So that’s what SVProgressHUD looks like in your app. If you need to customize the wait cues, here’s an example (which might be appropriate).

CocoaPods:

pod 'SVProgressHUD'
Copy the code

Github address: github.com/SVProgressH…

15. FontAwesomeKit

Add the font

Font Awesome is great, and it’s easy to add fonts to your projects, among many other things.

CocoaPods:

pod 'FontAwesomeKit'
Copy the code

Github address: github.com/PrideChung/…

16. SnapKit

Swift automatic layout

Like Auto Layout? It should be! At least when created in StoryBoards.

Creating constraints on code is a pain without help, but fortunately with SnapKit you can easily restrict your code declaratively. Come and see.

CocoaPods:

pod 'SnapKit'
Copy the code

Github address: github.com/SnapKit/Sna…

17. MGSwipeTableCell

UITableView’s erasable table cells

This is another UI module seen in many apps that Apple should probably consider incorporating into the standard iOS SDK. Swipeable Table cell is the best description of this product. The best one.

These are just three animation types, but for more, check out Readme.

CocoaPods:

pod 'MGSwipeTableCell'
Copy the code

Github address: github.com/MortimerGor…

18. Quick

Unit testing: The examination and verification of the smallest testable units in software

An introduction to “unit testing.

Unit tests in Swift, for Swift (ok, Objective-C also works), are integrated with Xcode. If you’re an Objective-C fan, I’d recommend Specta, but for Swift, Quick is probably the best option.

CocoaPods:

pod 'Quick'
Copy the code

Github address: github.com/Quick/Quick

19. IAPHelper

Apple iOS App Purchase Assistant (Pay)

This library simply encapsulates a number of common tasks to get rid of boilerplate code that comes with in-app payments. Its encapsulation features are all about getting iOS users’ money to your (or your company’s) wallet. CocoaPods:

pod 'IAPHelper'
Copy the code

Github address: github.com/saturngod/I…

20. ReactiveCocoa

ReactiveCocoa provides many methods for handling events, and it is very convenient to use RAC to handle events. It is very convenient to manage things together with the code for listening things, so that we do not need to jump into the corresponding method. It fits well with the “high aggregation, low coupling” philosophy of our development.

All right, here’s a little monster.

Unlike the other items in this list, ReactiveCocoa is not small and is not embedded in the project. ReactiveCocoa brings us different programming styles/architectures based on signals and data flows. It feels amazing, but you have to forget everything you’ve learned before to understand how it works. It’s not an easy task, but it’s worth it.

It’s not a good place to teach you ReactiveCocoa, but if you’re interested I’ll give you a great resource: CocoaPods:

pod 'ReactiveCocoa'
Copy the code

Github address: github.com/ReactiveCoc…

21. SwiftyJSON

Json parsing of Swfit

Makes JSON parsing in Swift much easier.

CocoaPods:

pod 'SwiftyJSON'
Copy the code

Github address: github.com/SwiftyJSON/…

22. Spring

animation

Makes animation easy, expressive, and linkable.

CocoaPods:

pod 'Spring'
Copy the code

Github address: github.com/MengTo/Spri…

23. FontBlaster

The font

Simplify the implementation of custom fonts loaded into the APP.

CocoaPods:

pod 'FontBlaster'
Copy the code

Github address: github.com/ArtSabintse…

24. TAPromotee

It allows you to cross-promote to iOS apps simply by providing an App Store ID. It automatically retrieves APP information through the iTunes API.

This is one of the best marketing strategies for interchanging your APP, and it can be done for free in the APP. With this library, everything is so easy that you’ll be tempted to give it a try – add TAPromotee to your Podfile, configure it, and enjoy more downloads for free.

CocoaPods:

pod 'TAPromotee'
Copy the code

Github address: github.com/JanC/TAProm…

25. Concorde

Image to load

⭐️ Similar recommendation: SDWebImage(caching mechanism)

Do you load a lot of JPeGs in your APP? Concorde is a progressive loading method that allows images to load in a better looking way.

CocoaPods:

pod 'Concorde'
Copy the code

Github address: github.com/contentful-…

26. KeychainAccess

Key string

A Keychain in iOS devices is a secure storage container that can be used to store sensitive information such as user names, passwords, network passwords, and authentication tokens for different applications.

This is a small helper library for managing Keychain access.

CocoaPods:

pod 'KeychainAccess'
Copy the code

Github address: github.com/kishikawaka…

27. iOS-charts

IOS graph library

⭐️ The same type is recommended: PNChart(statistical graph drawing) supports CocoaPods 😁

Last but not least — the iOS Chart library! It’s very practical and elegant, so I don’t need to say too much about it — just scroll down to see what you can do with your app using this project.

Yes, everything can be used as a simple (perhaps called “code embedded”) component.

Unfortunately, CocoaPods isn’t currently supported, so you’ll need to manually drag the project into your Xcode project. Github address: github.com/danielgindi…

Conclusion:

  1. DZNEmptyDataSet [UI, solve empty table display]
  2. PDTSimpleCalendar [UI, drop down calendar component]
  3. MagicalRecord [Core Data assistant that implements active record patterns]
  4. Chameleon [UI, Color Frame]
  5. Alamofire [Swift Networking]
  6. Textfield ects [UI, custom visual text box]
  7. GPUImage [Fast image processing]
  8. IRate [get user votes on levels]
  9. GameCenterManager [Easy to manage User Center]
  10. PKRevealController [UI, slide menu]
  11. SlackTextViewController [UI, highly customizable text box]
  12. RETableViewManager [dynamically creating table views from code]
  13. PermissionScope [UI, request system permissions from the user in advance]
  14. SVProgressHUD [UI, custom wait graph]
  15. FontAwesomeKit [Easy to add FontAwesome to projects]
  16. SnapKit [simply automatic layout in code]
  17. MGSwipeTableCell [UI to make table view cells slidable]
  18. Quick [Swift Unit Testing framework]
  19. IAPHelper [In-app Purchase Assistant]
  20. ReactiveCocoa [FRP frame]
  21. Swift JSON [Swift JSON library]
  22. Spring [animation framework]
  23. FontBlaster [Easy to load custom fonts in your app]
  24. TAPromotee [Promote your app from a drop-down view]
  25. Concorde [display JPEG image while downloading]
  26. KeychainAccess [Password manager]
  27. IOS – Charts [Beautiful Charts Library]

Source: osChina Link: t.cn/RIos6kl

(2016.12.22)

goyohol’s essay