An Internet of things

Musings on iOS development and other bits and pieces

Integrating Apple iAds - Melbourne CocoaHeads November 2010

I’m presenting a talk tonight at Melbourne CocoaHeads on implementing Apple’s iAd framework. I’ll be going over how to add the iAd framework to your project, a handful of things to remember about using iAds and an overview my first hand experiences with Seoul City Metro as an iAd supported app.

I will be showing some code I have recently sourced a named JCAdSupportedNavController that provides a good way to implement iAds in a UINavigationController. You can check it out on github.

The sides for the presentation are up on slideshare

Attending: TEDxCanberra 2010

Just a heads up that I will be attending TEDx Canberra this weekend! After forgetting to signup properly to TEDx Sydney I’m looking forward to a great day!

A photo of me yawning in the background

Recent iOS version statistics from Delhi City Metro

Not long after iOS 4.0 was released I pushed a small update to Delhi City Metro to keep track of some basic (anonymous) user statistics. I’m keen to gauge the audience of any specific iOS 4 features I might consider adding and now that I’ve been able to visualise these, I thought I’d share them here.

To add a geographic angle to the iOS usage statistics you can see in the second graph that the majority of Delhi City Metro users are from India.

iOS 4 take up rate

Several weeks after the launch of iOS4 the split between iOS 4 and iOS 3 is 4.x 64% and 3.1.x 31% with iOS 3.2 at 4%. (statistics from 13-26/8/2010)

Geographic sales for Delhi City Metro

Adding a 'pull to refresh' control to a UITableView

Today I was tooling around with some interface concepts and playing with apps like foursquare and Twitter (previously Tweetie) and I wondered if I could implement something similar to the now famous ‘pull down to refresh’ method of initialising a refresh of the content within a UITableView.

As it turns out it wasn’t as difficult as I thought; There were already a couple of elegant solutions out and about. The first example I found was by Oliver Dropnik, which talked about altering an existing solution posted on git hub by user devindoty called EGOTablePullViewRefresh.

Oliver’s code looked like it was a good addition to devindoty’s because he had decided to subclass UITableViewController which leads to a much more complete solution that’s easier to move between projects. My only issue with Oliver’s code was that it refactored a lot of the underlying implementation, where I didn’t see too much wrong with it.

I decided to come up with a half way measure. I moved the majority of the grunt work into a subclass of UITableViewController, cleaned up the Xcode demo project included with the source code and pushed it all back up to github. If you’re at at all interested in this, I’d suggest checking out my fork of the EGOTablePullViewRefresh project.

pull-to-refresh effect like Tweetie 2 and foursuare

Update 23/2/2013: Apple has implemented this functionality in iOS 6 with UIRefreshControl, I would use that instead.

Seoul City Metro has been finished, sent for approval!

Wow, what a month!

It really was about 10 times more stressful than I had planned.

Here I was plodding along with the development of Seoul City Metro (@soulmetroapp) thinking I had another couple of months but all of a sudden the iPhone was approved for sale and then released in South Korea in the same two week period! I had to push everything forward…

So over the last couple of weeks I have more or less shut myself off from everyone except my twitter feed and a few friends keen to test some development releases (thanks to @jacobch for some great feedback). Due to the announcement of imminent iPhone release in South Korea I just had to try and get everything running ASAP.

Unfortunately Seoul City Metro missed being ready for sale on iPhone launch day but as a consolation I managed to make it to TEDxSeoul at the last minute for a day of eye opening talks from a wide range of awesome Korean innovators. I had no expectations for TEDxSeoul (how did I not know about TED ?) but it left me with a mind spinning with excitement and positiveness about releasing software in South Korea. I wish I had had some business cards to hand around and some information on the app ready - but getting to go was just a bonus.

Seoul City Metro

But I’m now happy to write that I have finally got there! As of Tuesday morning I have completed an initial working version of an iPhone app and submitted it to the App Store. With submission only four days after the release date in South Korea I am pretty happy with my efforts. This is is a really important milestone because it’s taken me so long to get past being completely overwhelmed by the whole process of becoming an iPhone developer. In fact it’s taken me two trips to WWDC, two iPhone releases (3G & 3GS), two new computers (a laptop and a Mac Mini) and countless days and weeks of feeling overwhelmed and lost at where to start.

JCMultimedia Business Cards

Regardless of the outcome I’m feeling like I have reached my goal. While I wait for approval from Apple I’m running at a slightly slower 80 km/h getting promotional material ready for it’s launch. I’m hoping with some relevant, informative tweeting on my behalf via I can rustle up some interest over Twitter and Facebook, there’s also a website up at and I have printed flyers and business cards for some real life promotions.

I’m attending the Seoul Writer’s Workshop Masquerade Ball this Saturday night in Itaewon and hope to bump into some people there.

Watch this space for all kinds of things I’ve learnt over the iPhone development process, and updates on what I’m calling the City Metro Ecosystem - a suite of apps encapsulating apps for Hong Kong, Beijing and Shanghai.

City Metro Apps Ecosystem