If you’re reading this article, chances are you’re already familiar with CocoaPods. If you’re wondering what the heck a CocoaPod is, simply put, it is the dependency manager for Swift and Objective-C Cocoa projects. CocoaPods provides a plethora of libraries that can help you with your Cocoa projects.
With thousands of libraries at your disposal, it can be hard to choose which one will best suit your needs. In our company, we have certain libraries that we utilize more often than others due to their quality and ease of use. Let’s explore some of these libraries/tools, with their pros and cons.
AFNetworking is networking library for iOS and Mac OS X. With contributions by developers, AFNetworking is constantly evolving to great results. It’s a popular library among developers because its ease of use.
Pros: Detailed documentation that is constantly updated and is the power behind many popular iOS apps.
Cons: You must be familiar with CocoaPods or at least have the patience to learn them to use AFNetworking to its full potential. Using NSURLConnection can cause some headaches, particularly in regards to the caching mechanism.
What Are 1000 Apps Doing to Reduce Their Bugs to Zero?
Down to Zero is a practical guide to solving bugs. Our team has been developing mobile apps for over a decade and we'd like to share some tips we've picked up along the way.
Firebase Crashlytics is a powerful yet lightweight tool in crash reporting for both iOS and Android developers.
Pros: It’s easy to integrate with CocoaPods. It’s free to use and has great UI.
Cons: Many developers have been complaining about unsent crash reports and general inconsistency. You might also encounter some issues when using Xcode debugger, because it does not allow Crashlytics to send crash reports.
Haneke is a zero-config image cache that’s popular among iOS developers. It’s lightweight, powerful and allows developers to use both Objective-C and now Swift.
Pros: Haneke’s winning trait is its easy usability, especially its fast and responsive scrolling. This is due to the fact that processes are done in background. Loading, resizing, caching and displaying appropriately-sized images is simple with Haneke.
Cons: Developers have cited at least 21 errors and feature requests since last year, which is not bad, but it can be quite annoying when you’re running a simple test and get a “Failed to write file” error.
Motis is used to map key-values stored in dictionaries into themselves and is used in conjunction with NSObjects tools. Motis is known for its sleek easy to use interface with Key Value Coding. Motis essentially validates your object types and makes your objects responsible for each mapping.
Pros: User-friendly interface. Validates object types for you.
Cons: Some developers have complained about low performance when your JSON data is more than 8mb with a combination of multiple custom objects. It can also be problematic if you have no control over you JSON dictionaries.
Bugfender is a brand new service that enables devices to log to remote servers when needed. Bugfender allows developers to control which devices must and must not send logs from the server side.
Pros: You will also be able to read all of the received logs for each specific device. Another great feature of Bugfender is that it can store extra information as the date of the log, the filed where the log happened, as well as the number of the line or the name of the method. This allows for a streamlined work process, which makes things easier for developers.
Cons: Hey, we can’t see any! ;)
MBProgressHUD is an iOS drop-in class that displays a translucent HUD with an indicator and/or labels while work is being done in a background thread.
Pros: Sleek UI and the work is done in the background.
Cons: Users have reported frequent crashes and issues with navigation controller commands.
SVProgressHUD is an easy-to-use, clean and lightweight progress HUD for iOS. It’s a simplified and prettified alternative to the popular MBProgressHUD.
Pros: It’s a simple and straightforward progress HUD.
Cons: Users have reported that using Swift could lead to issues when instantiating a custom location class in an app. Some developers have also complained about the interface design.