C2G 1.2: Now for iPad, Too

C2G 1.2 is now out, and with it comes support for the iPad. I've also added a button to contact support (me) if you ever run into any problems. More improvements are on the way!

App Store Customers Having Troubles Leaving Reviews

Yesterday I received an email from the second customer informing me that they've bought one of my iPhone apps (Pouch, in this case), tried to leave a review in the App Store, and got an error message stating "To rate this item, you must own it." This customer is in the UK.

A few days before that, I heard from a customer in the US who had purchased C2G and was getting the same error message when trying to leave a review. So far, I have no idea what to do about it.

Pouch 2.3 Now Available, with a New Icon

It's Saturday, but I just don't want to wait until Monday: Pouch 2.3 is now available on the App Store!

In terms of features, this release includes the addition of the Newsroom, letting you see an overview of the latest activity on your Backpack account. Also, by popular request, you can now turn on and off individual calendars in the Calendar section. You can add and delete Dividers on your Pages now, too. And there are a few other improvements here and there, as well.

Saving Sessions with the Facebook iOS SDK

Recently I added Facebook image sharing to Glory Math 1, and it was my first experience with the Facebook iOS SDK. I used the newer Sign Sign-On feature, which briefly takes the user to the Facebook app to ask them whether your app can access their Facebook profile. The docs are good, and the whole process was pretty straightforward, but one aspect of the authentication process really annoys me: Every time my app launches again, the user must go through the authentication process with Facebook. The first time the user authenticates, it'll ask for access, but every time after that, it just tells the user that they already approved the application for access, and they just have to tap "Okay". This process seems pointless to me. So, I tried to find a way around it.

UIView: How to Make Shiny Backgrounds and Other Reusable Styles

When I first started making iPhone apps, I wrote a lot of repetitive code to style interface elements. Certainly, getting comfortable with Interface Builder eases that pain to some degree, but IB won't allow you to take advantage of a lot of available built-in styling features for your interface elements, such as curved corners, drop shadows, and stroked borders. Additionally, you can create beautiful gradient backgrounds in code pretty easily, but the code is somewhat verbose, so it really pays off to find good ways of re-using that kind of code. Also, using a programmatic approach to your app styling can eliminate the production time associated with image-based styles (e.g. custom background images). A lot of common effects used in UIs can be realized without any images whatsoever.

iPhone: How to Dynamically Color a UIImage

In my recent work on Sphericle, there were a few instances where I wanted to use the same image over and over, but colored differently each time. For example, I want to show spheres of different colors on a map; there are 360,000 spheres, each having its own color. I didn't want to draw the sphere algorithmically; I wanted the picture of a sphere to be based on an image, but then colored appropriately. The solution: use a grayscale image of a sphere, then draw a color over it using a color burn blend mode. That's what I want to show you today.