Archive for the ‘Distribution’ Category

Protect Android Apps with the License Server via Android Market

Thursday, July 29th, 2010

I am not a big fan of copy protection, DRM or anything that prevents the freedom me and how I handle products I bought in future. Is it an app I bought with the G1 and copying it onto my Nexus One, or an old LP that I want to use on my new LP player. Therefore, I am always kind of skeptical when it comes to copy-protection mechanisms. Of course, as a mobile application developer for about 6 years (that’s longer than people know the word iPhone) I have to admit that I thought about those kind of thing a bit in the past. However, IMHO my time is better invested in adding new features to apps, create new apps and hook up with all the users to figure out what the heck they actually want – rather than trying to punish them with copy-protection mechanisms that are just annoying.

With Google recent announcement of the License Server for Android I have to say, they put out a good piece for developers and for users. I haven’t used the License Server yet, but from what I read in the blog article and Android docs (see links below) it looks like a solid mechanism that allows developers some basic protection via verifying whether an app has been bought or not. And to be honest, that’s all you need!

Here is what it does:

Developers can now easily verify whether the current user (more specifically the current GMail account) purchased an app. Developers can implement such verification methods in a jiffy into their apps and after getting verification (or not) they can decide what to do after that. IMHO, this is a very open, very free approach to this delicate topic and I love it! Here is the official chart of how the procedure works:

License Server via Android Market

License Server via Android Market

By leveraging the Android Market infrastructure this library actually puts more value to developers if they use the Android Market. Honestly, the Android Market could use a major round-up upgrade of features and usability. However, it works so far and it gets better. Step-by-step, but hey, it gets better!

My conclusion:

Well done Google. I like this approach and I will definitely use it in future apps as well as in exsiting apps. It’s time for an app update week!

Android Market counting 20k Apps

Wednesday, December 16th, 2009

Android Market Icon
The Android Market just took the leap and jumped above the count of 20,000 applications. While the iPhone’s iTunes App Store is still ahead with about 100,000 applications, I have to say respect guys!

Hammering out 20,000 applications in such a short time without the devices and market power (like Apple has for example) is not that easy. I know there are still a lot of ideas in your heads (as in mine) which just want to be brought to paper life. So get started! Open your Eclipse, hack some lines into it, press compile, test, sign and upload it to the Android Market. No matter if free or paid, every new app brings more variety, more diversity and more attraction to the Android Market, every Android phone and therefore it makes the whole platform more attractive to users all around the world.

Get more about this on internetnews.com

Android Market: Commercial / Priced Applications available for Developers from US and UK

Monday, February 16th, 2009

Android Market Icon
There was just an article called “Android Market update: support for priced applications” published on the Android blog. The problem is that only developers from the US and UK are able to upload priced applications to the Android Market. While it is possible to create an Android Market from all over the world, selling applications for Android requires a Google Checkout account.

Google Checkout is widely known by now as an alternative to several existing online payment gateways. While the idea of Google Checkout is really great and I am looking forward to use; I have to say that I am very disappointed by Google with their Google Checkout strategy. Since Google Checkout has been started they were not able (or just did not want to) allow sellers from all over the world to use their system. A company that has “international” written in bold capitalized letters on their flags, should actually be a bit more international. Anyway, Google is still my favorite search / maps / image engine :)

Following the announcement of Eric Chu in the blog post, saying:

We will also enable developers in Germany, Austria, Netherlands, France, and Spain to offer priced applications later this quarter. By the end of Q1 2009, we will announce support for developers in additional countries.

… tells us some interesting fact about Google Checkout: Google Checkout will be opened to sellers (merchants) from the five mentioned countries and more other countries in this quarter. I am just hoping that my country will be in there sooner than later! I am sorry to be that direct: but I do not see any reason why this is not possible now. We are living in an international world, Google is an international company, the Internet has even international as a part of its name. There are not just developers in the – so called – rich countries who would like to share their products with others. Seems we have to keep publishing free software for a free world! 8-)

Android Market: http://market.android.com/publish/Home

How to access the Android Market without a real phone

Thursday, January 29th, 2009

We have already talked about how you can earn money with the Android Market. However, once you have built and signed your application you might have uploaded it to the Android Market. Unfortunately, the Android Market cannot be accessed from within the Android Emulator of your Android SDK. This is bad :(

Fortunately, there is a G1 Simulator available on the web! :)

This simulator actually allows us to use the phone online and check out its capabilities – including the Android Market. I know, many people might say: mate, just get a G1 and enjoy. However, not everyone – especially poor developers – do not have such a device available – yet. Back to the simulator: unfortunately, this simulator and the Android Market on there does not give us access to the real Android Market. The cool thing is: you can see how other application look like in the Android Market and therefore, you can imagine how your app would look like in there. Here is a screen shot I took:

Android T-Mobile G1 Web Simulator

Want to check it out? Click here: T-Mobile G1 Simulator

How you cannot earn money with the Android Market

Friday, January 23rd, 2009

