Gradleプラグイン作ってみた
こんにちは!最近暑すぎて外に出たくなさすぎて家でPCといちゃいちゃしてるリア充のhentekoです!
現在DeployGate開発チームでインターンとして開発に参加させてもらい、色々させてもらっています。
このミクシィのエンジニアブログ、インターンとして参加する前から結構見てたのですが、まさか正社員になる前に書くことになるとは思ってなかったので結構緊張してます。
そんな僕が作ったものがつい先日リリースされました!
GradleからDeployGate APIを簡単に操作できるGradleプラグインです。
GitHubにてソースコードを公開してます。
https://github.com/DeployGate/gradle-deploygate-plugin
今回はこのGradleプラグインについて話したいと思います。
Androidアプリ開発必須ツール、DeployGate
まずは簡単にDeployGateの説明から。
DeployGateはミクシィが新規事業として開発、リリースしたAndroidアプリ開発者向けプライベート配信サービスです。
非常に便利なサービスとなっていて、実際僕も個人アプリを作成する際友人などにテストをしてもらう用にDeployGateを使っています。
さらに、開発端末がOS Xならいいのですが、Windowsだと端末ごとにドライバをインストールしなければなりませんよね。
こういった、本来開発とは関係ないところで時間を使ってしまうのは無駄です。
このDeployGateを使えばそんなことで悩む必要がありません。
つい先日行われた某C社の24時間開発コンテストの時にもとても役立ちました。
正式採用されたGradle
さて、Google I/O 2013でAndroid Studioが発表され、Gradleでのビルドが正式にサポートされました。
詳しくはGradle公式サイトおよびAndroid Gradleプラグイン公式ドキュメントを参照してください。
http://www.gradle.org/
http://tools.android.com/tech-docs/new-build-system/user-guide
このGradle、mavenみたいにxmlを書かなくていいのがとても楽です。
代わりにGroovyのDSLを利用したビルドスクリプトを書かないといけないのですが、普通にjavaのコードも評価してくれるので、最悪javaで書くこともでき、学習コストが低いです。
それでも最低限の学習は必要ですが…
DeployGate APIを使いやすくするプラグイン
めでたく公式にサポートされたGradle、DeployGateでも使いたい!ってことでプラグインを作成しました。
https://deploygate.com/docs/gradle
使い方
基本的には上記ドキュメントを参照していただければ使い方は分かるかと思いますが、ここで簡単に説明をします。
まず、build.gradleに最低限の記述をしましょう。
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4'
classpath 'com.deploygate:gradle:0.2'
}
}
apply plugin: 'android'
apply plugin: 'deploygate'
dependencies {
compile files('libs/android-support-v4.jar')
}
deploygate {
token = "[token]"
apkPath = "[apk file path]"
userName = "[owner name]"
message = "sample"
}
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 8
targetSdkVersion 16
}
}
Android Studioでプロジェクトを新規作成した時に作成されるbuild.gradleから変更すべき点は以下の通りです。
- buildscriptのdependenciesにdeploygateプラグインをclasspathとして指定する
- apply pluginでdeploygateを指定する
- deploygateの設定を記述する
最低限これらを記述することで、deploygateのGradleプラグインは動作します。
deploygateの設定では、
tokenにdeploygateのAPI Keyを、
apkPathにはapkファイルまでのファイルパスを、
userNameにはdeploygateのユーザー名を入力してください。
タスク一覧を表示して確認してみましょう。
$ ./gradlew tasks
以下のタスクが表示されれば、成功です。
DeployGate tasks
----------------
updateDeployGateDistribution - Apk upload and distribution update
uploadDeployGate - Upload the apk file to deploygate
最後にタスクを実行してみて、確認をしてみましょう。
$ ./gradlew uploadDeployGate
APIの結果のJSONとBUILD SUCCESSFULが表示されれば成功です。
配布ページも同時に更新する場合
配布ページも同時に更新をした場合には、updateDistributionタスクを使用します。
その場合、build.gradleのdeploygateの設定を記述する所を以下のようにします。
deploygate {
token = "[token]"
apkPath = "[apk file path]"
userName = "[owner name]"
message = "sample"
distributionKey "[distribution_key]"
releaseNote "release note sample"
}
distributionKeyには、DeployGateの配布ページKeyを指定してください。
タスクの実行が正常に終了したら成功です。
$ ./gradlew updateDeployGateDistribution
まとめ
今回はDeployGate APIを簡単に使うことのできるGradleプラグインについて説明をしました。
このプラグインを使うことにより、jenkinsなどからタスクの実行をしてDeployGateに最新アプリをアップロードするといったことなどが簡単に実現できるようになると思います。
是非活用してみてください!!
また、このプラグイン自体はGitHubにてOSSとして開発をしていますので、自由にforkするなり、不満点をissueに登録してあまつさえpull requestをしたりなど大歓迎です!!
Androidアプリを開発する
↓
githubとかにcommitする
↓
jenkinsとかtravis ciでGradleビルド & DeployGateにアップロードする
↓
最新verのアプリが手元に!!
↓
楽しい!! ✌('ω'✌ )三✌('ω')✌三( ✌'ω')✌