Springboard Style Wiggles

So you figured out how to setup a UILongPressGestureRecognizer and now you want to make a view "wiggle" back and forth similar to the iOS Springboard app. This is actually pretty simple with Core Animation.

First, setup the view you want to wiggle. The code below assumes it's called "view." I've found that setting kWiggleAnimationAngle to 0.04 works well.

In your gesture recognizer's handler:

We're also setting a few important properties:
- setting repeatCount to HUGE_VALF tells the animation to play indefinitely
- duration is the length of the animation (in one direction)
- autoreverses tells Core Animation to automatically play the animation in reverse once it's finished

Finally we add the animation to our view's layer and that's that. Well, sort of, when we're ready to stop the animation we need to do the following:

Note: I generally dislike in-app Springboards but sometimes they fit the bill.

C2DM 0.1.5

A while back I put out a gem to help ruby devs send push notifications to Android devices. I just released version C2DM 0.1.5, which mainly adds support for multiple key-value pairs in the notification payload and simplifies usage. The interface did change so you'll want to check out the README. This release also fixes minor bugs and there's a bit of code cleanup thanks to Veader.

You might also want to check out GroupMe's fork.

More Tips to get 4 or 5 Stars on the App Store

A few days ago I suggested using Appirater to boost App Store review quality. It's also important to provide in app help as it gives users a place to find quick answers and request assistance before giving up and leaving a poor review.

We prominently display a "Help" button at the top of BillMinder's Settings tab. It's clearly easier to find than something hidden at the bottom of a table. Tapping the Help button brings up an alert sheet, which lets users choose to view the FAQ or email support.

Adding an in-app FAQ page means users always have common answers available to them. We load BillMinder's FAQ in a web view so we can change the content without pushing another build. This is great since it can be tailored to trending questions received via support emails. The obvious drawback to using a web view is it requires an internet connection. That's a trade-off we're willing to make. We also ensure the FAQ page matches the app's style to make the experience a little more pleasant.

In the event that a user doesn't read the FAQ (ha! ;) or find the information they need, they can request assistance via email from within BillMinder. This is handy since it makes it easier to ask for help than leave a 1 star review. It also aids the indie dev giving support since they remembered to add important information, like OS and app version, to the bottom of the email.

As always, YMMV but these things work well for us.

(download)

How To Get 4 to 5 Stars On The App Store

The reality is some developers pay for downloads and reviews to get higher rankings on the App Store. It's tough for Apple to do much about it since the sales look legitimate. It's easy to be frustrated by this sort of thing but there are two things you can do to beat it (ymmv, of course): 

1) Release a good app
2) Use Appirater

Appirater asks your users to review your app after some conditions are met. This seems simple but generally the folks who give feedback are the ones who are upset. When you ask repeat, often happy, users of your app to review it, you get some decent percentage of folks who are pleased to essentially /up vote/. #WINNER

We added Appirater to the latest version of BillMinder 3. Here is the current version's review graph:

Review_graph