NEW: Start my new Ultimate Portfolio App course with a free Hacking with Swift+ trial! >>

Must have Pods 📦 | Libraries📚?

Forums > iOS

Which libraries you cannot go without? Here is a list of some i use almost always. If you have a workaround, post it! I would love to be pods free if possible 😎

Alamofire - https://cocoapods.org/pods/Alamofire
Alamofire is still present everywhere. Tried writing my own networking library but it was never as snapy and didn't cover everything for all cases.

IQKeyboardMAnagerSwift - https://cocoapods.org/pods/IQKeyboardManagerSwift
This gem works wonders if you have lots of forms and need to get the keyboard out of the way. With 2-3 lines you are safe in the whole project. Eventhough it is manageable to do it yourself. Paul already has some posts regarding that but you need to place notifications yourself on each VC so if there are lots of forms all over the app, this library is a must for me.

SwiftDate - https://cocoapods.org/pods/SwiftDate
Sure, you can manage dates most of the time. But in some cases it can get so convoluted its insane. Also, it can extract whatever you need with just a few lines of code. So when playing with dates i like to have this one ready.

KingFisher - https://cocoapods.org/pods/Kingfisher
KingFisher is one of the lightweight good ones which can be avoided, but so far i love it. I wrote some of my own cashing stuff and seems to work ok, but still use it from time to time.

These are some of the main ones. Of course i am not counting FB SDK and others as for those you have no choice. Also, ReactiveKit and Bond are kind of a must for MVVM so didn't include those. :) Any fancy ones out there you know about?

3      

Nuke - https://github.com/kean/Nuke

Can't mention KingFisher without also mentioning Nuke. Alexander is one of the most performance obsessed Swift developers out there and it shows in Nuke. From my own testing, Nuke is significantly faster when it comes to main thread performance over Kingfisher. The aggresive disk caching is also a huge plus when using image urls that you know can be cached indefinitely.

3      

Realm is my go to for data storage. https://cocoapods.org/pods/Realm though I am getting back in to Core Data hoping that Cloud Sync will be better.

   

One of my favourites is Swinject - (https://github.com/Swinject/Swinject): Easy to use dependency injection framework

   

I tend to avoid pods for the moment, want to focus on pure swift/cocoa for now... doing everything yourself is the best way to learn in my opnion ..

4      

Haptica - https://github.com/efremidze/Haptica

Makes using Haptic Feadback easier, for example:

Haptic.impact(.light).generate()

2      

Right now I'm with @Gakkienl. I am early enough in my Swift/SwiftUI learning that I try to write everything myself. If I had a Swift(UI) job, I would be a lot more pragmatic about this.

Thanks for sharing, everyone!

   

Mostly, libraries are made to be generic and add more than you actually use. I aim to rely as little as possible on dependencies and attempt to do as much as I can myself.

If I do need to introduce a dependency, I prefer small, single file, minimal libraries.

But that's me. Do what works for you!

2      

@FaroukZeino Gotta checkout Haptica! I am planing to play a bit with haptics soon and if i do some more complex stuff i might need a helping hand :)

@oreninit True, writing everything yourself is always best, but if all else fails or you need some help, they sure come in handy :)

   

Hacking with Swift is sponsored by RevenueCat

SPONSORED Building and maintaining in-app subscription infrastructure is hard. Luckily there's a better way. With RevenueCat, you can implement subscriptions for your app in hours, not months, so you can get back to building your app.

Try it for free

Sponsor Hacking with Swift and reach the world's largest Swift community!

Reply to this topic…

You need to create an account or log in to reply.

All interactions here are governed by our code of conduct.

 
Unknown user

You are not logged in

Log in or create account
 

Link copied to your pasteboard.