Tuesday, April 10, 2012

Yes! Kindergarten Math is a Success!

50,000 installs in less than 6 months


50,000 downloads in 6 months or less has become a commonly cited threshold for success for an Android App. Kindergarten Math Lite just crossed 50,000 downloads in 5 months on the Google Android Market. There is additional 10,000 downloads of Kindergarten Math Lite on the Amazon App Market. It is the first app that we built. So, there was no cross-promotion for it to rely on. It is independently successful.

Only 2 out of every 1000 apps has the honor of reaching 50,000 in less than 6 months. With about 500,000 apps on the Android market, that means we are one of the top 1000 apps.

How do we celebrate it? By fixing the app for Blackberry playbook... there is a lot more work to be done, and more applications to be built. This is just the beginning.

References
http://gigaom.com/mobile/devs-heres-your-6-month-window-for-mobile-app-success/
http://www.appsgeyser.com/blog/2012/02/10/vasily-salomatov-interviewed-by-abi-research/

Saturday, March 24, 2012

Amazon Kindle Fire Sound Delay

A few weeks ago a customer reported that they couldn't download Kindergarten Math from the amazon market on their kindle fire. I did not have a kindle, so, I did not know what to tell the customer. The next day, I went to Fred Meyer and got a Kindle fire.

Fortunately, there was no problem downloading and running Kindergarten Math. But, there was a peculiar sound cut off on the Kindle. I use multiple sound files that are run one after the other for the complete instruction. The number values come from multiple sound files. This way, I don't need a separate sound file for each of the 50 exercises. But, on the kindle, the sound gets cut off at the wrong point, making it sound jerky.

For the first exercise the sounds are
  •  move
  • five
  • balls into the box, using your finger. Press the number
  • five
  • when done

The end part of each sound was getting cut off. It would sound like
  • mo
  • fi
  • balls into the box using your finger. Press the numb
  • fi
  • when done

There was a delay in the sound being played, but not in the reset() being called on the MediaPlayer. My solution is to use 2 MediaPlayer objects. The first media player plays the 1st, 3rd, and 5th sound. So, the reset on the 1st sound is only called after the 2nd sound is complete. The second media player plays the 2nd and 4rth sound. This removes the cut-off, but leads to a little bit of overlap. Still, it sounds better than what it does currently.

Here is some code for reference, if anyone else is having the same problem, or can suggest a better option - 

public class MediaManager implements OnCompletionListener {

static MediaPlayer mp0 = new MediaPlayer();
static MediaPlayer mp1 = new MediaPlayer();

int[] sounds;

int current = -1;

Context context;
public MediaManager (Context context) {
mp0.setOnCompletionListener(this);
mp1.setOnCompletionListener(this);
this.context = context;
}
public void play(int[] sounds) {
this.sounds = sounds;
this.current = 0; //start from 0
mp0.reset();
mp1.reset();
playAudio(mp0);
}
public void stop() {
if(mp0!=null && mp0.isPlaying())
mp0.stop();
if(mp1!=null && mp1.isPlaying())
mp1.stop();
}

@Override
public void onCompletion(MediaPlayer mp) {
if(current>=0 && current<sounds.length) {
current ++;
if(mp==mp0) {
mp1.reset();
playAudio(mp1);
}
else { //mp==mp1
mp0.reset();
playAudio(mp0);
}
}
}
private void playAudio(MediaPlayer mp) {
try {
if(current>=0 && current<sounds.length) {
mp.setDataSource(context, Uri.parse("android.resource://..."));
mp.prepare();
mp.start();
}
else {
current = -1;
}
} catch(Exception e) {
Log.e("Media Player","Media player exception", e);
}
}
}

Thursday, March 22, 2012

Learning to Appreciate Customers

My friend thinks I love to complain. When I decided to start working on my own projects, mostly by myself, he quipped - 
  If you are working for yourself, who will you complain about then?
I jokingly replied - 
  Customers
