Tag Archives: development

Solar Explorer: The next update

According to FedEx tracking, my Playbook will arrive tomorrow, so I’ll finally be able to see how Solar Explorer looks on it.

I can’t wait :)

I’ve had two visual bugs reported in the Playbook version of Solar Explorer, which will be fixed in the next update. The first occurs when the app is started while the Playbook is held in portrait orientation that I’m guessing causes the UI to be squashed horizontally across the screen. The other is that the Sun is flickering or vanishing when the camera is a certain distance from it while viewing Solar System orbits.

I think I already know how to fix both.

I’m not going to rush out an update immediately though as neither of these are critical issues and I want to add a few requested extras such as a mode for displaying the real-time position of the planets, and a method for controlling the speed at which the simulation runs.

I’d also like to add support for language translations, starting with French.

The reason there’s no language options in Solar Explorer is that there’s a lot of text and it was constantly changing while I was working on it, up until December last year. A professional translation service costs at least 10c per word for someone who will do a decent job, and with about 7,000 words in the app, it was just too expensive.

The alternative, Google Translate does a good job, but it doesn’t understand what it’s translating, so it will mess up reference material, like Solar Explorer.

Eric Desgroseilliers has kindly offered to take the French Google Translation, read through it and correct any obvious mistakes that the bot makes. In the meantime I’ll be modifying the app to accept translations and adding a screen to let the user choose a language.

Once these changes are done, I’ll be rolling them out in Android Market first, followed by App World a few days later.

The reason that my most favourite people in the world, Playbook owners, won’t be getting it first is that it’s quicker and easier to upload a patch to Android Market if there’s any problems that don’t show up during testing.

On market stats

It’s no secret that I use Flurry to anonymously count the number of times my apps get downloaded.

Android Market’s download stats have in the past been completely wrong, while rival markets generally “double count” downloads, including both updates and new installs in their totals.

Then there’s the figures I’m seeing for my latest app, Transmutation.

Android Market: 14
Slide Me: 194
Opera Market: 133
According to the official stats, it sank like a stone Android Market, but that’s not surprising because that’s how Google likes it. On the other two markets it’s actually getting some interest.

Meanwhile, Flurry says otherwise, with a total of 66 downloads recorded for the same period of time, which implies that Opera and SlideMe are claiming multiples of the total number of downloads that Flurry knows about. Flurry’s stats also show that those 66 people spent a combined total of more than 14 hours playing the game, or over 12 minutes each.

Normally I’d say Flurry is correct and the other two markets need to go back to school to learn to count. However, for the same period, Admob is reporting 1,345 ad requests. Each ad is shown for one minute, so if there really were only 66 downloads of the app, then each install has been played for up to 20 minutes, more than twice as long as Flurry reports.

If however we use the total number of installs as given by the markets involved, then there’s been 341 users that have seen 1,345 ads, giving an average of four minutes of play time per install.

For the first time I have reason to doubt Flurry’s stats, but only for Transmutation. I’ve closely tracked Flurry’s figures for Solar Explorer and have totals that separate Android Market from the rest. Since Google fixed most of their problems, Flurry’s daily figure has been pretty close to the one reported by Android Market.

Something weird is going on, and as usual, it’s a guessing game to figure out what.

At least there’s one positive to draw from this: The worst case scenario is that the average person who downloads Transmutation spends four minutes playing the game, which is a pretty good result.

Announcing Transmutation

One of the problems I’ve been struggling with recently is a lack of exposure for my apps, Solar Explorer and Exoplanet Explorer. This has caused them to lose rank positions in the Education category in Android Market and I believe it was the result of changes I’d made to the apps in late December, which although improving them, also caused them to be shared less.

I made some adjustments a few weeks ago, and it has had a positive effect, resulting in a doubling of the rate at which my apps are shared. This has significantly boosted downloads of the free versions on SlideMe and AppsLib markets, but hasn’t translated into increased sales. Sharing on Android Market increased from such a low level that it’s only really stopped the decline, and has yet to turn into measurable growth.

Because of this, I’ve decided to branch out and produce a series of free apps to stake out a presence in other categories besides Education, which will hopefully draw more attention to my work from people who don’t frequent the education category. As Shiva3D is really designed for producing game and multi-media applications, I’m going to write some simple games, but I’m going to make them as awesome as possible.

Simple and awesome. What could possibly go wrong?!

Transmutation

After two weeks of development, the first app is ready, and it’s called Transmutation, available now on Android Market and SlideMe and later on various other smaller markets.

The player controls a microbe located at the corner of the game board, and has the ability to change it’s colour using buttons arranged along the bottom of the screen. The colour changes will spread across the board to other microbes that are the same colour as the player’s, but only if they are touching it, or another that is the same colour. The player only has a limited number of colour changes for each level, and a level is only complete once all the microbes are the same colour.

