The App Store Effect

Paul Kafasis (Rogue Amoeba) writes about The App Store Effect on iPhone software pricing.

If developers could charge a price lower than 99 cents, there’s no doubt that some would, and the price curve would shift even lower.

Update (Dec. 28, 2008):

Daniel Jalkut (Red Sweater Software) ads his take in Touch and Go Pricing.

iPhone applications are too cheap, and changes are needed to encourage the development of premium applications that sell for a fair price.

Brent Simmons (NewsGator) follows up with On the App Store and Free Markets.

Some of the response Paul’s and Daniel’s recent writing about the App Store has gone something like this: It’s a free market — deal with it.

Here’s the thing, though: it’s not a free market.

Code Example: Drawing the iPhone Back Button

Recently, I had need to provide a back button similar to the one used in Mobile Safari for a consulting project.

Many of the buttons used in the built-in iPhone applications are made available via the SDK with built in button types and graphics. Unfortunately, the back button is not one of these.

Because I needed to display the toolbar button from inside a static library which can not include images, I had to render the back arrow directly in code.

Since this was a bit time consuming, I thought I would share in hopes that it saves someone else a little bit of time.

- (CGContextRef)createContext
   // create the bitmap context
   CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
   CGContextRef context = CGBitmapContextCreate(nil,27,27,8,0,
   return context;

- (CGImageRef)createBackArrowImageRef
   CGContextRef context = [self createContext];
   // set the fill color
   CGColorRef fillColor = [[UIColor blackColor] CGColor];
   CGContextSetFillColor(context, CGColorGetComponents(fillColor));
   CGContextMoveToPoint(context, 8.0f, 13.0f);	
   CGContextAddLineToPoint(context, 24.0f, 4.0f);
   CGContextAddLineToPoint(context, 24.0f, 22.0f);
   // convert the context into a CGImageRef
   CGImageRef image = CGBitmapContextCreateImage(context);
   return image;

- (UIBarButtonItem *)backButton
   CGImageRef theCGImage = [self createBackArrowImageRef];
   UIImage *backImage = [[UIImage alloc] initWithCGImage:theCGImage];
   UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithImage:backImage
   [backImage release], backImage = nil;
   return [backButton autorelease];

Bullfrog Touch Preproduction Artwork

Mike Rohde posted some of the design work he did for me on Bullfrog Touch. I always find it interesting to see preproduction artwork for games.

Mike took the icon that Jordan Langille created and produced the Bullfrog Touch logo which you can view here:

Mike also helped design the look and feel of the high scores list by creating some concept art that we then modeled the final interface on. You can see Mike’s original artwork here:

For comparison, here’s how the final high scores screen turned out:

Update (Dec. 20, 2008): Mike posted a more detailed write up on the process: Bullfrog Touch Logo & iPhone UI Design

uDevGames 2008 Game Programming Contest

iDevGames announces the start of their uDevGames 2008 contest:

iDevGames is proud to announce the start of the fifth uDevGames Mac Game Development Contest! The contest challenges participants to create a Mac OS X game in three months time, which will then be subjected to public vote and peer vote, with the best in a variety of categories receiving prizes provided by our generous sponsors.

My game, Bullfrog for Mac is a direct result of a previous iDevGames contest back in 2005. It was a fun challenge and great learning experience. Nothing like a true deadline to push you to get something done and you never know where this may lead you.