Remember my article How to earn money with your application through the Android Market? There are some greedy persons out there who might want to take advantage of the “free software” delivery of the Android Market. I will tell you below what is not allowed and why.

Smash Money

What you should not do
The article mentioned above described how you can get up a demo application on the Android Market. It is obvious that this provides possibilities to add a purchase link into the demo application so users can buy the product on your own site. Good idea in the first second, but be aware of the Developer Distribution Agreement you agreed to.

To be clear: This is not allowed.

You will create more of a mess than if you do not have your application available in the Android Market. Sooner or later your application will be reported by a user or another developer (god bless the community!) because you are violating the distribution terms other developers comply with. Don’t blame them – it is just unfair that you are violating terms while they are complying with them. Once your application has been reported to Google it will investigated. I don’t know exactly what happens then but I guess a nifty Google nerd will install your app on his phone and check it out. They will see that you are linking to your own shop and kick you out of the market. This does not help you in earning money out of your application. May be in the very short term while people are actually buying from you. However, in the long term you will not be able to establish a successful relationship with your users which will lead in less popularity and less sales in the end.

Want to do it right? Check out: How to earn money with your application through the Android Market

How to earn money with your application through the Android Market

Tuesday, January 20th, 2009

Android Market
Attention! Capitalistic content following!

Since the Android Market has been started it does support free applications in their store market. Though Google announced that we will be able to add commercial products soon — the actual question is: When?
US Dollar
Until now nothing happened at this front and therefore, I guess it might still take a while before developers can earn some money with their applications. However, the Android Market is being used very heavily already — free software is popular everywhere! So users keep downloading applications from the Market massively. In order to make some cents out of this in future (when commercial products can be sold) you must be up with your application already!

My point is: you need to start grabbing potential customers now, even though they do not spend any money on applications — yet.

Of course, I don’t want you to give your developed apps away for free. Most applications took a long time to develop and you (or your company) spent a lot of time and put in quite some effort to create this neat peace of software. This all creates costs on the developer’s side (if you are not a student who is programming for fun without the need to make a living — again: yet) which needs to be compensated at some point.

How you grab potential customers

The application you want to sell might be finished already (don’t forget to sign it!). It is too valuable to give it away for free but you want users already – for selling the full version to them later or just to get some feedback. The best way to get users using your application is the Android Market. Hence, you need to be in there!

Create a demo/trial version of your application. There are plenty of ways on how to create a demo version. However, as we do not know at which date commercial applications will be available on the Android Market I suggest to “cripple” your full version in order to demonstrate your applications capabilities. A time limitation might be possible too but due to the uncertain time line I would just prefer “crippling”. Though, I am not a fan of that, usually.

Once you have done this you can upload your application to the Android Market at: http://market.android.com/publish/

Android Market Installs / Downloads

Now you just wait and let the installation / download counter increase minute by minute (image above is 6 hours after program upload!). Once the Android Market supports commercial applications you can upload your full version, change the application’s preferences to “commercial” / “paid” content and charge a little fee like say $2. Let us do some maths here for getting a rough idea on what this can bring. In case you gained 20,000 active installations after 2 months, you are having 20,000 users of your application. Meaning: 20,000 users really like your app – though it is crippled. Let us assume half of them (10,000 users) would really spend $2 on the full version. Once you release your full version you will get $20,000 instantly with the release and you are a happy developer!

The Dollar Bill

To be honest, developing applications is not just about money. It is a lifestyle – an art! However, even artists have to eat sometimes or spend money on Absynthe in the evening; so we need some bucks too. I think $2 for a nice app is nearly nothing and everyone can afford this. Just to honor hard work of programming.

Signing an Android Application for Real Life Mobile Device Usage / Installation

Monday, January 19th, 2009

Android Certificate
If you want to publish an Android application you first need to write it :)

The result of your programming will be an .APK file which is the actual program binary of your application. However, the .APK file your compiler creates can only be used with the emulator on your desktop PC or Mac. You cannot use the same .APK file to install and run your app on your Android phone (like the G1, Kogan Agora, or else).

Why is that? Well, Google wants to protect its phone users from installing and running fraudulent software on their devices. Therefore, each and every application needs to be signed with a valid certificate that ensures where the application comes from. Meaning: the developer (you!) signs the application with his/her certificate to make sure it is always traceable where the application comes from. There are a bunch of more reasons to this so lets check out what Google is saying about this topic:

The important points to understand about signing Android applications are:

  • All applications must be signed. The system will not install an application that is not signed.
  • You can use self-signed certificates to sign your applications. No certificate authority is needed.
  • When you are ready to publish your application, you must sign it with a suitable private key. You can not publish an application that is signed with the default key generated by the SDK tools.
  • The system tests a signer certificate’s expiration date only at install time. If an application’s signer certificate expires after the application is installed, the application will continue to function normally.
  • You can use standard tools — Keytool and Jarsigner — to generate keys and sign your application .apk files.

