SlideShare uma empresa Scribd logo
1 de 66
Baixar para ler offline
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
ご清聴ありがとうございました

Mais conteúdo relacionado

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

Pythonとgit hubとベンチャー企業の上手な付き合い方
Pythonとgit hubとベンチャー企業の上手な付き合い方Pythonとgit hubとベンチャー企業の上手な付き合い方
Pythonとgit hubとベンチャー企業の上手な付き合い方
Takahiro Fujiwara
 

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

Hyperledger Cactus V0.4 リリースの概要と今後の開発方針
Hyperledger Cactus V0.4 リリースの概要と今後の開発方針Hyperledger Cactus V0.4 リリースの概要と今後の開発方針
Hyperledger Cactus V0.4 リリースの概要と今後の開発方針
 
Deep Learning Lab: DIMo & Chainer
Deep Learning Lab: DIMo & ChainerDeep Learning Lab: DIMo & Chainer
Deep Learning Lab: DIMo & Chainer
 
Computex Taipei 2016 Report
Computex Taipei 2016 ReportComputex Taipei 2016 Report
Computex Taipei 2016 Report
 
Pythonとgit hubとベンチャー企業の上手な付き合い方
Pythonとgit hubとベンチャー企業の上手な付き合い方Pythonとgit hubとベンチャー企業の上手な付き合い方
Pythonとgit hubとベンチャー企業の上手な付き合い方
 
SIerによるSIerのためのRaspberry Pi 入門
SIerによるSIerのためのRaspberry Pi 入門SIerによるSIerのためのRaspberry Pi 入門
SIerによるSIerのためのRaspberry Pi 入門
 
Rubyでオリジナルプログラムをつくろう
RubyでオリジナルプログラムをつくろうRubyでオリジナルプログラムをつくろう
Rubyでオリジナルプログラムをつくろう
 
GitHub Actionsを使ってAPI外部公開時の作業を自動化した話
GitHub Actionsを使ってAPI外部公開時の作業を自動化した話GitHub Actionsを使ってAPI外部公開時の作業を自動化した話
GitHub Actionsを使ってAPI外部公開時の作業を自動化した話
 
映像解析IoTプラットフォーム SCORERの紹介
映像解析IoTプラットフォーム SCORERの紹介映像解析IoTプラットフォーム SCORERの紹介
映像解析IoTプラットフォーム SCORERの紹介
 
IBM Blluemix を Pepper とつないでみよう
IBM Blluemix を Pepper とつないでみようIBM Blluemix を Pepper とつないでみよう
IBM Blluemix を Pepper とつないでみよう
 
Getting Started with Graph Database with Python
Getting Started with Graph Database with PythonGetting Started with Graph Database with Python
Getting Started with Graph Database with Python
 
Gitlab ci & ecsへのデプロイ
Gitlab ci & ecsへのデプロイGitlab ci & ecsへのデプロイ
Gitlab ci & ecsへのデプロイ
 
IoT 時代に資する 「ものグラミング」教育のための 授業開発と実践
IoT 時代に資する 「ものグラミング」教育のための 授業開発と実践IoT 時代に資する 「ものグラミング」教育のための 授業開発と実践
IoT 時代に資する 「ものグラミング」教育のための 授業開発と実践
 
SORACOM UG 信州 #3 | About SORACOM & Updates
SORACOM UG 信州 #3 | About SORACOM & UpdatesSORACOM UG 信州 #3 | About SORACOM & Updates
SORACOM UG 信州 #3 | About SORACOM & Updates
 
オムロン環境センサ with isaax 
IoTシステムを爆速実装する
オムロン環境センサ with isaax 
IoTシステムを爆速実装するオムロン環境センサ with isaax 
IoTシステムを爆速実装する
オムロン環境センサ with isaax 
IoTシステムを爆速実装する
 
Introduction to NetOpsCoding
Introduction to NetOpsCodingIntroduction to NetOpsCoding
Introduction to NetOpsCoding
 
20210824 Pico Session at CEDEC2021 (新)
20210824 Pico Session at CEDEC2021 (新)20210824 Pico Session at CEDEC2021 (新)
20210824 Pico Session at CEDEC2021 (新)
 
BLEラジコン基板でIoTしてみた
BLEラジコン基板でIoTしてみたBLEラジコン基板でIoTしてみた
BLEラジコン基板でIoTしてみた
 
Linebotを作ろう
Linebotを作ろうLinebotを作ろう
Linebotを作ろう
 
第29回八子クラウド座談会(当日討議メモ付き) 20181215
第29回八子クラウド座談会(当日討議メモ付き) 20181215第29回八子クラウド座談会(当日討議メモ付き) 20181215
第29回八子クラウド座談会(当日討議メモ付き) 20181215
 
