Reviews

by jegeblad

The other night I heard a restaurant critic talk about reviews. When asked how he felt about the increasing reviews from "normal people", he immediately dismissed them as of little use. It is possible that he was simply trying to justify his profession, but he actually gave several reasons:

Objective

You cannot let a little thing such as the interior or service bother you a lot, if you are a food critic. You must be objective about the food. If one of the waiters does not greet you when you enter the restaurant, or you have to wait 30 minutes, you cannot let that affect the entire review.

Experience

You must have a reasonable experience and have tried many restaurants in order to give a fair comparison. If you only dine out twice each year you are simply not experienced enough to give a fair review.

Fairness

Even though the starter does not taste well, or you don't like it because you simply ordered something you did not know in advance, you should be open-minded about the main course. If you chose the wrong wine for the meal, that is your fault, not the restaurants.

Broad Taste

You need to be equipped with a strong ability to taste. If your favorite meal is steak and french fries, then you probably not equipped to judge French cuisine -- Stick to the steak houses. This is connected to experience.

Knowledge
You must know the current trends in the business, and you must be able to appreciate an original idea from an unoriginal one. If someone copied an idea from somewhere else, you can only know if you have been to both places. Obviously, the people who came up with the idea, should get the approval instead of the copiers.

App Reviews

Essentially, he did not believe that the average person would qualify as a proper reviewer. His discussion made me think about the app-store. The review system is quite horrible and I think Apple made it even worse by asking you to rate the apps when you delete them. Apple's mentality is very unlike Apple. They expect every person in the world to be equipped with the experience and objectiveness to give a review. Even worse, they try to force you to do it.

Personally, I have received some unfair reviews from my apps. Not many, but some. One review was simply 1 star accompanied by "Boring". Another review was 1 star accompanied by several correct observations and one incorrect observation about a missing feature that really was there, but which he had not noticed because he did not give the app a fair chance (it is hard not to notice the feature!). That particular reviewer had given either 1 star or 5 stars to every app he had reviewed. So I guess he either like something a lot or hated it.

Both of those reviews are hopelessly useless from a developers point of view. You cannot take a reviewer with only 1 and 5 star reviews seriously. "Boring" is even more useless. Why was it boring? Was it because he though the app did something it did not? Did it become tedious over time? Did he miss some background music and animations? We prefer to get constructive reviews. "Boring" is also useless for other potential customers.

Over the years I have grown increasingly tolerant with criticism. At least when it is fair and constructive. The only thing worse than bad critique is meaningless critique. Considering that people already paid to get an app, you would think that they would sent feature requests to the developer, so that a future update can provide them with the missing features (free of charge). However, often the reviews are not very constructive. "What a waste of money" seems to be the most reoccurring comment. The problem is that it is only a waste of money if you don't get the reviewer to improve it to your liking.

Additionally, there is countless reviews that you don't see which are simply ratings by people who delete the apps. Great system! (sarcasm). Do you delete an app you like?

The review system is flawed because only people who either hate, love, or feel compelled to review are likely to review, so you don't get everyone's attention. It is also flawed because the reviews are often not objective. Indeed you can sometimes sense that a review comes from a competing developer or simply an angry customer, who accidently bought something he did not want. I have noticed several reviews are from people who claim that there was no sound (did they have the phone in silence mode?) -- A professional reviewer would not simply dismiss an app because he did not hear any sound the first 5 seconds. He might even contact the developer and ask:"Hey! What's up with the missing sound?".

Finally, it seems that some statistical laws of great numbers influence the reviews. Many apps get ratings of around 2-3 (dead center in the review scale). iFart Mobile got a rating of 3. Why is it the top paid app? Certainly, not because people take the reviews seriously. If you look at the reviews many of them are also either 1 or 5 stars.

Perhaps you think it helps sending your apps to professional reviewers. In my experience it does not unless you have something really unusual. It gives a little spike in the sale, which can be most welcome, but since most people buy apps spontaneously, they are unlikely to visit review sites just before they buy something. Additionally, many of the review sites are completely overloaded with the heavy burden of picking and choosing between around 100 new apps per day.

Pop apps

In fact, it seems that the iphone apps are quite similar to pop-songs; They may sell well for a few weeks and then drop completely into oblivion. I would characterize iFart Mobile as having all the qualities of a pop-song. It became popular over night, perhaps because there was so much debate about it, and now everyone is looking at it to see what the fuzz is about. I predict that 1 month from now it will have dropped to tenth place.

It is also hard to sell an iPhone app for more than $1. And it is hard to warrant more than a few weeks development time for something that is $1 (because the chance of failure is too big). So Apps will never get too many features, and are limited in the same way a pop-song is limited to 3 1/2 minutes of entertainment. Additionally, like the music industry you have to either get a hit or you will not make it.

