$30 off During Our Annual Pro Sale. View Details »

cluster_Android_JetpackCompose

 cluster_Android_JetpackCompose

Cluster, Inc.

March 10, 2022
Tweet

More Decks by Cluster, Inc.

Other Decks in Technology

Transcript

  1. clusterのAndroidアプリ
    JetpackCompose導入事例
    REALITY Engineer’s Meeting with Cluster
    @kyokomi

    View Slide

  2. Cluster, Inc. All Rights Reserved. 2
    自己紹介
    ● きょこみ(kyokomi)
    ● 経歴:
    ○ clusterに2016年10月Join
    ○ 昔はserver開発をメインにインフラみたり
    Unityやったり、なんでも屋でした
    ○ 最近は、Androidアプリ開発をメインにやっ
    ていきたい
    ● 趣味:
    ○ FF14(メインジョブは侍)
    ○ 麻雀 / ポーカー/アニメ / RPGゲーム全般
    ○ 好きな漫画は、HxH

    View Slide

  3. Cluster, Inc. All Rights Reserved. 3
    おしながき
    JetpackCompose導入検討中、導入中の方
    向けの内容となってます。
    ● clusterで導入している箇所の紹介
    ● 利用しているバージョンの話
    ● UiStateでのコンポーザブルとのデータのや
    り取り

    View Slide

  4. 4
    clusterのアプリで
    JetpackCompose導入箇所の紹介

    View Slide

  5. Cluster, Inc. All Rights Reserved. 5
    TwitterとかのDMチャットする画面
    以下などの条件で、リストアイテムの表
    示が異なる
    ● メッセージの種類
    ● 自分が投稿したか?
    メッセージ機能

    View Slide

  6. View Slide

  7. Cluster, Inc. All Rights Reserved. 7
    ログイン・新規登録画面のリニューアル
    名前、アイコン、SNS連携設定のロ
    グインフロー
    ● NavHostでの画面切り替え
    ● 背景はLottieでアニメーション

    View Slide

  8. View Slide

  9. Cluster, Inc. All Rights Reserved. 9
    ワールドクラフト機能
    自分がクラフトしたワールドを管理する機能
    ● クラフト一覧
    ● クラフト編集
    ● クラフト公開
    ● クラフトメンバー管理画面
    ● etc…

    View Slide

  10. View Slide

  11. Cluster, Inc. All Rights Reserved. 11
    ワールド詳細の一部だけCompose化

    View Slide

  12. Cluster, Inc. All Rights Reserved. 12
    RecyclerViewのListItemをCompose化

    View Slide

  13. Cluster, Inc. All Rights Reserved. 13
    JetpackCompose対応の進捗
    ● Activity数: 39
    ● Compose製の画面: 18
    ● xml内で一部Compose利用: 4
    => 約50%くらい

    View Slide

  14. 14
    JetpackComposeのバージョン
    について

    View Slide

  15. Cluster, Inc. All Rights Reserved. 15
    ● 2022/2/12: 1.2.0-alpha02(現在)
    ● 2021/12/16: 1.1.0-rc01
    ● 2021/10/01: 1.1.0-alpha05
    ● 2021/7/20: 1.0.0-beta08
    ● 2021/6/1: 1.0.0-beta07(初回導入時)
    clusterが利用したバージョン

    View Slide

  16. Cluster, Inc. All Rights Reserved. 16
    踏んだバグたち(抜粋)
    ● キーボードがbackキー2回押さないと閉じれない
    ○ 1.1.0-alpha03で直った
    ● 特定機種のゲーミングモードON時にUIのタップ判定
    の位置が大幅にずれる
    ○ 1.1.0-alpha05で直った
    ● キーボードのdeleteキー長押しでTextFieldの内容
    が削除できない
    ○ 1.2.0-alpha02で直った

    View Slide

  17. Cluster, Inc. All Rights Reserved. 17
    バージョンアップどうしていくのがいいか?
    Jetpack ライブラリは Android OS とは別にリリースされるた
    め、ライブラリの更新は独立して頻繁に行われます。
    アルファ版
    ● アルファ版リリースは機能的に安定していますが、機能が完
    成していないことがあります。
    ● リリースがアルファ版の間は、API が追加、削除、変更され
    ることがあります。
    参考: https://developer.android.com/jetpack/androidx/versions?hl=ja
    公式にはこう書いてある

    View Slide

  18. Cluster, Inc. All Rights Reserved. 18
    できるだけ最新バージョンを使っていく
    弊社は、できるだけ最新バージョンを使うというルールにしました
    (以下理由)
    ● アルファ版の基準に「機能的に安定」との記載があるので、
    最新機能を使うときは要注意すれば問題ないはず
    ● composeのバージョンを上げる時にKotlinのバージョンも
    上げる必要がでることがある(逆もしかり)
    ● 過去に出たバグが再発したことは今のところなし!!!

    View Slide

  19. Cluster, Inc. All Rights Reserved. 19
    ● JetpackCompose導入ガンガンやっていくと良い
    ○ まずは、新規画面で使ってみる
    ○ 慣れてきたら既存画面の改修時に
    CustomViewのノリで部分的に使う
    ● Composeライブラリのバージョンは、アルファを信
    じてガンガン上げていこう
    まとめ

    View Slide

  20. おわり
    Androidアプリ開発エンジニア募集中です!

    View Slide