3 Easy Steps for getting what you need to sign Applications
(this needs to be done once only)

  1. Create a keystore with your own keys and certificates
    First of all you need to create a keystore which stores your certificate. A certificate is always created by the developer himself without any interaction from Google. This actually means that Google does not approve certificates before you can use them for signing your application. (Note: other companies like RIM, Nokia/Symbian, Windows Mobile do such things.)

    Once you installed a Java SDK you can use the default keytool application to create your own keystore. A Java SDK is installed by default on Mac OS X machines and can also be installated additionally on your Windows PC or Linux machine. If you have Java SDK running on your system just go to any prompt and type in the following:

    Windows: START»Command
    $ keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -validity 10000

    Windows: Mac: Terminal
    $ keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -validity 10000

    You will be asked to enter a password for your keystore. Choose it wisely and remember it! You will need it every time you sign an APK file. Follow the instructions and finalize the creation of your keystore.

  2. Place the keys at a location that makes sense
    Choosing the right place for your keystore is quite important. Let’s imagine you write more than one application so it would not make that much sense to put this keystore into the project directory of the application you are currently working with. As I am using Mac OS X Leopard and Eclipse I got a project directory like /Users/YOUR_NAME/Documents/workspace/DialANumber. However, as mentioned before a more global approach might make so I copied the keystore to the directory:

    /Users/YOUR_NAME/Documents/workspace/androidkeys

    So we got our keystore prepared for signing now.

  3. Write a short script to make your life easier
    Just to make the life easier I wrote a short script which can be used each time to sign your Android APK file. You can download it below and place it in the same directory you placed the keystore at (see point 2).

    Download: Signing Script for Easy .APK Signing

Once you have done this we are ready for signing our application!

3 Easy Steps for getting your Application signed
(this needs to be done each time you build a binary that is going to be published)

  1. Build your application

    Right click your Android project in Eclipse and select Android Tools » Export Unsigned Application Package.... Follow the instructions and remember the directory your placed the .APK file at. E.g. cd /Users/YOUR_NAME/Documents/workspace/DialANumber/deploy/

  2. Go to your keystore & script directory

    cd /Users/YOUR_NAME/Documents/workspace/androidkeys/

  3. Sign your application
    In your androidkeys directory you need to execute:

    ./sign-mac-example.sh ../DialANumber/deploy/DialANumber.apk
    Enter passphrase:

    After you entered your passphrase the application should be signed.

You can now upload your app to your server and install it on an Android phone or you can even publish it on the Android Market!

Sources:

P.S.: The complete signing process (the part you need to do each time you sign an app) could be integrated better into Eclipse. I hope Google improves this in future. They could add an entry like Android Tools » Export Signed Application Package... so the developer just needs to enter the passphrase in a GUI dialog. This would make everyone’s life much easier. Perhaps a bored Eclipse PlugIn developer might want to write a plugin for this? It would make many people happy I guess :)

Distribute your Android apps in more countries and offer priced software on Android Market

Wednesday, December 31st, 2008

I just received the following email stating the two major improvements of the Android Market:

  1. New countries added for country targeting of applications.
  2. Commercial paid content / application support.
    • Hello,

      Thank you for your participation in Android Market!

      Since we launched a couple months ago, the team has been working on several significant updates to Android Market. I’d like to let you know about these upcoming changes and what they will mean to you and other members of our developer community.

      Many of you have asked about international expansion plans. I’m happy to inform you that Android Market will become available to users to download apps in additional European countries starting early Q1 2009. Some of the countries we will initially support are Germany, Austria, Czech Republic and the Netherlands. As we add support for additional countries in Europe and Asia, we will send out subsequent notifications to you. In mid-January, we will update the Android Market publisher website to enable country targeting. Please start thinking about which countries you want to target and begin preparing your products accordingly (e.g., localization). Note that your apps will not become available in these new countries unless you specifically select them in the publisher website, after we update it.

      Additionally, I would like to confirm that Android Market will support priced applications starting early Q1 2009, as we’d originally stated last fall. Given the country-by-country work required to set up payment support for developers in different countries, we will enable priced app support in Q1 for developers operating in these countries in the following order: (1) United States and UK; (2) Germany, Austria and Netherlands; (3) France, Italy and Spain. By the end of Q1 2009, we will announce support for developers operating in additional countries. Developers operating in the above listed countries should begin finalizing their priced applications, including determining the appropriate pricing strategy.

      Finally, please note that our team may need to occasionally contact you via email or the publisher website to collect necessary product information (such as screenshots and descriptions). This information would be used for the Android Market website, found at http://market.android.com, which gives applications a second channel of exposure via the web in addition to the normal on-device access.

      We will send out additional details on all these items in the coming weeks. Thanks for your support, and we look forward to continue working with you on Android Market.

      Check it out at: http://market.android.com

Android Applications from Android Market on a T-Mobile G1 – Demonstration Video

Sunday, November 2nd, 2008

Looks pretty easy and very smooth. Especially the Zuma-like game impressed me!