iPhone Dev: UITapRecognizer iOS 5 vs iOS 6

Text Fortress‘ first update (v 1.05) went live yesterday and it fixes a nasty bug where all the buttons in the app seemed to be broken. In the process of fixing this problem, I discovered an interesting difference in the way iOS 5.x and iOS 6.x handles user taps.

First, I’d like to thank Text Fortress user, Vishal Patel, for kindly notifying me of this unintended function. Thanks to him, I was able to pinpoint the problem and fix it easily. Since I primarily tested this app using iOS 6.x, I did not experience the problems Vishal did. It turns out that UITapRecognizer’s property “cancelsTouchesInView” is set to YES by default in iOS 5, but it is set to NO in iOS 6.

This turned out to be a problem in my app because I had it set up to immediately look for taps when the app launched. In iOS 6, this wasn’t a problem, but in iOS 5, it prevented the users from interacting with the UIButtons since the system kept registering it as a tap. There are two ways to fix this problem.

One way is to manually set UITapRecognizer’s “cancelsTouchesInView” to NO. Another way, which is what I opted to do, was to check for taps only when necessary. For example, I was using the tap gesture to dismiss the on-screen keyboard. Instead of looking for taps right from the get go, I simply started looking for taps when the keyboard was present (the keyboard covered the buttons anyway). So there you have it, a little food for thought for beginner iOS devs.

Marketing “Text Fortress” – Facebook, Google, Twitter?

Text Fortress recently went live in the App Store and ever since then I’ve been brainstorming of ways to best promote the app. I’m an amateur marketer, using only Facebook and Twitter to promote my previous apps, so I really have no idea what I’m getting into. However, I do know that I want more exposure than what I achieved before, and that is why I am going to conduct an actual marketing campaign.

I plan to do both Facebook and Google Adwords advertising, but I’m going to start with the later because Facebook is more effective when I have the Facebook SDK integrated into the app (which I don’t).

As I learn more about these mediums of advertising, I plan to document my progress and share my experiences. Look out for my next post where I’ll talk about my initial experience with Google AdWords and how it can all seem so convoluted to someone who has never used it before.