Much of the last fortnight was actually spent constructing the menu system that you see in the game. I’ve written it in such a way that it’s easy to configure is reusable, so that I can take the menu system, apply a coat of paint, and use it again in the next app. The framework will be shared between all the apps I write, so that if I upgrade the framework for one, I’ll only need to recompile the others for them all to inherit the improvements.

It’s actually been a fascinating project so far, especially now that it’s been uploaded and I can see how people are playing it. There’s only been a handful of downloads so far (damn you Android Market’s lack-of-discoverability!), but it’s nice to see that most of the users who have tried it have actually kept it installed and played it a few times.

This is actually the second game I’ve written, the first being a shoot-em-up called “Scumble” written way back in 1991 on my Commodore Amiga, which was released to Aminet and is probably out there on the Internet somewhere. I’ve long since lost the source code, so I’ll have to track it down one day and relive the olden days with an Amiga emulator.

Why such a large gap? I, like many programmers, was afflicted with the chronic inability to finish a project because I’d get bored after the fun bit was done and think of something more interesting to write. I’ve since learned secret of how to deal with that phase of a project: I start to lose interest, I write up a list of everything that’s left to do and then make myself complete each item, one at a time.

It’s a painful process, but it gets the job done.

That’s the first game out of the way, so it’s time to start on number two. I expect this one will feature monkeys and bicycles, and should be complete with less than 14 days of development time.

But you never know, it could turn into something completely different.

Playbook update

RIM have finally confirmed that I’ve scored a free Playbook, and that it’s going to ship shortly. Exoplanet Explorer will appear on App World soon after the tablet falls into my hands.

The struggles of an app developer

You might have noticed in the past few weeks that there’s been a string of updates to the free version of Solar Explorer and Exoplanet Explorer.

These haven’t been random improvements, I’ve actually been wrestling with a problem.

Back in July last year, about a month after I released Solar Explorer, I implemented Flurry into the free version so that I could count the number of installs that were occurring. This was done because Google’s install counter was hopelessly broken, so that it didn’t update for weeks at a time and Google refused to respond to bug reports. They seemed completely uninterested in dealing with developers regarding any issue.

Not knowing how many people were installing my app was serious because I had no way to judge whether the changes I was making were improving the app or turning people off. In general, very few people will actually leave a comment about an app, and of the ones that do, many will only do so if they have a complaint. Comments alone are insufficient to determine whether an app is popular.

Since then I’ve been watching my apps slowly grow in daily downloads, right up until Christmas where there was a big spike when new tablet owners began exploring the wide world of apps with their toys. I’d been told to expect that, followed by a decline as things went back to normal after the holidays.

Daily downloads did decline, but in my opinion they’ve fallen too far for it to be “returning to normal”.

The evidence I present is the chart of daily downloads generated by Flurry since July 2011. The purple bit is the aftermath of Google screwing up the market up by breaking search results and other assorted nonsense. Following this you can see the clear up-trend, marked in blue, that ran from September until mid January. After this the up-trend broke down and a clear down-trend is now in place, marked in red.

With the breakdown in mid January, I started seriously to consider making adjustments to my app in an effort to promote sharing of it and hopefully halt the decline. I suspected that some of the changes that I made to the apps in December resulted in them being less likely to be shared, but that the effects were masked by the seasonal boost from Christmas downloads.

Android Market is notorious for lack of discover-ability. Users are constantly bombarded with the same apps over and over and it’s very difficult to find anything new without manually going through page after page of search results. Because of this, most of my free version downloads on Android Market are being generated by app listings on rival markets such as SlideMe, or by word of mouth (sharing), leading to my conclusion that it was probably a decline in sharing behind it.

My two paid apps are the result of about six months of full time work spread over a ten month period, and from December they’ve been generating about 50% of the money necessary to cover my basic monthly living expenses. Most of this money is from app sales, not ads – in fact, ad revenue for the free versions is barely enough to buy a cup of coffee each day. The free versions weren’t really intended to be revenue generators though, they are supposed to be a sample of the full versions.

In the three to four weeks since the trend broke down, daily app sales haven’t really been affected because Solar Explorer is quite highly ranked on the educational charts and I believe that the release notes screen, which was introduced in December, has helped inform people about the benefits of the full versions of both apps. With this in mind, I’ve now added a share button to the release notes screen and highlighted the share and more apps buttons with icons to make them more obvious.

Realistically, it’s all part of the learning curve of being a small developer. I have to figure out how to promote my apps on the cheap and be proactive about issues like declining downloads, unlike larger developers who can grow their presence with paid advertising campaigns.

Exoplanet Explorer: Working towards version 2.0

Today marks a milestone working towards the next release of Exoplanet Explorer, version 2.0, with the completion of what is probably the hardest part: the new planet database and extraction script.

The old one used the same layout that the Exoplanet Encyclopaedia uses, which is what’s called a one-to-one relationship, where each planet is associated with a single star.

In the real world, some planets orbit more than one star. A handful of these have been flagged in the Encyclopaedia with the code “(AB)” as part of the name, meaning that the “star” has an A and a B component, in other words, it’s a binary system with two stars.

There’s more than a handful of binary systems with known planets though. According to my efforts over the last week, I’d estimate that of the 580 or so systems with planets, at least 25 actually have more than one star and that’s not counting the planets which orbit stars that are themselves orbiting other stars.

With this in mind, I went back to the drawing board and completely rewrote the script that constructs the database. The new format will allow Exoplanet Explorer to handle systems with more than one star in them.

I’ve also upgraded the script so that it will fill in as much data as possible whenever it finds missing values, meaning that a lot more more systems will be approximated. It also notes all the calculations and estimates it performs, which will be displayed, so that you won’t have to wonder what’s estimated or calculated and what came from Simbad or the Encyclopaedia.

As a final step, I’ve also gone through the stars that were missing one or two values and, wherever possible, looked up figures from scientific journals. This was a real pain because there’s just not much data on many of the binary stars, in particular the variety known as cataclysmic binaries which are basically a white dwarf star and an M class star orbiting each other. Luckily, these guys are pretty predictable so it’s not too hard to make some basic estimates. One thing I won’t have to worry about with cataclysmic binaries is working out a habitable zone as the white dwarf star’s gravitational field is gradually consuming the M class star, releasing high levels of radiation, hence the name cataclysmic.

The database script should now be able to construct complete models for about 90% of the systems known to have planets.

Kepler 20

I had hoped to get all the changes in this release done while science took a holiday, but alas, discovering new planets is apparently more interesting than wrapping presents during the consumer festival known as Christmas.

Today’s announcement of two actual Earth sized planets in a new system is great, but unfortunately the app is in  a state where I can’t build a release, so you won’t be able to see it until version 2.0 hits the market, which is a shame as the hot Terran model is already in the app that you’ve got.

Luckily, this won’t be an issue for much longer as in addition to the new database in v2.0, the app will be able to update the data without having to download a new version.

This also means that the price of Exoplanet Explorer will have to rise a little because this website will be providing the data for free, so bandwidth has to be paid for and besides that, the new database has to be maintained on a regular basis. My script does most of the work, but I’ll still periodically scan the list looking for scraps of data on planets to make it more complete for you.

If you want to avoid the price rise, then now is the time to pick up the full version of Exoplanet Explorer before V2.0 arrives.

Oh, and Exoplanet Explorer v2.0 will be appearing on SlideMe market too for those of you who don’t have access to (or hate) Android Market.

Saying goodbye to Google

Over the last four months I’ve turned from a naive Google fan-boy buying into the well known “Do no evil” motto, to a jaded app developer who thinks he’s seen it all (but probably hasn’t) on the front lines of the Android market.

It’s been a wild ride, and it’s certainly not been fun.

That’s not to say that I think Google is darkest, purest form of evil that ever stalked the Earth.

Far from it.

What I’ve learned is that Google is a business that is trying and succeeding in making a profit, and whether I succeed or fail as an app developer is irrelevant to the company.

Google’s core market is advertising, which is why they purchased the Android OS back in 2005. At the time, the directors must have looked further ahead than the next quarterly statement, unlike most companies these days, and what they must have seen was a world that was moving towards a mobile future. It also must have been obvious to them that if they wanted to remain relevant after this transition, they would needed to make sure the Apple, Nokia and Microsoft didn’t control the browsers on all mobile devices, or they’d be sure to block Google’s access to eyeballs, which would be very bad for business.

The key to Android’s success was a decent supply of applications for the newly launched devices. Google must have realised that it was going to be hard to convince established iPhone developers to invest resources to port apps (it’s still difficult today), so rather than pay them to come, they simply made it cheap to become an Android developer and limited paid app sales to a few regions. This forced developers with limited resources to produce lots of lovely free apps to try to emulate the boom that was occurring on Apple’s iOS platform.

Fast forward to the present, and we have a situation where Google has probably achieved far more than it thought it would with Android. The future is secure, at least for a few more years.

And that’s the problem.

App developers were a means to an end, and that end has been achieved.

That’s why Google provides such miserable support to developers. We’ve done our bit, and for every developer that walks away in frustration, there’s a dozen more who dream of the hitting the big-time.

Google aren’t being evil, they just don’t care.

It’s also why developers were recently banned from the Android support forums. Some of us had kicked up too much of a fuss when we went to the media because we couldn’t contact Google about payment issues that had been going on for weeks.

Rather than fix the problem, Google shot the messengers. It’s cheaper than implementing a proper support service, after all.

Developers are now are left with an email system which largely isn’t monitored by humans. I should know; out of numerous problems I’ve tried to report over the last couple of months, I’ve rarely had contact with a human, and even when I do get someone, nothing is achieved and they usually stop responding to my emails. Sure, the problem might eventually get fixed through other means, but it’s not because of email support.

No, it’s not time to move on and I’m not dropping Android. I love Android and no matter what anyone says, I’ll be sticking with it, while it remains popular.

What I am going to do is cut as many Google products out of my life as I can and start using other services. No more “G” anything, unless it’s absolutely necessary.

As a first step, I’m going to start providing Solar Explorer on alternate stores, beginning with Slideme. I came to this decision earlier today after reading an interesting article that compared different app store performance and showed, quite possibly, that Google’s market isn’t the only viable app store anymore.

I’ll know soon enough, and I’ll report back here how things are going.

Android is all grown up now and may no longer need the financial support of Google to make it in the world.

Google had better think carefully about how it continues to treat the developers that are largely responsible for the platform’s success, or they may find that the developers don’t need Google either.

Is Google losing the plot?

I have something I need to get off my chest.

I’m finding that I’m not liking Google as much as I used to.

I recently realised that I’d started to feel this way around the time that I decided to become an Android developer, and it’s only been getting worse since then.

Becoming an App developer

I was one of the “early” Android adopters here in a Australia, picking up a HTC Desire a little over a year ago.
After I’d gotten over my initial addiction to  Robo Defence, I decided it was time to investigate app development for Android, which brought me to my first frustration. Google didn’t support paid apps outside the US and a few select countries at the time.

Googling this revealed rumours that other countries would be added to the paid app list, but Google’s only response was something along the lines of “we’re working hard at adding more countries to the list”. A quick browse of the Android support forums revealed that they’d been hard at work for over 18 months with no apparent progress.

As there was no hint of a change in the near future, I gave up thoughts of app development until October, when Google surprised Australians (and others), informing us that we would finally be able to sell paid apps. I signed up that same day, paid my US$25 and discovered my second frustration: Australians couldn’t enter bank account details for the paid apps they were trying to sell, so they couldn’t be paid.

It took Google a month to fix that little problem and complete the “launch” of paid app development in Australia.

Solar Explorer and the mystery of the install counter

By December 2010 I had began serious work on my first app, Solar Explorer which eventually took five months to complete (working on it part time). In late May my baby was delivered into the market as a $2 app, followed a short time later by an Admob supported free version.

Less than two weeks after I’d released the free version, I noticed something strange: the install counter on the developer dashboard stopped climbing, while the download counter continued to rise.

Surely 100% of users that were downloading the app weren’t uninstalling it, were they?

No, they weren’t uninstalling it. The dashboard’s install counter had become “stuck”.

I searched for a way to report it to Google, but I couldn’t find any contact details. Eventually, I ended up at the developer support forum again, where a lot of other people were complaining about the same thing. Reading through the comments, other developers were apparently under the impression that the forum was the main contact point for Google, and that Google market representatives would see the problems and sort it out.

Except they didn’t.

For two weeks.

Eventually someone at Google must have noticed it because the problem was finally added the known issue list, and a few days later the counter slowly started to creep higher as a database was apparently being rolled forwards, replaying the missing install updates. After several days of this the data caught up and Google removed the issue from the list.

A week later, the same thing happened again: the counter got stuck, loads of complaints, no sign of a Google rep and finally, the counter starts moving up after days of waiting.

Round three happened in early July though this time it played out a little differently. Google eventually noticed the problem as before, the issue was added to the list and then the counter started to rise, which is where it deviated from the plan. For some reason, several days before the data had caught up, Google decided the problem was fixed, removed it from the known issue list and walked off, leaving the counter stuck.

A job well done.

Since then the counter has finally caught up again, but I didn’t notice when it did it. I stopped paying attention once I’d implemented Flurry into my free app.

For nearly half of the eight weeks I’ve had an app on the market, I have had no idea how many people that were downloading the app were keeping it. Perhaps it wouldn’t have been as bad if Google had at least kept their developers informed about what was going on, but based on what I saw, Google honestly had no idea that there was anything wrong.

The worst part is that the only communication channel developers are provided, for our 30% fee, is about as useful as shouting into a wet paper bag.

Wake up Google.

You aren’t providing a free service, we’re paying you, so it’s about time you did something to earn that money.