Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AndroidXの意外な修正コスト PreferenceFragmentCompat編

AndroidXの意外な修正コスト PreferenceFragmentCompat編

AndroidX

Koji Wakamiya

December 19, 2018
Tweet

More Decks by Koji Wakamiya

Other Decks in Programming

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

  4. AndroidX 使ってますか?

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide