I am developing a new app that will come in three versions: Free, paid lite and paid pro.
I am planning on using the Google license model and therefor use the following way to develop my app:
I Have a library project that contains all the basic code and activities.
I have three projects that use this library and where needed I make new activities that inherited the base activity class, in the new activity class I override functions to exclude or include functions.
For example a base activity could be:
public class Base_Activity extends Activity {
protected void DoSomething() {
//Some code here
}
}
In my free version I would do this:
public class Free_Activity extends Base_Activity {
@Override
protected void DoSomething() {
//Do nothing, maybe inform the user this function is pro only
}
}
And the pro version would be:
public class Pro_Activity extends Base_Activity {
}
As you can see I did not override the function because I do not exclude the functionality in the pro version.
In your manifest you register the Pro_Activity/Free_Activity classes.
This way you have the option to customize the versions, have 1 master library with all the working code, and you can use the Play license model.