Useful iOS resources

Its been quite some time since I began native iOS development and here's a post with my advice about some of the most useful resources for iOS developers.

  1. CocoaPods: The first on my list is a wonderful dependency management library for Objective-C Projects (like Apache Maven if you are coming from the Java world). With CocoaPods setup for the project, all you need to do to use other libraries is to write them in the [cci]Podfile[/cci] and do [cci]pod install[/cci]. All you need to do now is include the files and write code.
  2. CocoaLumberjack: CoocaLumberjack is logging system for iOS apps. I have found it to be one of the most useful frameworks out there, its fast, its easy to configure and its been actively developed. Bonus points for integrating it with XCodeColors to see coloured logs in your console.
  3. AFNetworking: This is the one library that you will see in all such posts talking about resources for iOS developers. Why? Well, its really well designed, maintained and has a huge community of developers who have been using and contributing to it. If you want to handle network requests in your apps, you will not regret using this.
  4. RestKit: This makes interacting with Rest services really easy and has a powerful object mapping system. RestKit's primary goal is to allow the developer to think more in terms of their application's data model and worry less about the details of sending requests, parsing responses, and building representations of remote resources.
  5. MBProgressHUD: Again, one of the must use libraries. Provides beautiful HUDs and is really simple to integrate in the app.
  6. Subtle Patterns: Subtle Patterns is a high quality (free) resource for tilable texture patterns. These patterns look really great on the iPhone and most of the patterns are usually optimized for retina display as well.
  7. SDWebImage: Provides [cci]UIImageView[/cci] category for easily loading remote images from url. Really useful if you want to network images in your app.
  8. TPKeyboardAvoiding: Provides UIViewController subclass that makes it easy to scroll your views to prevent them being hidden by the on screen keyboard.
  9. GPUImage: This is more of a domain specific library, but is a must use if you find yourself trying to play with images, live camera feed or videos. It uses GPU where possible to perform image processing operations and makes it really easy to write custom OpenGL ES filters.
  10. TestFlight and Diawi: These are two services that are very useful when you want to have beta testers for your app or want to let others on the team give a packaged version of the app that they can run on their devices. I usually prefer Diawi (for no specific reason though).
  11. Cocoa Controls: A great resource to explore and search custom UI controls for iOS and Mac. I always search for available controls here before trying to make one. More often than not, I find something open sourced that I can just use/extend as per my needs.

Discussion on Reddit and Hacker News.

Published 5 May 2013

I build mobile and web applications. Full Stack, Rails, React, Typescript, Kotlin, Swift
Pulkit Goyal on Twitter