[android-developers] Free Version of App

2010-02-24 Thread Nick Owens
Experts (and of course Mark M):

Here I go into the world of Android App deployment, and I have a question
about deployment strategy.

I know I will have a lite version and a full version.  In fact, I just
finished the full version and will start removing some core functionality
and putting in some minor restrictions into the so-called lite version.
The restrictions are simple things like a limited number of records which
can be created, for example.

I have several options.  I could of course:

1.) Create an entirely new project, copy the code base, and remove (comment
in/out) some of the features or restrictions into the lite version.

2.) I could two copies of the code base, which are identical in every way
but a setting in a configuration XML file, which turns on/off certain
functionality.

However, the two scenarios above both suck from a code management
perspective.  I would prefer and am asking to see if it's possible or even
been thought of:

Upload my application to the market as two versions of the EXACT same
codebase (configurations and all).  When installed on the phone, the market
would add an extra tag describing the version number or name of the
downloaded app version.  Then I could program that into the app, not from a
configuration file which would mean I need two separate projects.

Some flag I could access, for example:

If (System.Apps.MyAppName.VersionTag.equals(Free-1.0)) {

  // restrict usage of this feature since free app

} else {

  // allow usage of this feature for full version

}

Thanks,
Nick Owens
VP, ThreeClix
Office: (904) 429-7039
Mobile: (847) 565-9392
After Hours: (904) 540-5830



-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en


Re: [android-developers] Free Version of App

2010-02-24 Thread Mark Murphy
Nick Owens wrote:
 Upload my application to the market as two versions of the EXACT same
 codebase (configurations and all).

Won't work, at least not completely. Each application on the Market has
to have a unique package, as defined by AndroidManifest.xml.

 When installed on the phone, the market
 would add an extra tag describing the version number or name of the
 downloaded app version.

The version number and name are also defined in your AndroidManifest.xml
file. Since you will be uploading a digitally-signed APK file to the
Market, that file cannot be modified once it leaves your development PC.

-- 
Mark Murphy (a Commons Guy)
http://commonsware.com | http://twitter.com/commonsguy

Android App Developer Books: http://commonsware.com/books

-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en


Re: [android-developers] Free Version of App

2010-02-24 Thread Al
I have an app available as a free and donate version but my experience
may be useful for you. I have a single project, with a static final
variable called DONATE which is determined by the package name. You
could do the same thing and set a PAID variable.

 When someone tries to add a record, you would do a check, something
like if (! PAID) { /*inform user*/ } else {/*.*/}. This will be
enough for the casual user but a determined user could get around the
restriction by modifying the apk using tools such as baksmali.

For packaging the donate version, I make a copy of the folder and run
a perl script which goes through the files and changes the package and
any references to add the .donate suffix. I then use Eclipse to build
an apk from this folder. (you will have to delete the .class files in
paid-version/bin/ that refer to the lite/free version, otherwise you
will end up with an .apk which includes useless files.)

-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en


Re: [android-developers] Free Version of App

2010-02-24 Thread Carmen Delessio
It seems like it should be possible to have 2 apps signed with same
certificate.
See the info below.  If your paid app exposed functionality to your free app
you would get the free/paid goal.
The free app would check whether paid app was installed, if it was it would
be used.  If not an upgrade message would be displayed.

This was mentioned at the Android Developer Lab in NYC, but I have not seen
any sample code.  It would be nice to take this from concept to example.

http://developer.android.com/intl/zh-CN/guide/publishing/app-signing.html
*
Code/data sharing through permissions – The Android system provides
signature-based permissions enforcement, so that an application can expose
functionality to another application that is signed with a specified
certificate. By signing multiple applications with the same certificate and
using signature-based permissions checks, your applications can share code
and data in a secure manner.*

-- 
Carmen
http://www.twitter.com/CarmenDelessio
http://www.talkingandroid.com
http://www.facebook.com/BFFPhoto
http://www.twitter.com/DroidDrop

On Wed, Feb 24, 2010 at 7:28 PM, Al alcapw...@googlemail.com wrote:

 I have an app available as a free and donate version but my experience
 may be useful for you. I have a single project, with a static final
 variable called DONATE which is determined by the package name. You
 could do the same thing and set a PAID variable.

  When someone tries to add a record, you would do a check, something
 like if (! PAID) { /*inform user*/ } else {/*.*/}. This will be
 enough for the casual user but a determined user could get around the
 restriction by modifying the apk using tools such as baksmali.

 For packaging the donate version, I make a copy of the folder and run
 a perl script which goes through the files and changes the package and
 any references to add the .donate suffix. I then use Eclipse to build
 an apk from this folder. (you will have to delete the .class files in
 paid-version/bin/ that refer to the lite/free version, otherwise you
 will end up with an .apk which includes useless files.)

 --
 You received this message because you are subscribed to the Google
 Groups Android Developers group.
 To post to this group, send email to android-developers@googlegroups.com
 To unsubscribe from this group, send email to
 android-developers+unsubscr...@googlegroups.comandroid-developers%2bunsubscr...@googlegroups.com
 For more options, visit this group at
 http://groups.google.com/group/android-developers?hl=en


-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en