2010 End of Year Sale

2010 was a crazy busy year for Outer Level (me).

Year in Review

Knapsack Acquisition

In April, Outer Level announced the acquisition of Knapsack, the personal travel organizer for Mac.

The announcement came after weeks of negotiations followed by several more weeks of transitioning the code, online store, web site, and customer database. Add in all the time dealing with the legal paperwork for things like copyrights and trademarks and this was no quick short cut to adding an app to the product lineup.

New Online Store

The Knapsack acquisition forced my hand in that the original online store was only able to support the sales of one product. After much research, I settled on adopting the excellent open source Potion Store to run the Outer Level online store. The fact that Knapsack’s previous developer also used Potion Store made the decision and migration much easier.

With Potion Store up and running, not only could I now sell more than one item, I added the long requested Family Pack option where customers could get a discounted five user license to share with family members in their household.

Knapsack 2

As excited as I was to add Knapsack to the product lineup, I couldn’t wait to get my hands in the code and take this already cool app to the next level.

Knapsack needed new interactive maps. This release was all about replacing a neat but ultimately limited static world map with a fully interactive detailed online street map. The Knapsack 2 release was a success that brought some nice accolades.

LicenseKeeper for iPhone

Not to be left out, LicenseKeeper got a big upgrade this year too. October saw the release of its companion app LicenseKeeper for iPhone which gave users the capability to take their software license information with them on the go.

Sale Details

To celebrate the conclusion of a pretty good year and set things in motion for 2011, I’m offering a 20% discount on all apps sold through the Outer Level online store. Use the coupon code BYEBYE2010 when checking out to get your discount.

If you’re already a customer and have all that you need from us, please pass the coupon on to someone who could use it.

This sale runs through January 3, 2011.

Happy New Year!

LicenseKeeper for iPhone

Introducing LicenseKeeper for iPhone.

LicenseKeeper for iPhone gives you the ability to access your software licenses on the go. The app syncs with LicenseKeeper for Mac and displays license keys, serial numbers, and registration information along with software titles, versions, icons, and more.

LicenseKeeper for iPhone also provides the option to set a personal passcode used to automatically lock the database when the user is finished viewing their data.

LicenseKeeper for iPhone syncs with LicenseKeeper 1.6+ and requires iOS 4.1 or later, and is compatible with iPod Touch.

LicenseKeeper for iPhone is free and available immediately from the App Store:

Follow @licensekeeper on Twitter to keep up on the latest news.

Beta Testers Needed: LicenseKeeper for iPhone

I’m looking for help testing LicenseKeeper for iPhone and its counterpart, LicenseKeeper for Mac.

If you’re interested in helping out and you meet the following requirements, please contact me at our support email address.

// < ![CDATA[
// < ![CDATA[

domain='outerlevel.com'
email=('support' + '@' + domain)
document.write('‘ + email + ”)
// ]]>

Please enable JavaScript

Requirements:

Airfoil Speakers Touch

Turn your iPhone or iPod Touch into a wireless speaker with Airfoil Speakers Touch from our friends at Rogue Amoeba.

Today, we’re happy to welcome a new addition to the Airfoil Speakers family, with the immediate availability of Airfoil Speakers Touch. Using Airfoil Speakers Touch alongside Airfoil for Mac or Airfoil for Windows, you can now send audio from your computer to your iPhone or iPod Touch on the local network. It’s a mobile audio receiver, right in your pocket!

(Via Rogue Amoeba: Under The Microscope.)

Bullfrog Touch 1.2 Adds New Point Bonuses and Sound Effects

Bullfrog Touch 1.2 is now available in the App Store.

This update introduces a new double point bonus when you successfully chomp more than one bug in a tongue attack. This adds some nice skill-based depth to the game.

Also, I added a new animation for earn a time bonus by chomping a hard to catch bee.

New sound effects have also been added to help enrich the gaming experience.

I also went through the user interface and polished it up a bit — fixed some menu navigation issues and added a sync high scores button. There’s now a new round completed screen with a bit of animation.

But, I didn’t just add new things to the game, but I also was able to fix some performance issues that would cause occasional frame rate loss when more than one mosquito was buzzing your frog.

This update is free to current owners. Bullfrog Touch is available in the iTunes App Store immediately and costs $1.99 (USD).

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,
                            colorSpace,kCGImageAlphaPremultipliedLast);
   CFRelease(colorSpace);
   return context;
}

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

- (UIBarButtonItem *)backButton
{
   CGImageRef theCGImage = [self createBackArrowImageRef];
   UIImage *backImage = [[UIImage alloc] initWithCGImage:theCGImage];
   CGImageRelease(theCGImage);
	
   UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithImage:backImage
                                        style:UIBarButtonItemStylePlain 
                                        target:self.webView 
                                        action:@selector(goBack)];
   
   [backImage release], backImage = nil;
	
   return [backButton autorelease];
}