Splitting android application in to two 'branches', free and paid - android

I've developed an android-application that I'dd like to put up on the marketplace. However, I want to split it into two separate applications, one free (with ads), and one paid (logically without ads). How would I go about doing that? I'm not wondering about adding ads (I've alreaddy managed that), but how to take one existing android-application (eclipse-project) and split it into two without having to create a new project and just copy-paste every file one by one (or in batch for that matter). Is that possible?
Btw, I use GIT for SCM, so I've made two separate branches, one master and one free, but I need to set some cind of config-value that makes shure that the market separates them as two different applications.
Also, when a user 'upgrades', is it possible to copy the db from the free app to the paid one?

You could use the Maven Android Plugin to build multiple versions of the same application. You could then specify a different AndroidManifest for each version (in order to specify a different Application Package Name for each version).
Your free and paid version of your app would be different profiles in Maven.

For your second question, don't you use the device's database? If so, you can access it at '/data/data/free_app/databases/' and copy it over to /data/data/paid_app/databases/ .
Or even use the same package name for the apps, and make both use the same database. You'll have to make the free one uninstall itself when the otehr is bought so the data doesn't get weird.
See here in case you use an app database.

you could do in app payments to make the upgrade to paid version, it'd be neat because you'd have everything on just one project

Related

Implementing the same feature on two app versions

I have two versions of an app (paid and free). When I add a new feature in both versions I have to write the same code on both of them. Is there a way to write the code on one of them and then add automatically on the other? Or at least set a point from which to start marking the code lines changed to add it later on the other version?
I would create an Android app that will act as a core. Both the paid and the free apps would use it. Everything that's using the same code should be moved into the core app and only the differences should remain in the free and the paid apps, respectively.

Make an application replace existing Application

I have 2 Applications 1 with Ads and 1 without Ads.
I created one without ads and then copied the project in eclipse. I named the new project AdFree. I then proceeded to add Ads to the other project. Now, both Projects have the same com.mycompany.myapp name so when I tried to upload it it said I already had a project with that name even though the APK's where named differently.
I want it so if they have the Free (Ad based version) version and they purchase the one without ads, it will replace the Free Version that is already there.
You can't do that. You have two solutions:
A) Make two different versions, with two different package names. This way the user will have to uninstall the ads supported version when he buys the ad-free one.
B) Make a single app, ad supported, with the possibility to remove ads with In-app biling service (This will require a little research, but I think the result is better, since you have to deal with a single app).
There should be more options to handle your problem, but these are the most common solutions.

The right way to provide a Premium update to a free Android App

I have been developing a free game (with ads) on the Android Market. Now quite a few people are requesting me to do a paid version without ads. I have no experience in keeping multiple versions of a single app.
I have already factored out the app on Eclipse: a library project and a (free) app project. Now I'm going to add a new project for the paid version.
My main problem has to do with the most efficient and reliable way to import old settings and data from the free version if it happens to be already installed on user's phone.
Ideally, I want users not to have to export data and settings manually.
I think hardcoding file paths is not robust.
I am too lazy and daunted to implement a ContentProvider.
Is there an easy way to query for data and settings from another app of mine, given the package name?
Thank you very much.
You don't need to copy anything or even install another app. Just add an in-app purchase to the free app that disables ads.
Barry

Demo and paid application - how to implement?

I have nearly completed my application and about to upload it into Android Appstore. I need to divide demo and paid versions - one is free with limited capabilities, another one - paid with full functionality. The question is: how to implement it - the only idea which I have in my mind is following:
Upload 2 independent applications placed on different packages. But in this case there's one obstacle: let say user installed demo application packaged as my.foo.demo then user decided to buy full version which will be installed in package my.foo.paid. In this case I need to provide user with ability to transfer user files/data/preferences from package my.foo.demo to my.foo.paid. Wow, but it's not very simple task (keeping in mind Android's security model)
Probably there's another approach? Any ideas?
The easiest way would be to upload two independent APKs. There is a way to have a user download a free version, and then download a "key" application that unlocks the paid functionality. That can lead to lots of user confusion since sometimes they will download the "key" application and not the base application. So if you can upload two different versions, that will eliminate that hassle (but means you have to maintain two versions).
So now to answer your question about sharing the data. The simplest way would be to have a content provider for your data and just export that to the paid version. Alternatively, you can look into the sharedUserId attribute in the application's manifest. This will allow you to run in the same process and access the same files.

Upload two similar applications to Android Market

I want to upload the same application twice to the Android Market. One version will have AdMob messages and the other version of the same app will cost a pair of bucks.
Should I make two applications with differents packages names in order to upload them or is there any trick to do it with the same project.
Thanks in advance.
Every application at Android Market must have unique package name, so you have to place your apps into different packages (one be a subpackage of another though, i.e. com.app and com.app.ads). You can share common code in a library project.
You will need two different package names. You might also consider to exclude certain parts of your code in your free version, because Android Market is known for not being the most secure distribution channel. But if the only difference is the additional ads in your free version, it is not worth the effort.
There is another possibility, which unfortunately, I don't know how to do, but I'd like to find out. You can put all the functionality into one app and then create a second app which acts as a "key". Users download your first app for free, but it has limited functionality unless the "key" app is also present. You would charge users to download the "key" app.
This solution has the advantage of not having to maintain two code bases for every app, which is what I do and it drives me nuts.

Categories

Resources