It is unsustainable, and, unlike the music industry, many developers have other choices. Most of the developers on the iPhone came because of the easy development and distribution system, but once people realizes the financial prospects, they are likely to return to the traditional IT jobs. At the same time developers will try more and more to create the hit pop app, that can make them rich overnight. One of my friends had a great idea for something that can rival the great iFart app for 1st place by appealing to the same least common denominator of people. I am keeping the idea close to the chest in case I become desperate and need the cash sometime.

Currently, I doubt there is a place on Earth where you can get more value for money than the app-store, and I wish people would appreciate all the stuff they get for $1. I doubt that the majority of developers on the platform are profiting, but I am sure the management of Apple is smiling!

Can't resists

by jegeblad

I know several others have already linked to this, but it looks so cool I cannot resists :

http://www.mikeash.com/?page=pyblog/friday-qa-2008-12-26.html
(Blocks in Objective C.)

... if only C++ had something similar.

Cluster apps

by jegeblad

There is very annoying phenomenon on the iTunes app store. I don't know what to call this type of app, so I am calling them cluster apps. Let me give you some examples.

miArtPak

There are no less than 9 miArtPak apps. These apps provides artists with a way of distributing their artwork to the iPhone. Each app is for an individual artist. Some are free some costs $0.99. The artwork is beautiful though.

GP apps

Then we have a small company called GP apps. They have:

5 apps called DialTextEmail "x".
11 apps called GroupNotes "x".
10 apps called Note to "x".
18 apps called TapDialer "x"

with x = {Girlfriend, boss, best friend, mom, coworker, etc. }

Judging from the screenshots, descriptions, and titles they all do the same thing.

Obscure Clocks

Then we have from the same developer:

Ball, Binary, Borg, Braille, Elvish, Hebrew, Khmer, Klingon, Roman, Romulan, Sinhala, Tamil, and Thai Clocks.

Most of these developers change the colors of the icons and the publish the app under a different name.

Why?
Presumably developers do this because they want a larger surface area of the iTunes store and making sure that people can find the apps. It is also no secret that every time you submit an app and it is just out on the app-store you will get a boost in sales. From my experience you can sell between 30 and 100 the first couple of days. If you have 18 apps of the same type, you could hope to make 18 times as much. I am also guessing they do it because they want you to buy a whole series of apps. Instead of having just a free and a paid version, you can buy the pieces you want. Like Vint B&W, Vint Red, and Vint green. They all make "vintage" looking photos, but with a slightly different tint.

Does it work?
... hopefully not. It is not a pretty business model. You are complicating the life of your customers since flooding the app store with identical apps, makes it tougher for them to find what they really want. You are also stressing the Apple review team with a large pile of identical apps. It is also slightly false marketing, to be marketing similar apps as if they are different.

Enough about the moral aspects though. Let's look at the numbers. I have used (http://www.apptism.com/) to get rankings of the apps. Rankings are based on category, so we have to consider each individual category by itself.

Let's begin with photography. My own Thanksgiving Turkeynizer has been downloaded less than 1000 times total, 400 of those were actual sales (It was free for a few days), and I am currently selling about 1 per week. The Thanksgiving Turkeynizer has rank 212.

The non-free versions of miArtPak are all in the 200-300 ranking area. So they are each selling worse than the Turkeynizer.

Vint apps are ranking 36, 97, and 196. Pretty, pretty good!

The clock apps are in a different category (Utilities): Klingon clock seems to be the best with a rank of 1078. My guess is that he is selling 1 per week at most.

Then there are the "Note to" apps. I notices these about 1 week ago, but when I tried to search for them on the app-store they were pretty hard to find (even searching for "Note to"), so I am guessing the whole surface area strategy does not hold. Anyway, Note to boss (564), Note to mom (528), Note to myself (Portrait version), (ranking 304) [portrait, wtf!], Tap dialer boss (531). Basically, we are generally in the 500 ranking area.

So how much are they selling? Probably not much. I don't think GP-apps' strategy works, and I am pretty sure that the clocks from the same developer would actually sell well if it was just one single app. Customers who wants a weird clock, would be super happy if they could have a new weird clock each day, but having to buy all 10 of them is just annoying from a customer point of view.

The Vint app was the first I noticed of this type, and I am surprised that it seems to work for him. From my own experience an app with rank of 36 sells at least 4x as much as one with rank 100 and at least 10x as much one with rank 200. So my guess is that at least 80% of his income comes from Vint B&W. Why not just combine the three apps into one and perhaps climb to rank 25?

Annoying
These apps are really annoying. They take up space in the app-store and they give it a bad reputation. Based on the rankings, people also don't care about them. They all try to target specific individuals either with the name or content. A large part of making it on the app store is to gain popularity, and selling a small number of apps to individuals will not gain anything from a popularity point of view. Instead you are risking a sure drop into darkness after that initial boost.

Guilty!
I must admit that I have three apps out there with similar concepts Halloween Pumpknizer, Thanksgiving Turkeynizer, and XmasizeMe. I am currently considering combining them into one app for the next big season, but to be fair, the apps are really quite different although they are based on the same concept and code. In any case, I am now convinced that making just one app from the beginning with seasonal updates would have been a far better strategy, because it would have made customers so much more happy about it.

