Hi,

I'm thinking about offering a free / paid version of my app on the Market. I 
currently only have a paid application on the market (let's assume the 
current version on the market is called com.myapp).
The idea would be to strip off some of the functionality in the free 
version. I'm thinking about the following approach :

Starting from my current (and only) Eclipse project called com.myapp (using 
package com.myapp), I would :

Move most of functionality into a new library project, using a new package 
com.myapp.common. This project would include most the current classes from 
my project.
A lot of activities / broadcastreceivers / services would become abstract in 
the com.myapp.common project.
Some redesign/refactoring would be in order so that the free/paid version 
can extend from these abstract classes to drive the logic correctly (free vs 
paid).
Introduce a MyAppPro (using package com.myapp - to keep it aligned with the 
current version in the market)
Introduce a MyAppLite (using package com.myapp.lite)

I did a small POC and this approach seems to work to a certain degree. I can 
subclass where needed to provide additional functionality, and can also 
override certain layouts where needed.

However, I was wondering if there were some good scenarios to cover the 
following :

I use intents a lot to do both internal communication in my app, and 
exposing functionality to the outside world. If I have both a free and paid 
version of the app, how do I avoid that these 2 start to interfere.
I have widgets in both the free and paid version. Free version widgets are a 
subset of the paid version. If a user has both the free and paid version 
installed, how do I avoid that the users sees duplicate widgets?
I register a lot of broadcast-receivers. Again duplicates will come into the 
picture here. Do I need to ensure that in my free / paid version, the intent 
filters are properly "name-spaced" that they don't interfere with each 
other, to avoid that both the free and paid version starts picking up 
certain intents ?
I register a lot of activities with an intent-filter (used for "share/send" 
functionality). How do I avoid mixing both the free / paid version.

Is there a way to detect that a users has both the free app / paid app 
installed, and in that case, somehow deactivate the free version ? Are there 
any design patterns / out-of-the-box solutions for that ? Also, any pointers 
to existing resources would be great.

Another approach that was thinking off was to just make the current version 
free, and use in-app-billing to turn it into a fully functional paid 
version. 
However, that would be difficult as I think there is no way to automatically 
convert my existing paid user-base. These would then all of a sudden get a 
free version with limited functionality when they update the app, and would 
have to go through the in-app-billing process (paying twice) to get the full 
functionality.

Regards,
Davy

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to