2018-06-26 shibuya.apk #26 @cattaka_net
CIのビルドを通知する仕組みを
AndroidとFirestoreで作った話
Takao Sumitomo
2018-06-26 shibuya.apk #26 @cattaka_net
自己紹介
●
住友 孝郎(Takao Sumitomo)
– Wantedly 所属
– Androidアプリを主に担当
– @cattaka_net
●
Javaが好きです
モチベーション
最近だと皆さんCIを使ってると思います
ビルドやテストの結果を
楽しく通知してほしい
通知するデバイスを
たくさん置けると楽しそう
作りました
アプリ名:Catbell Notifier
使うもの
M5Stack
(ディスプレイやBLE付きマイコン)
Raspberry PI 3
(Android Things)
今どきのCIサービスやGitHubは
WebhookでURLが叩ける
こんな感じの仕組み
WebhookでCloud Functionを叩く
Cloud Functionは
Firestoreにデータを書き込む
AndroidアプリがFirestoreをオブザーブして
AndroidからペリフェラルへBLEで通信
ペリフェラルは光って知らせる
作り方
Raspberry PI 3 + ディスプレイ
Android ThingsをSDカードに焼く
(実は普通のAndroidでも可)
APKをダウンロードして
adbでインストールする
いろいろ設定する
WebhookのURLが生成される
URLを叩くと、、、表示が更新される
ディスプレイに移すとこんな感じ
これだけだと寂しい、、、
M5Stackをペリフェラルにしよう
BLEで通信
ファームウェアはArduino IDEで書き込む
まだ寂しい、、、
LEDを光らせよう
適当に配線して
フラットケーブルを作る
繋いで動作確認
筐体もBlenderでガッと設計する
筐体を3Dプリンタで印刷する
サンドペーパー、パテ、サーフェイサーを
駆使して表面を整える
塗装して
組み立てる
筐体ができた!
まだ、なんか足りない、、、
フィギュアも3Dプリンタで印刷する
https://github.com/StickmanVentures/go-gopher-model
サンドペーパー、パテ、サーフェイサーを
駆使して表面を整える
シリコンゴムで型を取って
透明のレジンでキャストして
固定用のピンを刺して
筐体に乗せて完成
光るとこんな感じ
簡単でしょ
オフィスに5、6台置いてます
作った感想
Firebase Authentication、楽
FirebaseUI-Android、楽
Firebase Cloud Firestore、楽
AndroidのBLE、
よく謎のエラーで通信できなくなる
(コードの微調整でマシにはなったけど)
運用した感想
別チームの誰が何をしてるか
フンワリわかる
サーバーのデプロイの通知にも使える
ずっと赤く光ってる(エラー)と心配になる
そのブランチが青く光る(成功)と
ホッとする
楽しい!!! (' ' )✌ ω ✌ 三✌(' ')ω ✌三( ' ')✌ ω ✌
魔改造されたバージョン
おわりに
日本語はブログに書いてます
https://wscat.cattaka.net/2018/06/cicatbell-notifier.html
GitHubに公開してます
https://github.com/cattaka/CatbellNotifier
Javaが好きです
2018-06-26 shibuya.apk #26 @cattaka_net
ご清聴ありがとうございました

CIのビルドを通知する仕組みをAndroidとFirestoreで作った話