2015年10月27日火曜日

Android Studioのプロジェクト内モジュールのJavaソース

最近Androidよりも開発環境のAndroid Studioに問題が集中しています。

プロジェクト管理を簡単にしようと、とりあえず同様のソースを多重化させてアプリを作っていたのですが、そろそろ一本化させようかとあれやこれや奮闘し行き着いた先がモジュールという管理単位。



一般的なのかどうかはさておき、色々なところで複数のビルド環境を用意する場合はBuildTypeで切り分けるという方法が多いいのですが、個人的なイメージではBuildTypeはデバッグとリリース以外に考えられなく…

例えば 似たようなビルドをAとBがあるとして、
Build Type: A-debug
Build Type: A-rerease
Build Type: B-debug
Build Type: B-rerease

とかいう指定はナンセンスというか単位が違うと思うのです。

そうすると開発ツールの管理単位がどのようになっているのかと言えば、
Android Studioでは元のツールの管理単位を少し誤魔化して実装しているためにappという特別なモジュールが存在する形になっていますが、一応モジュールという管理単位が使えます。

元のツールがどのようなものなのかは知りませんが、形的にモジュールはライブラリやアプリと言った切り分けが行えて、アプリのモジュール毎にビルドすることができるような形にはなっています。

言い方が歯切れが悪いのは、どうもこのモジュールという単位を利用するとあちこちAndroid Studioが悲鳴をあげはじめ、現状(1.5 Preview 2)でもとてもまともに使えなくなります。

自動的にGradleソースを変更したりソースなどをリファクタリングする機能がものすごく変な動きをしていつの間にかはまります(笑)

はっきり言って手間はかかるかもしれませんが、動かない機能であれば、ディレクトリ構成程度の自動生成で止めて、あとは手動でやらせる形の方がスマートです。

一番悲惨なパターンは File/Project Settingsの中でモジュールの項目を設定して[OK]を押すととんでもないことが起こることが多いいです(笑)

最初は記述しちゃいけないのかと思ったんですけど、どうもそういうわけではなく、バグで消えてしまう部分(モジュール内のbuild.gradleのdependenciesの中の記述)があったりします。

また、javaソースの編集でもR.id系の自動生成のリソースへのリンクが上手くいっていないのか、エラー表示されたままとなります。実際にコンパイルは行えるのでまぁいいんですけどね。

この辺を踏まえるとやっぱり無料で配っているということでいいかげんなのかな?とも感じます。
普通はエクリプスのほうがいろいろ都合よさそうかな?

まぁ自動書き換えで色々とやらかしてくれるのはくるものがありますが(笑)
それともPreview使ってるのが悪いだけかもしれないけど…

0 件のコメント:

コメントを投稿