Slide 1

Slide 1 text

時代に乗り遅れないアプリにするために Eight事業部 プロダクト部 西村奈令大

Slide 2

Slide 2 text

Who I am?? 西村 奈令大 (Narihihro Nishimura) @engine_NN @nishimuraNN Sansan株式会社 Eight事業部(2017/09 〜) webフロントエンド基盤整備 メンション機能開発 企業向けサービス開発・運用 求人サービス開発 Androidアプリ開発 (2018/12 〜) ← イマココ

Slide 3

Slide 3 text

Eight

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

「時代に乗り遅れない」 とはなんぞや

Slide 6

Slide 6 text

時代に乗り遅れない ≠ イケてる 推奨される形式に整えていくことで、その先のアップデートの恩恵を受けら れるようにする → アプリを常に安定して稼働させることを保証するためには不可欠

Slide 7

Slide 7 text

やったこと - target SDKバージョンアップ - Support Library → Android Xへの刷新 (+ ライブラリアップデート)

Slide 8

Slide 8 text

やること - target SDKバージョンアップ - Support Library → Android Xへの刷新 (+ ライブラリアップデート)

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

2019年までにtarget SDKを28にしなさい さもなければ、アップデートが効かなくなりますよ

Slide 11

Slide 11 text

ポイント ~Apache HTTPクライアントの利用継続~ AndroidManifest.xmlに追加するだけ

Slide 12

Slide 12 text

ポイント ~フォアグラウンドサービスへのpermission追加~ AndroidManifest.xmlに(ry

Slide 13

Slide 13 text

ポイント ~http通信の許可~ isCleartextTrafficPermitted()がデフォルトでfalseを返すようになった → http通信を引き続き行う場合は、設定が必要になる

Slide 14

Slide 14 text

ポイント ~webviewデータディレクトリへのアクセス~ 複数プロセスで同一ディレクトリにアクセスすることができなくなった

Slide 15

Slide 15 text

動作も問題なし

Slide 16

Slide 16 text

やること - target SDKバージョンアップ - Support Library → Android Xへの刷新 (+ ライブラリアップデート)

Slide 17

Slide 17 text

Android X対応? 1 Refactor -> Migrate to Android X 2 一部手動で書き換える これで十分なはず!!

Slide 18

Slide 18 text

そう思っていた時期が 僕にもありました

Slide 19

Slide 19 text

実際には - 何これ!ビルドが通らない!! - テストも通らない!!

Slide 20

Slide 20 text

ビルドが通らない ローカルではビルドが通るのに、CIを回すと失敗する

Slide 21

Slide 21 text

ビルドが通らない gradle.propertiesがリポジトリ管理しているものと異なっていた

Slide 22

Slide 22 text

ビルドが通らない gradle.propertiesがリポジトリ管理しているものと異なっていた

Slide 23

Slide 23 text

テストが通らない モジュールごとのAndroid Test実行で失敗する 失敗しているテストを単体実行すると・・・

Slide 24

Slide 24 text

テストが通らない classesN.dexの中にテストクラスが入っているが、Runnerがそれを見てくれないの では (参考: https://qiita.com/kgmyshin/items/654143cdddef8bacbbec) classes.dexという名前のファイルしか 参照しない

Slide 25

Slide 25 text

と、思ったけど

Slide 26

Slide 26 text

よく見ると Ads関連のsdk周りが怪しい・・・

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

テスト用のmanifestに新しい設定が漏れていた → 実行前にクラッシュが発生し、テスト実行ができな かった

Slide 29

Slide 29 text

全対応完了

Slide 30

Slide 30 text

まとめ - アプリを常に安定して稼働させるためには、環境の継続的なアップデートが重 要 - 事業推進とのバランスが難しい