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

Jetpack Compose と Accompanist

Mikami Hiroki
November 29, 2022
170

Jetpack Compose と Accompanist

Mikami Hiroki

November 29, 2022
Tweet

Transcript

  1. <<
    Jetpack Compose

    Accompanist

    View Slide

  2. ● Twitter: @mono33__
    ● 興味: Compose / ビルド周り
    ● 株式会社ゆめみ
    みかみ/403

    View Slide

  3. Accompanist について紹介します!
    (コード・技術的なお話は 別途 Zenn をご確認ください)

    View Slide

  4. アジェンダ
    ● Jetpack Compose と Accompanist について
    ● Accompanist を使ってみる
    ● Accompanist を使ってみた感想

    View Slide

  5. Jetpack Compose と Accompanist について

    View Slide

  6. Jetpack Compose
    ● 宣言型アプローチの最新 UI ツールキット
    ● 2021年7月に 1.0.0 に安定版がリリースされ
    漸次アップデート
    [1] Jetpack Compose is now 1.0: announcing Android’s modern toolkit for building native UI,
    https://android-developers.googleblog.com/2021/07/jetpack-compose-announcement.html

    View Slide

  7. Jetpack Compose の Roadmap
    [2] Jetpack Compose Roadmap, https://developer.android.com/jetpack/androidx/compose-roadmap
    ● Roadmap が公開されている
    https://android-developers.googleblog.com/2021/07/jetpack-compose-announcement.html

    View Slide

  8. ● AndroidX 間で experimental api を呼び出す
    ことができない
    Jetpack Compose の開発における問題
    androidx.compose:foundation
    androidx.compose:material
    @ExperimentalMaterialApi
    [3] Jetpack Compose Accompanist — An FAQ.,
    https://medium.com/androiddevelopers/jetpack-compose-accompanist-an-faq-b55117b02712

    View Slide

  9. ● AndroidX 間で experimental api を呼び出す
    ことができない
    Jetpack Compose の開発における問題
    androidx.compose:foundation
    androidx.compose:material
    @ExperimentalMaterialApi
    新しい機能の追加が行いにくい!

    View Slide

  10. Accompanist
    ● AndroidX ではサポートされていない Jetpack Compose の機能を補
    完することを目的としたライブラリのコレクション
    [4] Accompanist, https://github.com/google/accompanist
    https://github.com/google/accompanist/blob/main/docs/header.png

    View Slide

  11. Accompanist の背景・目的
    ● Compose の開発初期から AndroidX とは独立して Github 上で開発
    ○ 最初は Coil のラッパーライブラリだった
    ○ AndroidX の experimental api を利用できる
    ○ 実験的な機能を追加しやすい
    ● Accompanist はその機能が AndroidX 側に実装が移行され
    Accompanist が存在しなくなることが目的
    [3] Jetpack Compose Accompanist — An FAQ.,
    https://medium.com/androiddevelopers/jetpack-compose-accompanist-an-faq-b55117b02712

    View Slide

  12. Accompanist を使ってみる

    View Slide

  13. Accompanist は使えるのか...?
    ● Compose を利用しているプロジェクトの
    30 % 弱以上が Accompanist を使用している[3]
    [3] Jetpack Compose Accompanist — An FAQ.,
    https://medium.com/androiddevelopers/jetpack-compose-accompanist-an-faq-b55117b02712

    View Slide

  14. ● Compose のバージョンに応じて Accompanist の
    バージョンを指定
    Accompanist のバージョン
    https://github.com/google/accompanist#compose-versions

    View Slide

  15. ● Github にライブラリ一覧と使用例が記載
    使いたいライブラリを探す

    View Slide

  16. ● 何かと扱いにくい ModalBottomSheet
    を Compose で扱うライブラリ
    ● 「Jetpack Compose と Accompanist で
    ModalBottomSheet を実装する」と
    いうZenn を書きました📝
    Navigation Material for
    Jetpack Compose
    [5] Jetpack ComposeとAccompanistでModalBottomSheetを実装する 
    ,https://zenn.dev/mona/articles/b7db89481a0461

    View Slide

  17. ● Compose で Runtime Permission を
    よしなに扱えるライブラリ
    ● 「Jetpack Compose でアプリ・デバイスの
    位置情報権限を扱う方法を考える」という
    Zenn を書きました📝
    Permissions for Jetpack Compose
    [6] Jetpack Composeでアプリ・デバイスの位置情報権限を扱う方法を考える 
    ,https://zenn.dev/mona/articles/b49ba42ae4a4ea

    View Slide

  18. Accompanist を使ってみた感想

    View Slide

  19. 感想
    ● プロダクトでも Accompanist をどんどん使っていけそう
    ○ 結構色々なことがサポートされている
    ○ 実装が変更されることはあるので注意
    ● Accompanist は内部実装も勉強になる
    ● Accompanist に Contribute もできそう 余力があれば...

    View Slide

  20. CREDITS: This presentation template
    was created by Slidesgo, including
    icons by Flaticon, infographics &
    images by Freepik.
    Thanks!

    View Slide

  21. References
    ● Jetpack Compose is now 1.0: announcing Android’s modern toolkit for building native UI,
    https://android-developers.googleblog.com/2021/07/jetpack-compose-announcement.html
    ● Jetpack Compose Roadmap, https://developer.android.com/jetpack/androidx/compose-roadmap
    ● Jetpack Compose Accompanist — An FAQ.,
    https://medium.com/androiddevelopers/jetpack-compose-accompanist-an-faq-b55117b02712
    ● Accompanist, https://github.com/google/accompanist
    ● Jetpack Compose と AccompanistでModalBottomSheetを実装する 
    ,https://zenn.dev/mona/articles/b7db89481a0461
    ● Jetpack Compose でアプリ・デバイスの位置情報権限を扱う方法を考える 
    ,https://zenn.dev/mona/articles/b49ba42ae4a4ea

    View Slide