• 51
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

自己紹介

はじめまして @wasabeefと申します。

私は、都内で働くエンジニアです。
何エンジニアかと言われると、いつも言葉を濁していますが
Android, Front-end (JS), infra を中心に色々な技術に手をだしてみたりしてます。

これまで、Advent Calendarを見てるだけだったので
今年は、その一端に参加してみようと思い、本記事を投稿したいと思います。

今日のお題について

今年のGoogle I/Oで、「Android Studio」という開発環境が発表されました。
それまで皆さんの開発環境は、Eclipseだったり、IntelliJを使用されていたかと思います。

私自身、IntelliJ + Mavenを使用して開発していました。

まだまだ、私の周りを含めて、Eclipseで開発を行っている方が多いので
Android Studio + Gradleを使用して、その便利さの一部でも伝えれたらと思い
今回は、「 Gradleことはじめ 」ということで書いていきたいと思います。

Android Studioとは?

 Android Studioとは「InteliJ IDEA」をベースにAndroid向けに最適化された統合開発環境です。

参考:Eclipse ADTに代わるIDEとなるか? Android Studioの基礎知識

Gradleとは?

そもそもAndroid Studioは、よく聞くけどGradleってなに?って思いますよね。

Eclipseで開発していると、標準のビルドシステムでは、antが使われています。
でも、周り見ると素晴らしいものが沢山あるのに、まだantを使い続けますか?

Androidの開発に置いて、support-packageを始めapache-commons、
android-pulltorefreshやActionbar-sherlockなど有名で素晴らしいLibraryが沢山ありますよね
そしてそれを使う場面が多く発生すると思います。

でもantだと、それらを自分でダウンロードしてきて、gitにpushすることになるでしょう
そのLibraryにBug fixがあったら、再度ダウンロードしに行くなんて、私は面倒くさくて出来ません。

そこで、登場してくるのがビルドシステムです。
ただビルドシステムといっても、多種多様なものが存在していて何使えばいいか分かりません。
Google I/Oで、Googleが「Gradleを使うのが良いと思うよ」という案を提示してくれました。

antは柔軟で便利なのは良いのですが、自由度が高く、XMLで書かなければいけないため、慣れるまでが大変です。
Libraryの依存関係を解決する仕組みがないため、みんなの環境を合わせるのに一苦労します。

mavenは依存関係を解決する仕組みがあり、javaエンジニアなら使える人が多いかと思いますが
とは言っても、XMLで書かなければいけないため、使いこなすまでには多くを学ぶことが必要です。

そこで、登場したのがGradleです。Gradleは設定をGroovyと呼ばれるスクリプト言語で書きます。
Groovyで書かれた設定ファイルは、とても可読性が高く、Javaでも書くことが可能なため
すぐにでも初められる環境が整っています。

それでもまだAndroid Studio + Gradleを使わないんですか?
Android Studioのバージョン0.xだから使えないと言うんだったら、IntelliJを使ってみましたか?

さあ、さっそくAndroid StudioでGradleを始めよう

Android Studioをインストールすることは必要ですが、Gradleをインストールする必要はありません。
Gradleを使う上で、Gradle Wrapperという仕組みがあるため、Gradle自身も自動でダウンロードさせることができます。
まず、Android Studioでプロジェクト作成してみましょう。

プロジェクト配下に build.gradle というファイルが生成されたかと思います。
Android Studioのバージョンによって数値が若干違うかと思いますが
大枠の構成は以下の通りになります。

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.6.+'
    }
}
apply plugin: 'android'

dependencies {
    compile files('libs/android-support-v4.jar')
}

android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

    defaultConfig {
        minSdkVersion 9
        targetSdkVersion 16
    }
}

これだけでも、antやmavenに比べると見通しが良いものと感じて頂けると嬉しいです。
gradleは、Maven Centralを利用できるため、依存関係の解決も楽にできます。

buildscript { } は、ビルドを走らせるコードを設定します。既にMaven Centralが設定されています。
android { } は、AndroidをBuildするために必要なものを設定してきます。

今回は、Gradleを始めるに至って、参考になるものを紹介して行きたいと思います。
まだ、日本語の書籍がないため、英語の書籍しかありませんが
オライリーからGradle Booksが販売されています。

また、日本語で読みたい方は、有志が翻訳して下さってるので、是非参考にさせていただきましょう。
Gradle 日本語ドキュメントが公開されているので、参考にして下さい

この投稿は Android Advent Calendar 20131日目の記事です。