「【メルカリ×奇兵隊×ジェネストリーム登壇】第1回AndroidTips共有会」に参加してきました

登壇者の発表前に事前交流会があり、非常に和気あいあいとした勉強会でした。

ログ管理でウキウキAndroid Life

メルカリの今井さん @tomoaki_imai による発表。

ウキウキするエラー系ログ管理のお話

  • ユーザの声にならない叫び

    • クラッシュが大量に起こっても声を上げるユーザは少ない
    • エラーログを見てバグを駆逐していきましょう
  • エラー監視ツール

    • Google Developer Console
    • Crashlytics
    • 自前エラーレポート
  • Google Developer Console

    • apkをGoogle playに挙げるときのあれ
    • Crashlyticsで見られないものも見られる
    • しかし氷山の一角
  • Crashlytics

    • 導入が超簡単
    • アカウント登録は待ち状態
    • 1行コードを足すだけで使える
    • メルカリではdev、stg、productでパッケージ名を分けそれぞれでログ管理し、テスト・QA
  • 自前エラーレポート

    1. 予期せずエラーが起きてもレポートを飛ばす
      • Applicationクラス内でThread.UncaughtExceptionHandlerを実装
    2. 既知のバグの発生条件を調査できる仕組み
      • すでにErrorが発生すると判明している部分で、catch内で調査に必要な情報を送る
    3. レポートを貯めて送る仕組み
      • レポートをプリファレンスに保存し、レポート送信前にクラッシュしたり通信できなくても、次回起動時に送信できるようにする

ウキウキする分析ログ管理のお話

  • What is 分析ログ

    • インストール率、DAUなどを分析するためのツール
  • 分析ログの問題点

    • それぞれの分析サービスのAPIに標準性がない
    • 似たようなトラッキングコードをかかされる
  • Segment

    • 複数の分析サービスを統合できる
    • シンプルなAPI
    • ユーザーはコンソールから分析サービスを選ぶだけ
  • SegmentについてQiitaにまとめた

  • 注意

    • 成長中のサービスなので開発が盛ん
    • Documentの記述が食い違ってる場合もある
    • SDKオープンソースなのでプルリク出したらいい

 

ぬるぬる動くAndroid Tips

奇兵隊の小西さん @konifar による発表。

  • 画面をぬるぬるにする

  • 役に立った知識

    1. 現状のパフォーマンスを確認する方法
    2. 修正Tips

現状のパフォーマンスを確認する方法

  • 便利なDeveloperモード
    1. Strictモード
      • 開発者向けオプションの厳格モードをチェック
      • パフォーマンスを低下させるものを見る
    2. GPUレンダリング分析
      • GPUの使用状況をリアルタイムで表示
      • Viewの構築にかかった時間、2Dレンダリングにかかった時間などが分かる
    3. GPUオーバードロー
      • 何回描画されてるかを色で可視化

修正Tips

  • 修正の流れ

    • 遅いところを探して直す
    • Googleの言ってる基本原則
      1. 必要ない処理をしない
      2. 不必要なメモリ割り当てを行わない
    • ボトルネックをちゃんと調べるのが近道
  • 便利ツール

  • Method Tracking

    • どのメソッドに時間がかかってるか1クリックでトラッキングできる
    • ボタンを押して画面を動かして、もう一度押せばプロファイルが見られる
    • 遅いメソッドを見つけて直す
  • Hierarchy View

    • ビューの階層構造が一目でわかる
  • Viewの最適化

    • narrowよりsharrowなView構造
      • LiniearLayoutを使うとネストが深くなりがち
      • RelativeLayoutで作ったほうがいい
      • Listなどはよく効いてくる -ViewのbackdroundをやめてThemeのwindowBackgroundを使う
  • 詳しくは公式のPerformans Tipsを参照

  • まとめ

    1. 提供されているツールを使うと便利
    2. Android Studio使うともっと便利
    3. すぐに試せるのでやってみるといいかも
    4. レイアウトやコードの実装に気を遣おう

 

Reactive Android

ジェネストリームの釘宮さん @shin_kugi による発表。

  • Reactive Programming的な考え方とは?

  • ストリームという概念で物事を捉える

    • ストリームとは、時間順に並んだ進行中のイベントの列
  • Anroidで使えるの?

    • RxAndroidを導入することで簡単に実装できる
      • RxAndroidとはRxJavaのAndroid Module
      • RxJavaはJavaでReactive Programmingを行うためのライブラリ
      • Gradleファイルに1行書くだけ導入できる
  • どういうところに使えるか

    • ModelとControllerの繋ぎ(Obserberパターンに)
    • Http通信のリクエスト&レスポンス
  • まとめ

    • Reactive Programingってなんぞやを理解しないと自分がなにしてるか良く分からない
    • 結局ポイントは何をストリームとするか

 

ちょっとGoogle Analyticsの話しようぜ

岡野さん @operandoOS による発表。

 

その他

開場を提供して頂いたHDEさんにはDr Pepperを無料で飲める世界に一台の自動販売機がありました。

f:id:shzero5:20141120211546j:plain