10 Swift Libraries You Should Explore
If you like Swift and want to add some functionality to your apps, consider a library that tackles aspects like reactive programming, JSON conversion, and layout.
Join the DZone community and get the full member experience.Join For Free
Apple’s brainchild, Swift, is the most popular programming language on GitHub and a preferred choice for iPhone app development today. Many iPhone app developers write their app in Swift, and chances are you will as well. So it is important to know which Swift libraries will make the transition smooth for you and help save significant time in writing your app.
There are plenty of Swift libraries available on both GitHub and Bitbucket, and identifying the right one could be like finding a needle in a haystack. So, to make your job simpler, we’ve handpicked the top 10 Swift libraries, as per our experience, that should be highly useful for iPhone application development. Read on to learn more about them below.
#1 Eureka [4,928+ stars on GitHub]
If you want to create dynamic table-view forms in a simple and elegant way, then Eureka is the perfect library to go for. It is flexible and extensible, supports full customization (both general and individual), and uses Swift’s type safety to help avoid mistakes while developing. Eureka could be a real time-saver if your app contains a lot of forms.
#2 RxSwift [7,179+ Stars on GitHub]
RxSwift is a Swift framework for functional reactive programming and a Swift version of Rx. It enables easy composition of data/event streams and asynchronous operations. Delegates, async operations, and KVO observing are all unified under abstraction of sequence, which is one of the biggest reasons why RxSwift is a powerful framework.
#3 SnapKit [8,428+ Stars on GitHub]
SnapKit is an Auto Layout library, which simplifies the process of writing auto layout by allowing for a minimal amount of coding without losing readability. It is type-safe design, which ensures that you don’t make programming errors while coding your user interface.
#4 Spring [9,739+ Stars on GitHub]
Spring simplifies iOS animations in Swift and helps you create animation directly in Storyboard or in code. It supports quite a number of pre-written transitions, animations, and properties. It also enables you to create animations in Storyboard using runtime attributes.
#5 Kingfisher [6,719+ Stars on GitHub]
Kingfisher is a lightweight, pure-Swift library for downloading and caching images from the web. Kingfisher improves your app experience significantly, as the downloaded images are cached in both disk and memory.
#6 RazzleDazzle [2,502+ Stars on GitHub]
RazzleDazzle is a keyframe-based animation framework for iOS, written in Swift. It simplifies adding scrollview-powered animations to the intro of your Swift app.
#7 SCLAlertView-Swift [3,325+ Stars on GitHub]
SCLAlertView is an Animated Alert View written in Swift. You can use SCLAlertView as a UIAlertController or UIAlertView replacement. If you want to support iOS 7.x in any of your Swift projects, SCLAlertView should be an ideal substitution. This is because UIAlertView is deprecated, and UIAlertController only works on iOS 8.x or above.
#8 Presentation [1,852+ Stars on GitHub]
If you’re looking for a simple and easy way to present something on your app, then your search ends with Presentation. It helps you to create release notes, animated pages, and tutorials with minimal effort. Some of the significant features offered by Presentation include custom positioning, slides, contents, backgrounds, and animations. You can use Presentation with Objective-C and Swift, and it works both on the iPhone and iPad.
#9 FaceAware [1,702+ Stars on GitHub]
A common problem during iPhone app development is that the aspect ratios of images you need to work with may not fit well within the confines of your UIImageViews. You can use AspectFill to fit the image to the bounds of a UIImageView without stretching or leaving whitespace. However, there is an issue when it comes to people’s photos: faces could be cropped out if they have not been perfectly centered.
This is where FaceAware proves to be highly useful. It analyzes an image either through UIImageView's image property, or one you set using one of the built-in functions, and focuses in on any faces it can find within. In a nutshell, FaceAware ensures that your user doesn’t need to crop and adjust their profile pictures manually.
#10 ObjectMapper [4,660+ Stars on GitHub]
ObjectMapper is a framework written in Swift that simplifies converting your model objects (structs and classes) to and from JSON. Here is a quick rundown of the features it comes with:
Nested Objects (standalone, in arrays, or in dictionaries)
Mapping objects to JSON
Mapping JSON to objects
Immutable support (currently in beta)
Custom transformations during mapping
So, have you explored any of the libraries mentioned in this article for iPhone app development? Do you think some other library deserves a place in this top 10 list? Leave your comments and questions below.
Opinions expressed by DZone contributors are their own.