Memory warnings and lessons learned

by jegeblad

Lesson 1

I really like working with Cocoa on the iPhone. I really do. Some things are a bit odd and some things are a bit annoying. For instance, UIAlertView will always call the same delegate function of its delegate, so if you have multiple UIAlertViews opened from the same UIViewController, you either need to have multiple delegates or keep track of which UIAlertView is currently open.

One thing, I am struggling to accept is the didRecieveMemoryWarning function of UIViewController. Whenever the phone runs low on memory, this function will be called on all your view controllers. Default behaviour is that they will unload the associated view if not currently visible. Once the view should reappear it will be reloaded.

That sounds like a good idea, but it basically means that you cannot have any state saved in the UIView. All states must be saved in the UIViewController. This is a bit annoying, because it means that UITextView contents, UILabels, UIScrollView positions etc. etc. must be stored every time a view is covered with e.g. a modal view. Some of these things you should do anyway if you are developing according to MVC. One thing you cannot really do it with is the CALayer which is specifically associated with a layer of a UIView and therefore deallocated once the UIView is deallocated. Overall, the strategy really is a bit annoying.

Fortunately, didReceiveMemoryWarning is not called very often, but it can be called when you least expect it. So I think this is a design blunder on Apple's behalf, because it means that you have two choices. 1 implement your own didReceiveMemoryWarning function that does nothing or close to nothing. 2 save the state of your view in every viewWillDisappear call, and restore it in every viewWillAppear call. And remember you really have to do either of these two things for your app to work correctly.

I am wondering how many developers are concerned about it, and how many crashes this is causing in the apps on the app store. Everyone is complaining about crashes. Personally, I have never given it much thought until I started noticing crashes in XmasizeMe because I stored data in a UIView, which would be deallocated. The fix was to only deallocate the data I could give up instead of the entire view. What was more puzzling, was that the didReceiveMemoryWarning occured at a point where there should have been plenty of memory. The likely cause was the allocation of a couple of CALayers with a large image (1024x1024).

The idea, that you app can free up some memory once in a while is really really good, but I think Apple should have not implemented a default behavior that frees your view. Unfortunately, if Apple had not implemented this, I probably would never noticed the functionality. From now on I will use it more actively.

Lesson 2

XmasizeMe is really the center of these two lessons. The discussion of Lesson 1, resulted in me submitting an app with a crash problem. Something I am not proud of. Lesson 2 is a bit more serious.

After one day of availability on ITMS I have had a total of .... tada.... 24 downloads of XmasizeMe. Yes, I know 24 is a magical number in December, but really this is not good. I should have had 200 downloads the first day.

So what went wrong? Well I got two reviews on the US store. One wrote that an elf and a reindeer were missing (3 stars). The other complained about crashes (1 star). I had initially dropped the idea of making xmas-cards because I felt I did not have enough content to build them. The other reason, because I felt I did not have anything to add to this market. After discovering how many xmas-card apps there are on the app-store I should have gone with my initial feeling here.

The fact really is that if you want to make money on the app-store you need to be original, and make something that a very large fraction of users will instantly want. Otherwise, you will not survive in this market. Making small apps like XmasizeMe is not going to work in the long run, because they only appeal to a small fraction of users, they go by highly unnoticed due to the app-store system, and seasonal apps with a low number of features can only sell during the season to which they apply.

Buyers want a load of features in the apps for $0.99. It makes sense to complain about crashes, but it doesn't make sense to complain about missing features in software that costs < $1. I doubt the majority of the $1 apps are making serious money. The biggest problem with the app-store is that a lot of developers are setting the prices too low, so people have started to expect too much from $0.99 app. Unfortunately, you cannot sell a lot of apps for a price > $0.99.

In reality, there are too many developers for this market now. I am wondering if this will change over the next 6 months, but I doubt it. Everyone is coming to the party to see if there is a bit of gold to pick up. Unfortunately, like for most parties, most people will not get lucky. Now I am wondering, if I will...

A different perspective

by jegeblad

I have around 70 photes of frames that I want to use for an app I am working on. The pictures were taken using a digital camera. Unfortunately, even though I was careful, many of the frames are taken from an angle other than 90 degrees. The frames I need for the app need to be axis aligned. To solve this problem I could use PhotoShop or Gimp, which have "perspective correction" features. After 5 minutes of playing around with those applications I gave up. Instead I made my own using Cocoa. Here is how.

First, I record four coordinates on the original images which can be placed by the mouse. Then to output the photo I interpolate those coordinate, much like painting a texture-map in reverse.

The concept is quite simple and it took me only about 1 hour to implement including bilinear filtering. Here is an example of the transformation:


With this little tool I was able to fix the perspective of all my frames in less than 20 minutes. Of course I only do linear interpolation (not perspective correct), but it works ok because most of the photos are from an angle of around 90 degrees.

<< 1 2 3 4 5 6 7 8 9 10 11 >>