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

