自己紹介
はじめまして @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 日本語ドキュメントが公開されているので、参考にして下さい