Skip to content

iOS UI Libraries We Love

5 third-party libraries we use all the time

by Andrew Harrison
An illustration of two people sitting at a table in a library

We may be experts at writing apps here at Lickability, but we also know that a lot of really smart people are out there providing excellent reusable software, and we think it would be silly not to rely on their outstanding work. Here are some of our favorite third-party libraries we use to take our apps to the next level.

Pow

Animation is challenging—even more so when it’s outside the scope of first-party libraries. That’s why we love Pow and end up using it in most of the apps we develop. Pow provides an easy-to-use API for a wide variety of customizable and interoperable animations. Imagine trying to build the animation below from scratch by yourself:

A gif of a gray heart icon turning red, jumping up and wiggling, and spraying a bunch of smaller heart particles when tapped.

Using just three lines of code with Pow, it’s incredibly simple to make this heart spray, jump, and wiggle!

Swift
.changeEffect(.spray { heart.foregroundStyle(Color.red) }, value: likes, isEnabled: isLiked)
.changeEffect(.jump(height: 44), value: likes, isEnabled: isLiked)
.changeEffect(.wiggle, value: likes, isEnabled: isLiked)

PhoneNumberKit

Almost every app that has you make an account deals with phone numbers, and they can get complex. Fortunately, PhoneNumberKit has your back and makes it easy to handle formatting and international localization with built-in country codes and flags. You can either use a completely custom text entry and use their utility functions to format the entry correctly, or use their built-in Phone​Number​Text​Field that handles it all. There’s no need to become an expert on how phone numbers work when they’ve already done the work for you.

Pulse

At a certain point of complexity, it can be challenging to figure out “what is the app doing right now?”—especially for networking. Pulse is a wonderful tool not only for capturing what’s happening with your URL​Session requests but also for displaying it in an easy-to-understand way right in the app itself. This lets you dive into a problem immediately when it’s occurring, rather than having to work through console logs that may or may not exist yet. It’s also wonderful when a tester or product owner encounters a problem on their device because Pulse makes it easy to share those logs as well.

A screenshot of the Pulse Mac app showing logs collected using the Pulse SDK, with an iPhone mockup of the Pulse Console integrated into a mobile app.

Credit: Pulse

The interface they provide out of the box is easy to understand, and makes it so much faster to track down what went wrong and when. You can even add your own custom logs that can be displayed intermixed with your network logs, to track down particularly challenging issues.

WhatsNewKit

Sometimes you just have to tell your users what a great job you’ve been doing on the app they love. WhatsNewKit makes it easy to display this information quickly and informatively, while still providing a great deal of customization. It also includes a built-in versioning system to make sure you’re displaying the correct information to the user for the current version of the app.

An iPhone mockup showing an example of WhatsNewKit

Credit: WhatsNewKit

With WhatsNewKit, you can focus on building new features instead of spending all that time figuring out how to tell users about them.

AcknowList

Last but certainly not least, here’s a tool for acknowledging the creators who have helped you make the app you wanted to. It’s important to give credit to our helpful third-party developers, and AcknowList helps you do just that by providing an easy way of displaying all those dependencies. Once it’s set up, it will automatically keep itself up to date as well, so you’ll never have to worry about it again.

Three iPhone mockups showing examples of AcknowList in an app

Credit: AcknowList

AcknowList has an easy-to-use API for both UIKit and SwiftUI, so you only have to spend a few minutes to acknowledge the hundreds of hours these wonderful humans have saved you.