Our DNA is written in Objective-C

Dr. Touch #005 – "Advent Calendars"

Don’t forget to open all those windows on those app advent calendars.


Subscribe to the Podcast in iTunes

My script (aka “Show Notes”) after the fold below.

BSA Banner


Apple acquires Lala. The term “La La Land” is a nickname for Los Angeles, but in this context Apple is not purchasing a city. They are adding a streaming music service statup to their portfolio. Their concept is not to sell you a song for a dollar, but to let it stream indefinitely for 10 Cents. This is generally seen as a move towards “iTunes in the Cloud”, maybe next summer you will be able to listen to any song anytime anywhere and no longer have to purchase and download songs in the iTunes online store.

Apple quietly adds a new CPU option to their Mac Pro line. 3.33 MHz Quad-Core Nehalem. This gives your code compiling an additional speed edge. Though I don’t know anybody who actually develops on a Mac Pro. If you do, let me know! Oh, and there are new storage options for XServe as well. All of these things are mostly of interest for graphic artists and video producers. We developers stick with the MacBook, MacMini or new iMac we ordered on Black Friday.

Wolfram Alpha has taken flak for the high price of their iPhone app.  50 Dollars is really bold a price but it seems they still get enough customers. Now the iPhone-friendly mobile version is no longer available. Instead you see a friendly suggestion to purchase the app. Seems that this is supposed to drive even more people to shell out serious money for a single app. Well the app sure is amazing so if you need to get Answers like comparing the GDP per capita of USA, Austria and India, then you understand the high value proposition you are getting here as a customer. As developers this serves as proof that if you make something more useful than flashlight 2.0 or a sound button then you can also charge a higher price. BTW: The Answer according to Wolfram is: Austria 37370 per year, USA 41770 and India 725.76.

Apple has revamped the iTunes Connect page where you manage your apps. The new design looks like it is meant to also work well for people who have dozens of apps because at the bottom there is a search form. Also it’s more centered around the various statuses that your app can have. Now the apps are are sorted by date of last change of status.

Advent Calendars are all the rage this year. VIEDA, the German iPhone Developer’s Association launched appsforsale.de and an iPhone app that tells you 3 apps a day with 50% discount. Parallel to this Blacksmith Games also launched a web-based advent calendar, called APPventcalendar. Their offering only includes games, but all of them are free on the day they are presented. So you should definitely bookmark both sites, there are a dozen more free games in it for you and thirty more price reduced apps to check out.

Speaking of Calendars. Ryan Wade of UniqueApps.com thinks that 24 windows on an Advent Calendar are not enough. To top that he announced that he will be doing 365 video reviews, one per day, throughout 2010 on his site appcalendar.com. There is no content on the site yet, but there is a small form where you can enter name, e-mail and app name to be put on the waiting list. Ryan promises “a TON of exposure to all the apps reviewed”. There is no information yet about pricing.

At the moment the AppsFire AppStar Awards are under way. Of more than 100 entires, the 25-people jury pre-selected 35 finalists, 10 games, 10 entertainment and 15 Utilities and “Other”. The apps had to be presented by sending in a 30 second video. The category winners, 3 in total, will be presented at the LeWeb conference next week, December 9th. Winners will get 1500 Dollars and a free marketing campaign.

To have a look at all the contestants and form your own opinion, go to video.appsfire.com

A bit of disclosure here. Dr. Touch has a small stake in the competition as well. The finalist app BabyBubbles by Michael Kaye contains several components that I custom-crafted for this app. MeasureStrip, to enter measurements via a sliding scale. BubbleView technology. And ChartNG, a highly customizable charting class that supports interface rotation, pinch to zoom, endless scrolling and a multitude of styles. So you’d make Michael Kaye and myself happy if you could show your support by going to the AppsFire site and give BabyBubbles your thumbs up.

30 seconds is what’s generally known as “the elevator pitch”. That’s the kind of mini presentation you can make to somebody while riding on an elevator together and win him over. You can see from the contestant’s videos that it can be hard to sum up your app’s features in such short time, especially when there is so much to show. But in any case it’s a great exercise that I can recommend you do BEFORE you start coding. If you cannot explain your app in 30 seconds or less then you might have too much in there. Or you have to speak faster. Or search for a narrow enough niche market where not most of your customers suffer from AADS. App Attention Deficit Syndrom.

Lately it has become much easier to get a Google Wave account.  I’ve already seen people pair wave invites with promo codes just so that they seem more attractive. Wave is great to work on a feature list for your next app if you are working together with multiple people. you can edit documents simultaneously. If you have no Wave account yet, just tell me and I nominate you. I still have 24 invites left.

Mac Tip

When I moved to Snow Leopard I found one thing annoying, you might be seeing this yourself. If you download a Mac app from the internet and then execute the installer it would go through the first dialogs but then hang on a screen saying “Preparing x”. A reboot would allow this to go right through. Jens on Twitter told me the solution, which you never would have guessed. Quit the iPhome simulator! Yeah, you heard me right. A package installer cannot continue installing a Mac app while the sim is running. Weird, but it works.

Performance Tip

I spent the past 2 days researching how I can make MyAppSales faster to launch. I already have around 600 reports in my database and loading just the header information would take around 5 seconds on my iPhone 3GS. 10 seconds on iPhone 2G. That’s not just an annoying wait time, 3 users already told me that the AppCrashes now during start. The reason we figured out was that launchd automatically kills any app that takes longer than 20 seconds to start. Apple calls this the “Watchdog Timer”.

I experimented quite a bit, but then I found something really astonishing. I had a sudden inspiration to cache the report headers in a text file. So when the app terminates I am writing all the report headers into a file and to save time I am gzipping it. When starting the app, instead of going to the database I’m reading the cache file and building the table in memory out of the data. the whole process now takes like a tenth of a second as opposed to several seconds.

So the whole launch process on my 3GS with more than a year worth of data is now at least twice as fast. 6 seconds instead of 12. And even on 3G it’s only slightly slower, around 7 seconds. Another twitter user told me that he is loading 360,000 records in under a second this way. The iPhone is faster unpacking the data in memory than it is loading the same amount of data uncompressed.

So my performance tip for you is: if you have a large chunk of data, even if you have the master copy in a SQLite database, it still pays to do caching to a flat file if you gzip it.

Categories: Podcast


  1. I own a Mac Pro for Iphone development and other stuff (early 2008, 18GB of RAM). I normally run a couple of VMs on the side.

Leave a Comment

%d bloggers like this: