Archive for September, 2010

Google Android Market Licensing Service

Sunday, September 12th, 2010

I was enthused about the announcement of the Android Market Licensing Service.  This is a step in the right direction to fight rampant piracy. You can actually now use a pirated version as an opportunity to sell your app. If someone downloads a pirated version, you can use the licensing service to detect it and direct them to buy the paid version.

However, there are a couple of problems. First of all, the generic version of the licensing code has been crackedTim Bray responded to this with the comment that “100% piracy protection is never possible in any system that runs third-party code…” Quite true. Contrary to this Google blog entry, it’s usually easy to crack. All forms of licensing, unlocking, server-side validation, and tamper detection come down to some point in the code that essentially says:

if (!licensed) { rejectUser(); }

It’s relatively easy to find this “if”. The pirate just has to debug the code, run to the point of rejection, and work backwards. The cracker can change the value of “licensed” or change the “then” branch in the Dalvik code to branch to the point after the “if”. Server-side validation can be circumvented the same way – at some point it all comes back to your code. Once cracked, the pirate can post the .apk online and almost anyone can install it. All of your hard licensing work as a developer has been wasted.

This is the problem with any license check embedded in an app. Once the app has been cracked by one experienced person, it can be distributed to thousands of unexperienced users. We need something harder to crack and near-impossible to distribute. I think the solution lies in Android itself. Android needs to check if the app has been licensed when launching the app. If it hasn’t been, reject the user. Then the potential crack lies in the Android system code. Most people are not going to installed a cracked version of Android.

Sales Resistance: Free and Paid Apps

Sunday, September 12th, 2010

Any time you put an additional step in the sales process, you gain an opportunity to lose a customer. Such is the case with Free and Paid apps. It’s a common freemium pattern in the Google Android Market and Apple App Store.

You’re familiar with the pattern – there’s a Free version of the app that’s restricted and then there’s a Paid version that has all of the features. As a developer, the problem is that you have to maintain two versions of the same app. You have two app store listings. You have to track two sets of stats. It’s difficult if not impossible to track Free to Paid conversions. You can’t tell if your marketing tool (the Free version) is working.

As a customer, you may like the Free version, but find it confusing how to upgrade to the Paid version. Here’s  the typical scenario for the Android Market:

  1. George downloads the Free version of your app.
  2. George uses it for a while and likes it.
  3. You’ve put a “Buy Full/Paid” button somewhere in your app. George clicks it.
  4. George is taken to the Market app and is presented with the single-line app listing. This shows the price and rating. He doesn’t care – he knows what he wants already. He’s made his own rating in his mind. This is the first chance for George to leave the sales process.
  5. George clicks on the app. He sees the description of the app, screenshots, etc. He doesn’t care – he already knows what the app is all about. Second chance for George to leave.
  6. George clicks the “Buy” button.
  7. A list of security permissions is presented. George doesn’t care – he already agreed to them with the Free version. Chance 3 to leave.
  8. George accepts the permissions by clicking “Ok”.
  9. George is taken to Google Checkout. If George doesn’t have a credit card setup already, he must do so now. It’s a fairly cumbursome process. Chance 4 and 5 for George to leave.
  10. George clicks “Buy Now”.
  11. The download starts. George is returned to the app description with a button that says “Cancel Download”. Why? He just purchased it. Chance 6 for George to cancel.
  12. After the download is done, the buttons change to “Open” and “Uninstall”.  Uninstalling at this point grants an automatic refund. Chance 7 for George to leave.
  13. If George clicks “Open”, he’s taken to the Paid version. Good. That’s what we wanted.
  14. But wait…there’s more! George now has to hunt down the Free version of your app and uninstall it. He doesn’t need it anymore. Some users get confused at this point and end up uninstalling/refunding the Paid version on accident.

Whew! George should get a medal or something! This could be much simpler. You create one version of your app. It starts out in restricted/Free mode, but it’s unlockable. Then the scenario could be:

  1. George makes one free download.
  2. George likes it. He clicks “Buy Full”.
  3. George is allowed to pay via carrier billing (simplest) or checkout with any online payment provider he might have.
  4. Android Market allows your app to detect whether it has been unlocked, possibly via an enhancement to the licensing service.
  5. George is returned back to the same app which is now fully featured.

This could also happen incrementally, allowing George to unlock multiple features as he wants them. How ’bout it Google? In-app payments? Simplified payment process? Support for payment methods you already have?

Syrious Acknowledgment

Saturday, September 4th, 2010

I must give many thanks to my wife and kids for putting up with my long hours and lack of attention while I was completing our new game Syrious Blasts and launching our new brand Syrious Games. Your patience with me is greatly appreciated!

Syrious Blasts! First Release

Saturday, September 4th, 2010

We have made our first release of Syrious Blasts!™, an addicting fast-paced puzzle game for Android devices. The Lite version is free and the Full version is on sale right now for $.99.

Go and grab yours before the price goes up!

AlphaMixr Renamed to Syrious Scramble

Saturday, September 4th, 2010

We have renamed our popular “AlphaMixr” game to Syrious Scramble™. This aligns with our new Syrious Games™ branding.

New name – same addicting game!