Gradleは、Groovyで書かれたビルドシステムです。GradleをAndroidアプリ開発に使用すると、便利なことがいろいろできます。本連載では、Gradleの特徴やインストール方法、便利な使い方を解説していきます。


 ビルドシステム、ひいてはGradleがあると助かる場面とは、一体どういう場面でしょうか?

 筆者の具体例でいうと、ある日上司がやってきて、「今お前たちが作っているアプリを俺の端末にインストールしてくれ。」と言ってくるわけですね。1回だけならば話は簡単です。

 PCと端末をmicroUSBで接続して、Eclipseを起動してADTでアプリをコンパイルして、端末に転送してインストールして返してあげるだけです。

 ですが、それが2回も3回も…となってくると、思わず「自分でやってください!><」と言ってしまいたくなりますが、上司のPCには開発環境が整っていません。それに、新しいAndroidのSDKがリリースされたら上司のPCの環境を更新する作業をやってあげなければいけません。しかし、僕はそんな面倒くさいことは引き受けたくありません!

 そこで、登場してくるのがビルドシステムです。今のAndroidの標準のビルドシステムではantが使われています。antでも、「このバッチファイルを叩いたら勝手にアプリが端末に入りますから!><」ぐらいまでは持っていけます。ですが、Android SDKのインストールやantのセットアップはやらなければいけません。これだけでもだいぶ楽になりましたが、今一歩というところですね。

 もし、Gradleであれば、Gradle自身のダウンロードもGradleにやらせることができますし、Android SDKのダウンロードも気合を入れればさせることができるでしょう。また、GUIで操作することもできるので、上司にソース一式を渡して「自分でやってください!><」で済ませることもできるようになるでしょう。

 ここまでできれば、格段に楽になったといっても納得でしょう。

 さて、ここからは一般的なお話です。ちまたには、色々なビルド方法があふれています。Makeだとか、Antだとか、Mavenだとか色々です。自分で書いたことがないまでも、利用したことさえない、という人は滅多にいないでしょう。

 Makefileは利用できるプラットフォームを選びます。また、その自由度の高さ故にプロジェクトごとに共通の使い方というものが決められているわけではありません。

 Antは柔軟で便利なのは良いのですが、Makefileと同じように自由度が高く、さらに記述もXMLで書かなければいけないため、慣れるまでが大変です。また、ライブラリの依存関係の管理や追加などは行う機能はないためチームで開発する時にみんなの環境をあわせるのに苦労します。

 Mavenは依存関係の管理や追加もできますが、理解するまでに多くのことを理解しなければならず、またXMLですべての設定を行わなければいけないため習得の難易度が高く、いわゆる"ビルド職人"と呼ばれるような特定の個人に依存せざるをえない状態でした。

 そこで、登場してきたのがGradleです。Gradleは設定をGroovyと呼ばれるJVM上で動くスクリプト言語で書きます。

 Groovyで書かれた設定ファイルはXMLよりも可読性が高く、処理の自由度も大変高いです。依存関係の管理も行うことができます。チームで仕事をするために便利な機能もよく考えられて作られていて、大変便利です。今後開発を行っていく上で無くてはならない存在になっていくでしょう。そのために、まずはあなたがGradle職人になってみるのも良いと思います。

 Gradleが行っている工夫については後々紹介していきます。

 その他のセールスポイントとして、ドキュメントが非常に充実していて優れていることがあげられます。公式の英語のドキュメントのみならず、和訳のドキュメントも大変充実していて、これを拾い読みするだけでGradleのことがかなりたくさんわかってきます。

[公式ドキュメント]
[和訳ドキュメント]

 残念な所を無理にあげると、Mavenのpluginとの互換性がないため、熱心なMavenユーザー(筆者のことです)からすると、今までの環境を一部捨てざるをえないことは少しつらいですね。