I add new third-party libraries to my apps fairly conservatively, as I don’t want to depend on a library where development may stop in the near future, leaving me without any support when I have questions and issues with it. Here are the ones I use regularly – that I’m reasonably confident will continue to be developed and supported for some time.
Do you hate dragging and dropping libraries into your Xcode project? I sure do… I use CocoaPods on every app I develop to solve that problem, as it makes adding other libraries so much easier. CocoaPods also shows me which version of a given library I’m using and makes it easy to upgrade to the latest and greatest (without requiring drag & drop).
Crashlytics goes into every app I build, without question. It’s important to me to know about crashes as soon as they happen, get a stack trace, and be able to track them down. Crashlytics is free, easy to use, and the dashboard has nice features like the ability to add notes and mark crashes as closed. Plus, they send me an email every time a crash happens. And as a bonus, Crashlytics now has some basic analytics built in, so I don’t always need to include a separate analytics tool.
Nearly every app I build has a networking component, and for that, I like AFNetworking for Objective-C, or Alamofire for Swift. NSURLSession is a decent API, and a huge improvement over NSURLConnection, but AFNetworking/Alamofire just make networking so much simpler. If you’re doing networking in iOS, you should be using one of these libraries.
Often, the apps I build need analytics to get a sense of how people are using them. If I were to add analytics to an app now, I’d evaluate Google Analytics, Mixpanel, and Localytics. I’ve always liked Google Analytics (and the fact that it’s free), but I haven’t evaluated Mixpanel yet, and it’s been a while since I looked at Localytics. Flurry is definitely out – I’m maintaining an app that uses Flurry for a client right now, and what I said about it earlier this year still applies – the dashboard is still slow, clunky, and painful to use. It hasn’t had any noticeable improvements in the last 8 months. On the other hand, Google Analytics continues to improve, and I know that some people love Mixpanel.
When adding push notifications to an app, I like Urban Airship. This was an eaiser decision back when Urban Airship was free – now, they doesn’t even list their prices – you have to “CONTACT SALES.” So when I’m building an app for myself or a small client, I probably wouldn’t even consider Urban Airship any more – I’d evaluate Parse and Mixpanel instead, whose prices look reasonable. But for larger clients who can handle the expense, Urban Airship is a great solution.
New Relic’s Mobile App Monitoring has been nice for tracking down performance issues while the app is running in the wild. Their web dashboard provides a good breakdown of which parts of the app are running slowly – it helped us to find out, for example, that Core Data will killing our app’s responsiveness when it was running in our users’ hands.
For 1D barcode scanning, I’ve settled on ZBar. When I evaluated all the barcode scanning options in mid-2013, it came out on top, given the parameters. I was looking for something fast, accurate, and reasonably priced, and it met all of those criteria. The paid options – RedLaser, ShopSavvy, Scandit, Accusoft and VisionSmarts – sometimes scanned more quickly and more accurately, but for us, those minor improvements weren’t worth the price. And ZXing, another open source option, was fairly inaccurate and its documentation was sparse. If you’re adding 1D barcode scanning to your app, consider ZBar as well as AVCaptureMetaDataOutput on iOS 7 and above.
With one of my clients, we recently evaluated charting libraries, and CorePlot came out on top. We wanted to like Jawbone’s JBChartView, but it just didn’t have what we needed. CorePlot gives us the ability to create graphs where we can customize labels, axes, colors, and more as well as tap on points.
Don’t waste your time doing things the hard way…
Stay up to date on the latest and greatest Cocoa Touch frameworks, third-party libraries, and development practices by dropping your name and email in the boxes below. You’ll also get the free 5-Part Guide to Getting Started with Swift where you’ll learn the basics of Swift.