WWCT ラズパイ Bluemix 講習資料
WWCT ラズパイ Bluemix 講習資料WWCT ラズパイ Bluemix 講習資料
WWCT ラズパイ Bluemix 講習資料
 

Mais de Takao Sumitomo

Mais de Takao Sumitomo (20)

僕は上スワイプでBottomSheetを出したかっただけなんだ
僕は上スワイプでBottomSheetを出したかっただけなんだ僕は上スワイプでBottomSheetを出したかっただけなんだ
僕は上スワイプでBottomSheetを出したかっただけなんだ
 
sharedUserIdを使った俺得開発ツールの作り方
sharedUserIdを使った俺得開発ツールの作り方sharedUserIdを使った俺得開発ツールの作り方
sharedUserIdを使った俺得開発ツールの作り方
 
Camera API 1と2が混在するプロダクトの開発で 泣いたこととそのワークアラウンド
Camera API 1と2が混在するプロダクトの開発で 泣いたこととそのワークアラウンドCamera API 1と2が混在するプロダクトの開発で 泣いたこととそのワークアラウンド
Camera API 1と2が混在するプロダクトの開発で 泣いたこととそのワークアラウンド
 
高速でトライ&エラーを するために気をつけてること
高速でトライ&エラーを するために気をつけてること高速でトライ&エラーを するために気をつけてること
高速でトライ&エラーを するために気をつけてること
 
Maker Faire Bay Areaに行きたかったのでGoogle I/Oに行ってきた
Maker Faire Bay Areaに行きたかったのでGoogle I/Oに行ってきたMaker Faire Bay Areaに行きたかったのでGoogle I/Oに行ってきた
Maker Faire Bay Areaに行きたかったのでGoogle I/Oに行ってきた
 
Viewを動的に変化させるアプローチ
Viewを動的に変化させるアプローチViewを動的に変化させるアプローチ
Viewを動的に変化させるアプローチ
 
プロダクトを育てるのにGoogleのサービスが助けてくれること
プロダクトを育てるのにGoogleのサービスが助けてくれることプロダクトを育てるのにGoogleのサービスが助けてくれること
プロダクトを育てるのにGoogleのサービスが助けてくれること
 
AdapterToolboxでRecyclerViewを楽にする
AdapterToolboxでRecyclerViewを楽にするAdapterToolboxでRecyclerViewを楽にする
AdapterToolboxでRecyclerViewを楽にする
 
エンジニアがプロダクト育成を始めるまでにやったこと
エンジニアがプロダクト育成を始めるまでにやったことエンジニアがプロダクト育成を始めるまでにやったこと
エンジニアがプロダクト育成を始めるまでにやったこと
 
Wantedlyのテスト事情
Wantedlyのテスト事情Wantedlyのテスト事情
Wantedlyのテスト事情
 
用途に合わせたアニメーションの実装方法
用途に合わせたアニメーションの実装方法用途に合わせたアニメーションの実装方法
用途に合わせたアニメーションの実装方法
 
Uml速習会
Uml速習会Uml速習会
Uml速習会
 
potatotips (iOS/Android開発Tips共有会) 第19回 資料
potatotips (iOS/Android開発Tips共有会) 第19回 資料potatotips (iOS/Android開発Tips共有会) 第19回 資料
potatotips (iOS/Android開発Tips共有会) 第19回 資料
 
SQLiteDatabaseを無理矢理覗く
SQLiteDatabaseを無理矢理覗くSQLiteDatabaseを無理矢理覗く
SQLiteDatabaseを無理矢理覗く
 
開発を効率的に進めるられるまでの道程
開発を効率的に進めるられるまでの道程開発を効率的に進めるられるまでの道程
開発を効率的に進めるられるまでの道程
 
テストがあればなんとかなる〜効率化までの道程〜
テストがあればなんとかなる〜効率化までの道程〜テストがあればなんとかなる〜効率化までの道程〜
テストがあればなんとかなる〜効率化までの道程〜
 
勉強会資料 データ構造とアルゴリズム
勉強会資料 データ構造とアルゴリズム勉強会資料 データ構造とアルゴリズム
勉強会資料 データ構造とアルゴリズム
 
勉強会資料 Uml概要
勉強会資料 Uml概要勉強会資料 Uml概要
勉強会資料 Uml概要
 
Firefox OSの何が嬉しいか
Firefox OSの何が嬉しいかFirefox OSの何が嬉しいか
Firefox OSの何が嬉しいか
 
HTML5でFirefox OSアプリを作ろう
HTML5でFirefox OSアプリを作ろうHTML5でFirefox OSアプリを作ろう
HTML5でFirefox OSアプリを作ろう
 

Último

Último (7)

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 

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