As an experienced developer, the thought must have crossed your mind at least once that “someone’s already done this”. Have you ever found yourself dealing with tasks that aren’t related to your mobile app’s core capabilities? At first, some of these tasks may appear to be simple and straightforward, like the basic task of validating email address field input. However, you might end up spending a few good hours or even days without reaching a complete solution. As mobile developers and as developers in general, we understand that, which is why our routine involves researching and testing open source packages. A great example of which is the popular CocoaPods
. In this post, I'd like to share several open source packages with you that both we, at CloudBees Feature Management.io, and our customers use.
Accessing a remote iOS API is a lot of work, with too many configuration options. Imagine leveraging Foursquare APIs to retrieve a list of restaurants near a user’s current location. AFNetworking is a networking library for iOS and Mac OS X that handles API connections. It’s like wrapping the iOS API with remote easy-to-use URL address access. The latest version of AFNetworking (2.0) is built on top of apple’s NSURLSession and supports rich capabilities such as built-in support of SSL pinning, reachability support and UIKit integration. Check out this tutorial for more information. FYI the famous NShipster, Mattt Thompson
, is the creator of AFNetworking.
Writing your own logging system is an arduous task. As your product grows, more logs need to be maintained and more complex logging solutions are needed. Apple only provides a basic system called NSLog, as mentioned in our previous post
. If it’s the flexibility and the robustness that you’re looking for, CocoaLumberjack is the tool you need.
MBProgressHUD is a small, objective-C library that handles loading mechanisms and provides a user interface when switching between screens on iOS apps. This solution is a great option when you'd like to create messages that communicate to your users that a page is loading, without incorporating them into your core product.
Leveraging GPU instead of CPU. GPUImage is a great third party library for image and video processing. When rendering a video, GPU can process 60FPS (frames per second) while CPU can only handle 4FPS. From a brightness filter all the way to edge detection, GPUImage lets you apply a large amount of GPU-accelerated filters and manipulations on images and videos.
We all know the “rate me” prompt message. If you want your users to give your application five stars, iRate will help. You can check out Appirater as well, but iRate has a cleaner interface and automatic support for iOS fast app switching. You can also check out Polljoy
, which provides richer customization options.
RestKit, which is built on top of AFNetworking, is a library that interacts with a RESTful API. RestKit allows you to map received data to your data model. It also has a powerful wrapper for Core Data, which isn't offered in AFNetworking.
Converting raw data into readable information can be a very complex task. FormatterKit uses NSFormatter subclasses and adds capabilities that are not supported by the built-in classes. For example, FormatterKit allows you to format a displayed address according to the user’s location. So if your user’s location happens to be Japan, the address that is displayed will start with a zip code, whereas a user in the US will see a street name. Check out this tutorial for more information
. The last thing you want to do is start fighting by yourself with address location. ---
There must be hundreds of open source packages and tools that can make your mobile app more robust and development efficient and fast. Feel free to leave a comment in case you have or use one that should not be missed. Additionally, I welcome you to check out our list of tools that can enhance visibility and debugging capabilities for your mobile app.