Androidの最新バージョンのエラー状況を確認するURL
課題
弊社アプリは毎週リリースで、段階的リリースも行っているのでほぼ毎日リリースする作業が発生している。 リリース前にGoogle Play Console / Firebase Crashlyticsでクラッシュの確認をしているが、ぽちぽち開くのが地味に面倒。
実装
それぞれだいたい以下のURLでアクセスできる。 リリースする際のSlack通知なんかに含めておくと便利。
Google Play Console
https://play.google.com/console/u/0/developers/{開発者ID}/app/{アプリID}/vitals/crashes?installedFrom=PLAY_STORE&days=30&errorType=CRASH&versionCode={バージョン番号}
Firebase Crashlytics
https://console.firebase.google.com/u/0/project/{プロジェクト名}/crashlytics/app/{パッケージ名}/issues?state=open&time=last-seven-days&type=crash&versions={バージョン名}
Robolectric導入したけどエラーが出る
課題
Robolectric導入して、
@RunWith(RobolectricTestRunner.class)
を書いたはいいが、
java.lang.UnsupportedOperationException: Failed to create a Robolectric sandbox: Android SDK 29 requires Java 9 (have Java 8)
のエラーが出る
実装
@Config(sdk = VERSION_CODES.P)
をつける。 エラーの通りSDK 29だとJava9が必要になるので、SDK 28 (= P
) で走るように設定する。
参照: Getting error while run the test · Issue #5307 · robolectric/robolectric · GitHub
文字数カウンタを表示する
課題
社で自分の業績評価を記入する必要があるのだが、使用しているWebサービスがイケてなく、文字数制限があるにも関わらず現在入力の文字数を出してくれない。というか文字数が超えている場合は非同期的にダイアログを出してくるのでうざい。
適当な場所で文字数カウンタが欲しい。
解決
ちょくちょく使うGoogle Docsで文字数カウンタを表示する。
メニューバー > ツール > 文字数カウンタ
入力中に文字数を表示を選択すると左下に表示される
Slackチャンネルの新着がどうしても気になるので整理する
課題
弊社では社内チャットにSlackを導入している。各所属チームのほか雑談用のチャンネルがあったり、また所属していないチームのチャンネルでも気軽に入れるので自ずと加入チャンネルが増えてしまった。
チャンネルにコメントが投稿されるとチャンネル名が太字になる。もちろん今見なくても良いチャンネルはあるのだが、太字になると全てキレイに消したくなるのが人の心。
必然的にもぐら叩きのようにSlackチャンネルを開くことになり、時間を浪費するハメになっていた。ゲーセンにあるもぐら叩き好きだし。
対策1
いつからかチャンネルをセクションに分類できるようになった。チャンネルをグルーピングして折りたたんだりできる。
ただしこの際 自分の所属
や 雑談
といった、一般的な属性でグルーピングしたため、結局すべてのセクションを展開した状態での運用になり、もぐら叩きはあまり変わらなかった。
対策2
チャンネルによってアクセス頻度が異なっていることに最近気づいた。例えば今現在メインで動いているチームでは、相談が比較的飛んでくるし反応を早くしたほうがいいので、できるだけこまめに見ている。あるいは雑談ではあるがアイマスチャンネルは、流速が早く話題にも乗りたいので常に追っておきたい。
逆に社内全体向けのチャンネルは重要な情報が流れるがこちらから反応する必要はほぼない。また野球チャンネルはそんなに早くない。シーズンが終わった今だとなおさら。
ということでチャンネルの属性に関わらず、自分が見たい頻度に合わせてセクションを分けた。
(実況系
は特定のMTGで実況スレとして使われるチャンネル群。)
合わせて、セクションを分けるときに整理を行い、覗いていないチャンネルから離脱する。
常時
セクションは基本的に常に展開して新着コメントに即座に来づけるようにする。
他のセクションについては、それぞれのタイミングで展開し、それ以外は折りたたんでおく。
目に入るのがこのくらいの数であれば、あまりもぐら叩きを自制できる・・・気がする。しばらくはこの運用で行く予定。
PullRequestがマージされたときなにかする(Slackにメンションする)
課題
Pull Requestがマージされたとき、AuthorにSlackでメンションしたい。
実装
各ステップを以下のように設定する。
Trigger: Github Trigger Action: New Repo Event
app: Filter by Zapier Payload Action Exactly matches closed Payload Pull Request Merged is true
app: Slack
SHA証明書フィンガープリントを取り出す
課題
Firebaseに設定する、証明書フィンガープリントを取得したい。
実装
apkから取得する
keytool -list -printcert -jarfile target.apk
keystoreから取得する
keytool -list -v -alias name -keystore keystore.jks
apkに署名する際に用いるalias / key store password / key password が必要なので注意。
ビルド中に生成されたファイルを後からみる
背景
Bitriseにて新たなWorkFlowを組んでいて上手く行かないことがある。 コンテナの中で動作しているビルドの中をデバッグすることは難しい。
課題
内部で生成されるものを後からArtifactsとして参照できるようにする
結論
対象のファイルを $BITRISE_DEPLOY_DIR
ディレクトリに入れ、 Deploy to Bitrise.io - Apps, Logs, Artifacts
ステップを使う。
BITRISE_DEPLOY_DIRは予め定義されている環境変数であり、また Deploy~ステップでartifactとして保存するディレクトリにデフォルトで設定されている。