Slide 1

Slide 1 text

AndroidXの意外な対応コスト PrefernceFragmentCompat編 Koji Wakamiya / Studyplus Inc. 2018.12.19 @日本Androidの会12月定例会

Slide 2

Slide 2 text

自己紹介 若宮浩司 (@D_R_1009) スタディプラス 株式会社 ✎ Android一本勝負 ✎ AAC大好き ✎ Pixel3欲しい

Slide 3

Slide 3 text

MISSION 「学ぶ喜びをすべての人へ」 多くの人がStudyplusを通じて学習のきっかけを見つけ、 学習を楽しく継続できることを実現する。

Slide 4

Slide 4 text

AndroidX 使ってますか?

Slide 5

Slide 5 text

目次 ✎ AndroidXとは ✎ AndroidX対応が必要なこと ✎ PrefernceFragmentCompatのケース

Slide 6

Slide 6 text

AndroidXとは ✎ Android Jetpackパッケージ(名) ○ Google I/O 2018で発表 ○ ActivityやRecyclerViewといった Androidライブラリを再編 ✎ ライブラリのリリースと Androidのリリースを切り離す ○ GMSのように個別の機能ごとに バージョンが更新されていく https://developer.android.com/jetpack/androidx/

Slide 7

Slide 7 text

AndroidX対応 ✎ TargetSDK 28以上へ ✎ Migrate to AndroidX ○ AndroidStudio3.2のmenuから実行可能 ■ gradle.propertiesを更新 ■ build.gradleを更新 ■ import文を更新 https://developer.android.com/jetpack/androidx/migrate/

Slide 8

Slide 8 text

TargetSDK 28対応 ✎ 非 SDK インターフェースの制限 ○ BNVのshift mode対応など ✎ フォアグラウンド サービスの パーミッション追加 ✎ Apache HTTP クライアントの サポート終了 ○ GMapなどの対応状況も確認必須 https://developer.android.com/about/versions/pie/android-9.0-migration

Slide 9

Slide 9 text

意外な対応ケース ✎ 個人でPreferenceFragmentCompatに 対応するライブラリを作成 ○ Time/DateのPickerDialog対応 https://github.com/koji-1009/ChronoDialogPreference

Slide 10

Slide 10 text

DialogPreferenceの継承クラスが変化 android androidx

Slide 11

Slide 11 text

DialogPreferenceの継承クラスが変化 ✎ androidxへの更新時にリファクタリング ○ PreferenceとDialogFragmentが分離 ○ リストに表示とダイアログ表示の ロジックが分離されている ✎ 表示するダイアログをカスタマイズする ライブラリのため、影響が大きい ○ 書き換えに2〜3日

Slide 12

Slide 12 text

事例のまとめ ✎ androidxへの対応は2019年のトピックに ○ TargetSDK 28への更新が必須 ○ Support Libは28.0.0まで ✎ アプリ独自でカスタマイズしている箇所に思わ ぬ影響が出る恐れが ○ 対応は早め早めが良さそう ○ 対応必要なケースを教えてください!