Working with multiple architectures & compiled binaries

When working with iOS apps (or really anything within Apple's ecosystem) I've sometimes found the need to deeply introspect the libraries and executables built in my project to answer questions like "Is bitcode enabled for all architectures?" or "Which architectures was this binary compiled for", and so forth. These aren't easy questions to answer unless … Continue reading Working with multiple architectures & compiled binaries

LLVM Module Maps to the rescue!

I recently wrote about Cocoa / Cocoa Touch frameworks, and in writing about it I was sorely tempted to dive into Modules, since they are pretty important to modern frameworks. But it was such a huge topic, I decided to break it out into a separate post. In a nutshell, LLVM Module Maps were invented … Continue reading LLVM Module Maps to the rescue!

My App Store release checklist

For the longest time it seemed that releasing an update to an iOS app was a random whack-a-mole process that I'd invariably get wrong in some way.  It was maddening, especially since iTunes Connect has only recently become a decent web application.  By switching to Jenkins for continuous integration of my iOS app builds I've … Continue reading My App Store release checklist

Logging with CocoaLumberjack and TestFlight

Consider the following situation that happens far too often in mobile app development: You've just released an app that works perfectly for you, and you've tested it extensively. You're proud of your accomplishments and submit the app to the world, only to have several emails sent to you from users who have nothing but difficulties … Continue reading Logging with CocoaLumberjack and TestFlight

Docset Viewer v1.2 and how to customize iCloud backups

I've recently released version 1.2 of Docset Viewer, which fixes a number of bugs people experienced with the previous version. If you had problems with the previous release, please give this one a try. One of the improvements I've added is the ability to customize whether or not you would like to back up your … Continue reading Docset Viewer v1.2 and how to customize iCloud backups

Docset Viewer: Resuming large downloads with NSURLConnection

As I've shown in my previous post announcing Docset Viewer, I want this series of posts to be more than me talking about my new app. In keeping with the instructional nature of my site, I'm going to show you a few things that I did in my new app Docset Viewer and how I … Continue reading Docset Viewer: Resuming large downloads with NSURLConnection

Announcing Docset Viewer v1.1 for iPad and iPhone

Over the years my blog has transformed from the usual "Wordy geek ranting about first-world problems" content toward more educational and informative posts on what I do for a living: developing awesome iOS applications. I don't usually talk about the actual applications I'm writing though, since most of my work is on other people's apps … Continue reading Announcing Docset Viewer v1.1 for iPad and iPhone

Core Graphics isn’t scary, honest!

For anyone who's developed exclusively with UIViews on iOS may take the title of this post a bit oddly. "WHAT?!" they might say, "Are you insane? Core Graphics is not only a C-only API, but has confusing function names, and needs way more code to do the same thing I can do in less code … Continue reading Core Graphics isn’t scary, honest!

Building a static library with Jenkins

One of my pet peeves is Open Source iOS libraries distributed as just a collection of Objective-C classes, rather than being bundled as a static library. I know a lot of people prefer it that way, but from a maintainability standpoint it really doesn't make much sense to me. So when I'm faced with another … Continue reading Building a static library with Jenkins