I’m really excited to finally announce what I’ve been working on for the past several months at work: GoComics for iPhone, iPad, and iPod Touch.
Now that it’s released, I can talk (at great lengths) about its development process.
The app started as somewhat of a side-project at work that I had taken on. I’ve wanted to get into mobile app development for a while now, but I’ve never had much of an excuse to do so. So I spun up Xcode one weekend, created a very basic app shell in an afternoon that talked to our brand-new GoComics API, and continued to work on it here and there in my down-time at work for about two months. At that point, I showed it to my boss, and the real project got started: it became my primary focus for the last 8 months (hard to believe it’s been that long). I’ve had an absolute blast working on it.
Native or not?
This was a big talking point for us. A while back, our department looked at using cross-platform frameworks like PhoneGap, Appcelerator, and Rhodes. The idea sounded good at the time: write once, deploy anywhere. But as we dug deeper into what these frameworks were capable of, it became clear to us that these didn’t feel like they were building native applications at all, but rather apps that attempted to emulate the native UIs, unsuccessfully. Things felt sluggish, fake, unnatural. If we were to make our (renewed) push into the mobile app space, we wanted to be 100% happy with the products we put out there, and HTML-based “native” apps weren’t going to cut it. We would be sacrificing user experience for the sake of developer convenience, and that’s a very costly sacrifice. After all, our money comes from our end users, whether that’s advertising or paid subscriptions.
I have had a lot of fun writing this app in Objective-C, and I can’t imagine doing it any other way than that. I started out using Storyboards, and then ditched those for a series of XIBs. Then, I ditched those for Storyboards again, and then ditched Interface Builder altogether. I’m totally happy with laying out all my views in code. As a matter of fact, I’ve written a whole ton of helper methods that help me interact with Core Graphics and UIViews and such (it’s called BDKGeometry).
So much potential development pain was eased by the (not entirely recent) introduction of CocoaPods, which provides a sane and simple way to bring third-party libraries into your Xcode project and keep them up-to-date. I love complex brain benders, but if I’m given the opportunity to pass on git submodules, I’m taking it.
And none of this would be possible with the help of everyone on our team. Our primary GoComics.com engineer has done a smashing job with the GoComics API. Our site designer has been helping out in unifying the look-and-feel of our websites and our apps. Our marketing team has been super hard at work refining all of the promotional icons and copy you see in the app (and now across our sites as well).
And speaking of our apps, our awesome developers have released the Android version, and a Windows Mobile app was released as well. We’ve got some exciting things planned across the board for GoComics as well.
The universal binary for GoComics is live in the App Store now. Go get it!