After the failure of my first few projects, the only think I had to complain about customers... is that I had none. I learnt quickly to appreciate the users of Kindergarten Math. Now, I wouldn't dream of complaining about them. Many are thoughtful and appreciative. Some of the recent comments that I especially appreciate are - 
The product got here quickly. Once it was here, my son and I had a ton of fun playing with them. Putting the balls into the bin is great! Makes the concept of addition and subtraction very hands on for him. Which he needs. Great for kids with Autism. Which is what i found good about this for my son.
- D. Latowski 
To see the app I built be useful for kids with Autism too, made me cry. It was not something I had expected. I am grateful to the commentor for letting me know.
 I installed this and Kids Numbers and Math Free from intellijoy at the same time. The other app has more options and is more colorful and fun (to me) but to my son - this one took the cake for some reason. :) He did them all and wanted to keep going, so I will be paying to upgrade. I must thank the dev for a respectable price on the full version and NO ADS! Not even in the lite version! Very nice. I did take away one star just because it could be a little more forgiving of little kids touchscreen skills. In the maze, if you bump into another box just barely - it gives you a fail. Disappointing to a child that expected to see they got it right. Also, when adding or taking away balls in some of the other games, the ball doesn't always stay where it's supposed to go. Even I had occasional issues when I wasn't precise. That can be frustrating for a child, especially if they are concerned more with the counting and don't notice the ball didn't "stick" where it needed to be. I am betting this app will evolve well in the future. I am totally happy with it. Great job!
- Linn Anne

Such a thoughtful and detailed comment. I imagine it took her a while to type all that on a touch keyboard. Kids Numbers and Math is a top app on the market for kids. To find that kids like Kindergarten Math more... keeps me going. The criticisms are just as useful. She is helping me improve the app for all kids. I will be fixing the things she pointed out soon as I have time.

Thursday, March 8, 2012

Odd Google Market Search Rankings

Kindergarten Math crossed 1000 downloads yesterday. It was an exciting moment. I was waiting for it for a few days, and hoping that it would get a little bump when it crossed 1000 downloads - same as it did when it crossed 500 downloads.

But, what happened? Kindergarten Math actually fell 10+ places in rankings for keywords Kindergarten Math. It fell in ranking for keyword Kindergarten. It fell a lot in ranking for Kids Math. It is rather surprising and odd behavior from the google market. I am convinced they have a bug in their search algorithm. It seems to be treating it as though its 100 downloads instead of 1000. Being an engineer myself, I know how easy it is to make an order of 10 mistake. Or, maybe treating it as though it is a free app for rankings.

I sent the information to google. But, I am not expecting much. They are secretive about their algorithm. Maybe they don't want people selling more than 1000 copies on purpose. I'll update if I hear anything.

Update on 3/15
Kindergarten Math is back up in rankings. I am not sure if google fixed the problem based on e-mails it received from me and others, or if it was just a problem at 1000 and goes away when it hits 1100. The rankings seem to be more sensitive to daily downloads too since the change over to play.google.com. Is google  trying to copy a page from amazon's book?

Friday, February 24, 2012

Amazon Market Up and Up

I wrote this post about the increasing downloads and then falling back down to earth in the amazon market about a month ago. However, since then, I discovered a big bug which prevented users from hearing the sound instructions on Kindergarten Math Lite. After I fixed the bug, the conversion rate jumped dramatically.

Before the fix, I was getting about 100 downloads a day of Kindergarten Math Lite and a conversion rate of 1% to Kindergarten Math. It was so little that I had started wondering if I should just take the app down from the amazon market.

Since the fix, I am still getting about 100 downloads a day of Kindergarten Math Lite, but the conversion rate has jumped to about 8%. That is quite a difference, and also much higher than the Google Market's 3% conversion rate. Along with that, the ranking of Kindergarten Math has also jumped from 100ish to around 30 for Kids category in Amazon Market. The chart for the last week is below.



I am certainly not thinking about taking the app down from the amazon market anymore.

Saturday, February 18, 2012

My Guiding Principle

Inventing on Principle, a recent talk by Bret Victor, a prominent designer, talks about finding the guiding principle for your work. Since viewing the talk, I have been thinking about the guiding principle behind Kindergarten Math, and what I want to take from it going forward.

My guiding principle is Learning through Two-Way Interactivity


The first part is obvious. Learning - is about creating apps that people use to learn. If they don't learn, the app is not doing it's job. The second part is about Interactivity. Many apps on the market tell you the concept, or test you for it. For apps that tell you the concept, the interaction is one way from the app to the user. Here the app does all the work. e.g. an app that counts for you. For apps that test you for it, the interaction is the other way - the user does all the work e.g. an app that asks you what 2+2 is. In Kindergarten Math, the app guides you how to get to 2+2, but, it lets you work on it till you find the correct answer. That's two-way interactivity in the same exercise. The learning and two-way interactivity are connected. The Learning happens faster and deeper because of this two-way interactivity.

