ぼくのビルドは
にゃあとなく
Tomoki Yamashita
Profile
Tomoki Yamashita
@tomorrowkey
Android Engineer at COOKPAD
ねこが好き
目次
• こんなことはありませんか
• どうしてこうなった
• 対策
• ビルドが終わったら…
• まとめ
こんなことは
ありませんか
./gradle installDebug
10秒後…
20秒後…
遅いなぁ…
ちょっとFacebookでも見るかー
あー、いぬ、かわいい、いいね
Twitterも覗くかー
みんないっぱいつぶやいてんなー
仕事いつしてるんだろー
あーあと、はてブもちょっとだけ覗こうかな…
え、なに、
年収低いとなんでマンション買っちゃいけないんだろう
そもそも年収低い人ってどのくらいを指すのか気になるぞ
どれどれふむふむ
へー、あー、そうなんだ
ブクマもすこし読んでみるかー
あー、そうかー、みんないろんな意見があるんだなぁ
あ、そういやビルドしてたの忘れてた!
_人人人人人人人人_
> 忘れてた!! <
 ̄Y^Y^Y^Y^Y^ ̄
あーあ、とっくに終わってんじゃん…
どうしてこうなった
どうしてこうなった
• gradleビルドくそ遅い
• ビルドが終わったことに気づけない
対策
対策
• ビルドを速くする
• ビルドが終わったことを知らせる
デモ
ビルドが終わったら…
ビルドが終わったら
ネコがなくようにしよう!
仕組み
• ビルドスクリプトでビルド完了時に音を鳴らすコー
ドを書く
こんなコードを入れるだけ!!
ビルド完了時に
音を鳴らすコード
android.applicationVariants.all { variant ->

if (variant.install != null) {

variant.install.doLast {

String url = http://example.com/sound.wav ;

String path = "${project.buildDir}/finish_sound"



def file = new File(path)



if(!file.exists()) {

new URL(url).withInputStream { input -> 

file.bytes = input.bytes

}

}



['afplay', path].execute()

}

}

}
※人のサーバを勝手に使うのはお行儀悪いのでやめましょう
制限事項
• afplayはMacにインストールされている音楽再生
コマンドなので、Mac以外で動きません…
• Windowsは再生部分を差し替えて頑張ってくだ
さい
もしもネコが嫌いなら…
音楽再生部分を以下に差し替えればbeepに変更可能
3.times {

java.awt.Toolkit.getDefaultToolkit().beep()

System.sleep(100)

}
まとめ
まとめ
• ビルド完了に気づくことができるようになった
• きっとこれでより効率的に開発ができるようになる
はず!
• 切って貼ったコードなんで、詳しい人はもっとナウ
いコードにしてください
• ねこかわいい
おわり

ぼくのビルドはにゃあとなく