Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android project structure for RC, Lite and Full app

I am planning an app for Android Marketplace.

First I want to release it for public testing as a free RC, to gather some feedback before I publish the Full app as a paid app. When RC is replaced by Full version I will publish a free Lite edition with some limitations.

The plan is to add a basic set of features without any limitations to the RC

Later on there will be

  • A Full paid version with more features
  • A Lite free version with same features as Full but with certain limitations.

I am looking for some advice on how to plan my project structure to avoid a lot of refactoring/moving of code as the application evolves.

Does something like this look reasonable ?

  • A MAIN branch
  • RC free app is derived from MAIN branch and is published to Market when ready
  • When RC lifecycle ends, all changes from RC are merged into MAIN branch and RC branch is discontinued. RC app is also withdrawn from Market now.
  • Lite free app is derived from MAIN branch, some limitations are applied to the Lite branch
  • MAIN branch is now the branch for Full paid app. When new releases of the Full app are ready, changes are merged into the Lite branch so new features are added without any of the limitations removed.
like image 830
Oskar Emil Avatar asked Dec 05 '25 05:12

Oskar Emil


1 Answers

I was facing the same problem sometime ago, I decided to go with following structure. (I have an app with LITE / PAID edition).

I use a single codebase for both edition and I can do this thanks to maven. With it I can just build the target version I need.

My Maven (pom.xml) is so configured that it creates a total new source-base, refactor package name, change AndroidManifest, replace icons, replace properties file, build and sign with the right key the APK all with a single command-line:

mvn install -Dedition=lite -P release

I think this is a good solution, the only drawback is that requires some work to configure your pom.xml right (especially if you don't know maven well).

Hope this helps

like image 113
Wizche Avatar answered Dec 07 '25 20:12

Wizche



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!