I never expected Sunrise to sell very well, and I haven’t been disappointed. It’s a rare thing to sell a copy of it in a week. This is not surprising, it’s an app filling a need very few people have in a niche market that is already extremely crowded. Still, I made the decision to try charging for it. After all, it is (in my most humble of opinions) a very nice looking app, as pleasing to look at as it is to use, and certainly far nicer than most of its direct competitors. But, charging for it was not working.
So, today I am pleased to announce that Sunrise is now free.
For those who find the app truly useful, I’ve added a “tip jar,” as pioneered (or at least popularized) by David Smith’s Pedometer++. There are three levels of tips, and they are completely optional. They won’t unlock any new functionality, though if enough people give me tips it may well encourage me to continue to improve the app.
I tried to make the tip jar as unobtrusive as possible. It is not visible anywhere on the main screen, you’ll only see it when changing locations. Once you’ve given a tip it disappears completely, and for those who purchased the paid version of the app it never appears at all. I don’t want to bug people about it, and I think the way it is implemented succeeds at that. It’s very possible I’ve made it too unobtrusive, but I would much rather people give me tips because they want to than because I’ve begged them to.
Of course, this isn’t the only change in the app. The app had major performance issues on the iPhone 4 and iPad 2. This update improves the performance on those devices significantly. The sunlight view now uses higher resolution images of the Earth on the iPad. There are also a handful of bug fixes, such as making sure the Add Location text field is always above the keyboard (an issue on 3.5" devices).
Sunrise 1.2 is now available on the App Store - please go check it out!
Technical Info
Getting the app to perform better on older hardware involved a number of changes. For example, the first use of an NSDateFormatter can be very slow on the iPhone 4. This is not really a surprise to me; BabyGrow, for instance, only ever creates a couple NSDateFormatters for this reason. Still, it caught me off guard seeing it so high up while I was profiling. Creating one NSDateFormatter for each format I needed and keeping them around helped tremendously.
But the big one I discovered almost by accident and really should not have been surprising to me. Prior to Sunrise 1.2, the images of the Earth used in the sunlight view were 640x320 - exactly the size for the portrait view on the iPhone. Anyone familiar with OpenGL will probably already see what the problem was. I have enough experience with OpenGL that I should have, too. So, what was the problem? The image’s dimensions are not power of twos. This is a big no-no in OpenGL-land. On some hardware it is maybe not ideal but works well enough for Sunrise’s purpose. On the iPhone 4 and iPad 2, though, it was a major performance drain. Resizing the images to have power of two dimensions was a huge win on older iOS devices.
Lastly, a note about the tip jar. I only expect any given customer to purchase at most one tip, and only purchase it once. To me, this made the “Non-consumable” in-app purchase type make the most sense. However, the update was initially rejected for this. From Apple’s point of view, “tips” are considered a product and their guidelines require that products be implemented as “consumable” in-app purchases. I find the logic behind this… questionable. Especially considering the pains I’ve taken to make sure the tip jar disappears for a user completely once they’ve purchased a tip, never to return. Nevertheless, I didn’t feel that it was worth challenging the app review team on this, so the tips are now implemented as consumables. If you’re reading this and considering trying a “tip jar” in your app, skip the rejection and go ahead and make your tips “consumable”!