A few more Default.PNGs for the archive

Here is my archive of Default.png and Default@2x.png images. There are currently three different layouts. I will be adding to the collection as I create different ones for my apps. The archive contains regular images and @2x images.

Download the Default.png archive

A UITableView with a navigation controller:


A grouped UITableView with a navigation controller

A UITableView with a navigation controller and a tab bar:


Feel free to use these images in your apps. Enjoy!

iOS Pain Points – The Prevalence of Magic Strings

One thing I’ve noticed while working with iOS is that magic strings seem to be quite common.
They’re in Core Data:

[NSEntityDescription insertNewObjectForEntityForName:@"Foo" inManagedObjectContext:context];

They’re in Storyboards and View Controllers:

[self.storyboard instantiateViewControllerWithIdentifier:@"SomeViewControllerIdentifier"];

They’re in Segues:

[self performSegueWithIdentifier:@"SomeSegueIdentifier" sender:self];

They’re in sorting:

NSSortDescriptor* sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name"

They’re in the instantiation of table cells:

static NSString* CellIdentifier = @"Cell";
UITableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

Coming from the C# world of lambdas, generics, first-class enums, and strong typing, I find all of this incredibly bizzare. But hey, who needs refactorability and type safety when you can use strings!

Attention Trackback Spammers

Your spam is being blocked. Please give up and go bother someone else’s blog.

This blog has been the target of a few hundred spammy trackbacks over the past week. Thanks to the ‘Simple Trackback Validation with Topsy Blocker’ plugin, none of it is getting through.

Anyone have any good tips on how to avoid being the target of spammers?

App Per Month – 4 Month Review

The blog has been around for about four months now, so I thought it would be nice to do a little retrospective of what happend, and a look at what’s to come.

I have released 3 apps so far: BBQ Menu, PhoToDo, and Feeling Blue?. Sales have not been stellar, but they have been slowly improving.

Website traffic has been consistently increasing, which is quite encouraging.

My most popular post, by far, has been Filtering a UITableView with a search bar. It accounts for a significant percentage of the blog’s traffic.

And as for 2012’s goals? Let’s have a look.

  • Sign up for the iOS Developer Program *Complete!*
  • Release my first app to the app store by the end of January *Slightly late, but close*
  • Release some open-source Objective-C code *Complete!*
  • Start answering Objective-C or iOS questions on Stack Overflow *Complete!*
  • Blog at least twice per week *Slightly behind schedule*
  • Come up with 10 legitimate ideas for App Store apps *3 down, 1 in development, a few more ideas in the works*
  • Implement and release one of those 10 ideas every month or so *On track so far*
Not a bad report card so far, I think. Here’s hoping 2012 continues to rock!