Slide 1

Slide 1 text

iOSのログテストを  Firebaseで自動化する Hiromu Tsuruta Chapter 0

Slide 2

Slide 2 text

Introduce 1 ~ Company ~ every, inc. DELISH KITCHEN ~ Role ~ iOS Developer ~ Account ~ hcrane14 H_Crane

Slide 3

Slide 3 text

Chapter 1 なぜ自動化することになったの?

Slide 4

Slide 4 text

Reason 1 $

Slide 5

Slide 5 text

Reason 1 アプリ内の動画広告の枠を販売 ログの欠損が許されない 単価が再生数などのログで決まる ログを担保したい!!

Slide 6

Slide 6 text

Reason 2 欠損する原因を切り分けたい

Slide 7

Slide 7 text

Reason 2 Log Data Flow 非エンジニア エンジニア ユーザー

Slide 8

Slide 8 text

Reason 2 Log Data Flow 非エンジニア エンジニア ユーザー Firebaseの障害 BigQueryの障害 TRESURE DATAの障害 アプリの障害

Slide 9

Slide 9 text

Reason 3 ヒューマンエラーの軽減

Slide 10

Slide 10 text

Reason 3

Slide 11

Slide 11 text

Reason 3 Log Data Flow 非エンジニア エンジニア ユーザー Firebaseの障害 BigQueryの障害 TRESURE DATAの障害 アプリの障害 ログが正しくサーバーに送られていること を担保したい firebase analytics ではログを送ったことの コールバックは取れない 機構を作ってしまおう!! ついでに送り元と中身を比較して 自動でテストしちゃお!

Slide 12

Slide 12 text

Chapter 2 いざ自動化に try!

Slide 13

Slide 13 text

Purpose 1 - 送ったログをコールバックでアプリに返す - 送ったログと戻ってきたログの中身を比較する

Slide 14

Slide 14 text

Proposal 1 ユーザー Realtime Databaseのコールバックを使うやり方

Slide 15

Slide 15 text

Realtime Databaseのコールバックを使うやり方 Proposal 1 ユーザー コールバック受け取るためだけに Realtime Databaseを接続するの はオーバースペックすぎる 開発環境だけとはいえ、セ キュリティ観点から、 Realtime Databaseの read/writeを解除したくない Firebaseのライブラリを追 加で読み込む必要があ り、アプリの容量が増える のではないか 確認するたびにDatabaseに ゴミが残ってしまう

Slide 16

Slide 16 text

Proposal 2 ユーザー Push通知にログ情報を持たせて返すやり方

Slide 17

Slide 17 text

Proposal 2 ユーザー Pushの遅延があるため、すぐにテストが確認できない 時があることがわかった。 上記の理由で、このやり方は採用されず、、

Slide 18

Slide 18 text

Proposal 3 ユーザー Realtime Databaseのコールバックを使うやり方

Slide 19

Slide 19 text

Chapter 3 まなび

Slide 20

Slide 20 text

Summary 1 - firebaseだけで実現可能だが オーバースペック間は否めない - ログのパラメーター担保までしたかったので、アプリにコールバックとし て返していたが、別のサードパーティーツールに返しても良さそう - ログのテストで効率良い方法があれば教えてください、、

Slide 21

Slide 21 text

Summary 2 技術書店 あ08C 「エンジニア登山部」にて本を出します。 内容は 前半がSwiftに関して、後半はログ周りに関しての内容です。 良かったらいらしてください!