Monday, May 25, 2009

UIWebViewDelegate

I've been trying to figure out a few things about UIWebViewDelegate. In the process I noticed that a few of the people that try to put up code about it just aren't quite doing it 100%. So I thought that I would give it a go.

First of all, why would you want to use UIWebViewDelegate?
- to turn off the 'action' popup when people hold their finger over a graphic
- to show an activity indicator while your content is loading
- to catch certain loading errors for UIWebView

There are somewhat subtle things to do that really put some polish on your app. Unfortunately a lot of apps skip this, especially the first one.

Now, before I get into how to do it, I want to give credit where credit is due. I started from the example written up on http://www.iphonesdkarticles.com/2008/08/uiwebview-tutorial.html. They really did a good job with their article. But, naming their UIWebView object the way they did causes some conflict once you add the delegate.

Then, over at http://forums.pragprog.com/forums/83/topics/1450 is the best write up that I found on how to tie in the UIWebViewDelegate. Except they left out a couple of key details. Specifically that you need to add this line to viewDidLoad in order for webViewDidFinishLoad and other delegate methods to properly get called.

self.theWebView.delegate = self;

And then of course how to properly dealloc everything according to the doc.

theWebView.delegate = nil;
[theWebView release];

Now there are still probably some things that should be done to pretty things up if you were to release this to users. But that's not the point of today's exercise.

Here is a link to the source code. http://www.tweedleworks.com/download/WebViewDelegateTutorial.zip

Friday, May 22, 2009

iPhone SEO

I've spent the day doing battle with the iTunes search engine and I just couldn't figure it out. I have four apps on the app store right now and only one of them was responding to matches on words in my app descriptions.

Basically the whole text was not showing in the index. In the app that was working, text at the top and at the bottom of the index is showing up in searches. Nothing but the title is matching on the broken descriptions.

I tried all kinds of things, even switching the browser that I used to edit the text. Nothing worked. This was seriously effecting my sales.

And then someone in the developer forums made a suggestion for a fix. Evidently Apple has started clamping down on app name dropping. I was mentioning three well known apps in my description. I removed the references and waited a bit and now everything is fixed. Whew!

Thursday, May 21, 2009

How to rate an iPhone app

Here are some instructions for posting feedback on iPhone apps. If you have already set your screen name to your username, then option #2 works just fine and is still pretty valuable.

In order to post feedback, you can do one of the following from your iPhone:

Option 1:
1. Go back into the app store.
2. Find the app
3. scroll to the bottom and click on the link to look at the reviews
4. right at the top it should show a link to "write a review"
5. fill in a screen name - it can be anything so don't use your last name/username
6. write a review; the critical part is to set the rating from one to five stars
7. Click Send

Option 2: (the no writing option)
1. delete the app (don't worry, we'll get it back)
2. when prompted, give it a star rating
3. Go back into the app store and buy the app.
4. Once the app starts installing, you will see a prompt telling you that you have already purchased the app and it will now be installed for free

Whenever there is an update to the app, go back and repeat either option 1 or 2. If you wrote a review, you will get a chance to update the review or simply post it as valid for the new version.

Wednesday, May 20, 2009

Cause and Effect

I've been trying to figure out what determines app store ratings results, specifically the number of stars that show up. Now the first problem is that the ratings show up in multiple ways with multiple values. Let's go over each.

In iTunes on your computer

If you have a new version of an app that was recently put up, then you likely will not have enough ratings for iTunes to show you a rating average for that version. All it will show you is the star average across all versions. This number tends to balance out over time and isn't affected much by any particular day's ratings. Also, I don't think that iTunes is the main mechanism for people to buy apps. At least it isn't for my apps. But I'll get to my example later.

On the iPhone

When you browse the app store on your iPhone you really only see the star ranking and a count of the number of reviews. This shows up in the search results and at the top of an app description. If you scroll down you can see a link to the real reviews. But most people just see the stars.

What contributes to it? Any time someone deletes your app, they are prompted to rate it. Considering they are deleting the app, the rating usually isn't good. Or someone can navigate through the app store to an app they have already purchased and leave a review. My experience is that this doesn't happen very often as a percentage of people that actually use the app.

The Problem

Unlike iTunes, the iPhone app store only shows you the average rating for the current version as long as there has been one rating. If you have one, one star rating for the current version, then you have an average rating of one star. It will not matter what your previous average is.

For example, I was just looking at this app called VanillaSurf, a multi-tabbed web browser. As of when I'm writing this, it has 199 ratings for all versions for an average of three stars. But they recently put out an update and there has only been one rating - five stars. In iTunes it shows the average for all versions and tells you there have not been enough reviews for the current version. On your phone it will give you a five star result with one review.

The trick is that for app developers, you need to stay on top of your reviews when you change versions. Get your loyal users to update their reviews. If you don't then what happened to me, might happen to you. Let me explain.

I've updated my main app two times. This last time, I updated it and I didn't get any new written reviews right away. However, I did get one user that didn't like my app and uninstalled it right away, giving it a one star rating. Ouch. That one star rating sat for a couple of days, and then it became the average. So suddenly I went from about 3 stars average to 1 star. My sales dropped like a stone. Cement shoes. Dead. I'll be more specific. 90% drop in sales.

Now the interesting part is that browsing my app on iTunes still gave the 3ish star average which is true across all versions. The drop in sales plus the difference between the two storefronts says something about how people find my app.

When I noticed this after the first day of poor sales, it was bad. Woe is me! The world is coming to and end! What am I doing developing apps??!!

After I calmed down, I decided to go try to fix it. I called up a few of my friends and asked them to update their review. Evidently they are incapable of doing this one task. I finally had to go over to someone's house and help them do a review. It says something about how hard it is to deliver a good rating, doesn't it?

Okay, so about mid day on day two someone posts a positive rating. I know it's there. But it doesn't show up on the app store. For about 18 hours. And it was about 36 hours before it changed the average star rating. I suspect that this gets recalculated at about midnight.


Okay, here's how this blog is going to work. The above is mostly just therapy for me. I'm working on my own and so I don't have coworkers to talk to when I figure something out. Here is the executive summary.

Summary: Keep an eye on your reviews right after an update. Don't wait for bad ones to show up because it will affect your sales significantly and it will take a long time to fix it. And if you don't have a bad review from a real customer, don't worry - your competitors will put one there for you. Immediately get your buddies to rate your app. And then let your real customers create a real average over the next few weeks.

I wonder: If you comp someone a copy of your app using a promo code, can they rate your app on the app store?