<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Android &#8211; deploy multiple versions of the same app</title>
	<atom:link href="http://droidin.net/2009/05/13/android-multiapp/feed/" rel="self" type="application/rss+xml" />
	<link>http://droidin.net/2009/05/13/android-multiapp/</link>
	<description>Do your LinkedIn on Android</description>
	<lastBuildDate>Tue, 06 Sep 2011 12:50:23 +0200</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
	<item>
		<title>By: Torben Putkonen</title>
		<link>http://droidin.net/2009/05/13/android-multiapp/comment-page-1/#comment-598</link>
		<dc:creator>Torben Putkonen</dc:creator>
		<pubDate>Tue, 06 Sep 2011 12:50:23 +0000</pubDate>
		<guid isPermaLink="false">http://droidin.net/?p=20#comment-598</guid>
		<description>Having read several solutions I have come to the conclusion that CVS or SVN are the right way. 
 
1. Put code to CVS or SVN. 
2. Add a static and final constant that controls whether app is paid or free. 
3. Develop the paid version. 
4. Commit code to CVS/SVN. 
5. Create a branch for the free version. 
6. Edit branch to include necessary changes for free version (package, references to R.java, the constants, etc.) 
 
When developing new features, implement them to the paid version first and when they are ready, merge them to the free branch. If possible, it helps to design the codebase so that any possible version-specific code is clearly separated to specific files, not all over the codebase. 
 
Any solution that involves Ant or Maven scripting that manipulate the code before building (or god forbid, straight up &quot;bytecode raping&quot; :)) are an extremely bad idea. I have learned in my day job that whatever code you deliver must exist &quot;as is&quot; in version control. If you ship manipulated code, you don&#039;t know what code was executed when a user reports an error. </description>
		<content:encoded><![CDATA[<p>Having read several solutions I have come to the conclusion that CVS or SVN are the right way. </p>
<p>1. Put code to CVS or SVN.<br />
2. Add a static and final constant that controls whether app is paid or free.<br />
3. Develop the paid version.<br />
4. Commit code to CVS/SVN.<br />
5. Create a branch for the free version.<br />
6. Edit branch to include necessary changes for free version (package, references to R.java, the constants, etc.) </p>
<p>When developing new features, implement them to the paid version first and when they are ready, merge them to the free branch. If possible, it helps to design the codebase so that any possible version-specific code is clearly separated to specific files, not all over the codebase. </p>
<p>Any solution that involves Ant or Maven scripting that manipulate the code before building (or god forbid, straight up &quot;bytecode raping&quot; :)) are an extremely bad idea. I have learned in my day job that whatever code you deliver must exist &quot;as is&quot; in version control. If you ship manipulated code, you don&#039;t know what code was executed when a user reports an error.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: 無料版と有料版の切り替えに苦戦中 &#124; DailyTimer.net Blog</title>
		<link>http://droidin.net/2009/05/13/android-multiapp/comment-page-1/#comment-373</link>
		<dc:creator>無料版と有料版の切り替えに苦戦中 &#124; DailyTimer.net Blog</dc:creator>
		<pubDate>Thu, 24 Feb 2011 21:30:36 +0000</pubDate>
		<guid isPermaLink="false">http://droidin.net/?p=20#comment-373</guid>
		<description>[...] http://droidin.net/2009/05/13/android-multiapp/ [...]</description>
		<content:encoded><![CDATA[<p>[...] <a href="http://droidin.net/2009/05/13/android-multiapp/" rel="nofollow">http://droidin.net/2009/05/13/android-multiapp/</a> [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: matt</title>
		<link>http://droidin.net/2009/05/13/android-multiapp/comment-page-1/#comment-209</link>
		<dc:creator>matt</dc:creator>
		<pubDate>Thu, 04 Nov 2010 23:44:54 +0000</pubDate>
		<guid isPermaLink="false">http://droidin.net/?p=20#comment-209</guid>
		<description>for android 2.1 and later &lt;a href=&quot;http://java.dzone.com/articles/building-two-versions-same&quot; rel=&quot;nofollow&quot;&gt;http://java.dzone.com/articles/building-two-versi...&lt;/a&gt; </description>
		<content:encoded><![CDATA[<p>for android 2.1 and later <a href="http://java.dzone.com/articles/building-two-versions-same" rel="nofollow">http://java.dzone.com/articles/building-two-versi&#8230;</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: AndrDev</title>
		<link>http://droidin.net/2009/05/13/android-multiapp/comment-page-1/#comment-84</link>
		<dc:creator>AndrDev</dc:creator>
		<pubDate>Sun, 29 Nov 2009 17:24:04 +0000</pubDate>
		<guid isPermaLink="false">http://droidin.net/?p=20#comment-84</guid>
		<description>Maybe I am missing something, but if I have to change my source code for a specific package, then how do I support com.mycom.android.free and com.mycom.android.paid without having to keep a duplicate of my whole codebase? </description>
		<content:encoded><![CDATA[<p>Maybe I am missing something, but if I have to change my source code for a specific package, then how do I support com.mycom.android.free and com.mycom.android.paid without having to keep a duplicate of my whole codebase?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Madhurima</title>
		<link>http://droidin.net/2009/05/13/android-multiapp/comment-page-1/#comment-32</link>
		<dc:creator>Madhurima</dc:creator>
		<pubDate>Fri, 21 Aug 2009 08:54:02 +0000</pubDate>
		<guid isPermaLink="false">http://droidin.net/?p=20#comment-32</guid>
		<description>This is wonderful. Thanks. </description>
		<content:encoded><![CDATA[<p>This is wonderful. Thanks.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