The two-way interactivity is hard to achieve at present. It requires more coding and effort than 1-way interactivity. That is perhaps the reason why not many apps offer it. But, that also means there is an opportunity to excel here.

Monday, February 13, 2012

Publishing Android Application to (B)lackberry Playbook

RIM, the owner of Blackberry brand, has a tablet on the market - Playbook. It is originally not an Android tablet. But, with v2.0 of it's operating system, it is integrated with the android runtime. So, it will be running android apps. This is good news for android developers who want to reach a broader audience. However, the existing APK files need to be repackaged for Blackberry to a bar file, and submitted to blackberry specific market.

Why couldn't they just use the standard android packaging, and markets? I assume it's because they want a share of the app sales. The special purpose android tablets are not selling very well, even with high-quality-specs like the Playbook. It is because customers want apps that their friends have. And developers, like me, are too lazy to port their apps, or even repackage them.

Getting desperate for apps for the blackberry playbook, RIM announced they would give a free playbook per app submitted to the blackberry market. That is a pretty good offer for me, given that I need a tablet anyway to test my apps on a larger screen. So, I submitted Kindergarten Math to blackberry vendor portal today.

Creating the Bar file from an existing APK file was fairly simple. There was an online tool to convert the file. It did require Java installation for Applets, and the Android SDK pre-installed, but, I already had those for development purposes. Since we don't use any special permissions, the conversion was a breeze.

Testing the converted app was anything but easy. My husband spent a few hours last night setting up the VM, getting it all configured, installing the app on the VM. Finally, when he tried to run it, it would load the app, but not be able to take any user input. The emulator for blackberry playbook is pretty much useless. Not having an actual playbook, we just have to trust that it all works how it does on the android phone, and submit the app before the deadline. If RIM keeps it's promise and sends us a Playbook, we can test the app on it then.

The submission to the Blackberry App Vendor Portal was tedious, at a minimum. Vendor account took overnight to get approved. When submitting the app, you have to fill out 5 step wizard. You cannot save the steps. So, if you don't have some information right away, and want to come back to it later, you have to start all over again. The images are non-standard pixel sizes - 480 X 480 instead of 512 X 512. And, there is a confusing array of licensing, and tax information fields. I ended up with fixed pricing and static licensing to avoid last minute integration with blackberry playbook SDK. I am not sure what the tax reporting stuff meant. The documents were not clear on what you should choose if you are a corporation vs. a sole proprietor.

Still, kudos to RIM, for upgrading their OS to use Android and doing a promotion that publishers can appreciate. It seems windows phone will integrate more seamlessly with Android apps. Windows 8 has an Android app runner called BlueStacks. Now, if only iPhone and iPad would run Android apps... all the tablet and phone devices would be covered by the same technology stack for developers.

It is amazing that 15 years after it was created for phones, Java is finally the most prevalent platform for smart-phones.

Update on 4/10
Blackberry sent us a playbook in return for submitting Kindergarten Math to their store. A customer reported that the application hangs when run. So, we decided to test it out. Also, by now we have a new version. I rebuilt the application as described above. Then to load the application to the blackberry device, we enabled the developer mode on blackberry and used command line to deploy the application.

c:\blackberry.tools.SDK\bin>blackberry-deploy -installApp -device <device ip> -package <location of bar file> -password <dev password setup for blackberry>

We also tried the eclipse plugins, but, they kept erroring out for one reason or another. The blackberry eco-system is still rather fragile. I think they have devoted time and effort to make the android apps work, but in their zeal for security, they have made it much harder to get things actually working - even for a developer. I tried updating Kindergarten Math Lite to redirect to blackberry market. Their security is so tight, they don't even allow apps to direct to their own market!

Kindergarten Math essentially worked on the playbook. But, there are differences in how it works on stock Android or even Kindle Fire. You can get a back button by swiping down from the top of the playbook, but it doesn't always work. It works when going back from settings, but, not when going from one activity to another in the application - another security feature? Who knows. There isn't much documentation available on it.

I had to do the update for the few people who have already bought the app, but I am not sure if I want to continue supporting it.