2010年7月8日木曜日

小技 無料版と有料版アプリのプロジェクトを効率的に管理

有料版のAndroidアプリを作った場合、有料アプリとあわせてお試し版も用意すると思います。ただ、Androidマーケットは同じjavaのパッケージでアプリをアップできません。また、EclipseでAndroidアプリを作るときはプロジェクト毎に一つのActivityを用意すると思います。しかも、そのActivityのパッケージ位置にRクラスが自動生成されます。この制約があると、アプリでRクラスを参照しているとimport文がプロジェクト毎にべた書きになってしまいます。ちなみにRクラスはfinalクラスとして生成されるので、継承で他のクラスに引き継ぐ事も出来ません。

細かい話なのでまったく伝わらないような気もするのですが。。

こういった事情をあまり考慮せずに進めると、有料版のソースコード等をまるまる無料版のプロジェクトにコピーして、しばらく二重管理が続くような事になります。

この問題に関して2,3日試行錯誤をしたところ、下記の方法で解決しました。

1. Rクラスをコピーして別のパッケージに移動させる(自動生成されたRクラスは直接使わない)

2. 有料版のソースフォルダをsrcとsrc_gameの二つに分け、srcの方にActivityだけ置く。

3. 無料版は有料版のsrc_gameを参照させる([Project]-> [Properties] -> [Java Build Path] -> [Source]で追加できる)

簡単にいうと、Activity以外は極力プロジェクト間で共有させれば良いという事です。
たぶん、この小技は細かすぎて伝わらなさそうですが、もし有料版アプリを作るときがあればこういう話があったなぁと一つの解決法として捉えてくれればと思います。

0 件のコメント:

コメントを投稿