Honestly, you'll probably do better to have a single .apk and use an in-app purchase to do the free to paid conversion. There was another thread on here that discussed this extensively.
On Jul 24, 2:34 am, Davy <[email protected]> wrote: > 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

