Frame geometry macros to improve your UIKit code
I find myself doing more and more dynamic UI layout in iOS apps these days. When elements of a UI need to resize to fit their contents, or move to accommodate other elements, the layout code can get complex and verbose. We’ve developed a set of Objective-C UIKit macros that help make this code more […]
GSM 0338 encoding for SMS
Here’s a little Objective-C helper class we wrote to make it easier to convert NSString’s to GSM 03.38 encoding on the iPhone, iPad, or Mac: Handles stripping out characters not included in the GSM0338 character set Calculates the length of a GSM 0338 string (e.g. ^,[,|,etc each require 14 bits instead of 7 Gives you […]

Kickstart your apps with the iOS Xcode Starter Project
We created the iOS Xcode Starter Project to make it quick and easy to start a new iPhone or iPad app. Our goal was to create a template to save the hours of effort it takes on a new project configuring essential open source libraries, the unit and functional testing environments, analytics, multiple targets, multiple […]

Slim down your iOS app by excluding files from production builds
If you use additional files or libraries during development like HockeyKit or TestFlight you’ll want to exclude those in your production app store builds. Likewise, if you have an iPad and iPhone app that share the same Xcode project but are published under separate app IDs, this technique is handy for excluding iPad assets from […]
Symbolicating (mostly) fixed in Xcode 4.1
I previously posted why Xcode 4’s symbolication is broken, along with a patched script that fixes it. As of Xcode 4.1, Apple has fixed the problems in the symbolicatecrash script, though I’ve found that it still often does not symbolicate correctly. Here are the most common problems (and solutions) I’ve come across:
Empty or incorrect URL with webViewDidStartLoad
If you’re using a UIWebView in your iPhone or iPad app and you want to execute some code when a page starts loading you’ll likely turn to the webViewDidStartLoad: method in UIWebViewDelegate. However, you may have surprisingly unpredictable results. For example, the following code won’t work as expected: – (void)webViewDidStartLoad:(UIWebView *)webView { if […]
Adding Unit Tests to an existing iOS project with Xcode 4
When you build a new iPhone or iPad app from scratch, you can generate a new project with tests using Xcode’s project templates, and the test dependency is set up correctly. However, if you add a unit test target to an existing iOS project, there are some manual steps required to set up the target […]