hamburger

主に日記

DroidKaigi2019/02/08(二日目)

Android App Improvement Challenge Part1: 機能実装編

  • 機能追加した
  • 30分だけ参加だったのでリストに時間を表示するissueのみ

Slice Your App: Inside Slices and How to build it

  • Google検索やAssistantにコンテンツ表示する際に使用する
  • AppIndexingの仕組みと一緒
  • Sliceのスレッドで通信やレスポンスを一定時間内に返却できない場合に死んでしまうので、一度ローディングViewを表示した後データ取得後に再描画すれば良い
    • Sliceはアプリ内ローカルデータしか表示できないものだと勘違いしてた
  • パラメータとして時間を持っているため、単純比較のassertではテストできないので、パラメータを適切にフィルタリングする必要がある

Android App Improvement Challenge Part 2: リファクタ編

  • ヒントブランチ読んでたら終わってしまった・・・

Android Studio設定見直してみませんか?

  • とにかく楽しめた
  • 自分用リストを作ることに決めた

今日から始める依存性の注入

  • 外部から依存関係を注入することで疎結合を実現する。それをすることでアプリを拡張しやすくなったりテストしやすくなる
  • DIにもスコープがある
  • なんとなくわかってきたらgithub上のコードを読んでいくのが理解への近道とのこと

multi-module Androidアプリケーション

  • メリット
    • ビルドの高速化につながる
    • build variantの変更で開発ビルドを分けている場合、プロジェクト外のコードはリファクタ対象外なので修正しづらい。その辺が解消する
  • compile→api or implementationに変更
  • api 参照先が変更されたらすべて再コンパイル
  • implementation 直下が変更されたときだけ再コンパイル
  • どのような構成だと恩恵を受けられるか
    • 資料参照
  • 既存モノリシックプロジェクトをマルチモジュール化する場合
    • 一旦最低限必要なもの(applucationクラス)とそれ以外で分ける
    • 新規機能は個別のモジュールに
    • 新規機能と既存機能で共通する機能を別モジュールに
    • 既存機能は必要以上にモジュール分割しないほうが良い(機能開発が進まなくなるので)

実践 WorkManager

  • WorkManagerを使ってバックグラウンドで画像をキャッシュした話
  • タイムアウトがあるので分割必要

Google Play Consoleのリリーストラックを有効活用してリリースフローの最適化を行った話

  • masterブランチを自動でアルファリリースするようにfastlaneを書いた
  • リリース前レポートを軽いテストとして活用しようとしたが、通知が貧弱だったため断念
  • アルファ→本番リリースは手動