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

cluster_Android_JetpackCompose

 cluster_Android_JetpackCompose

9e32efa81b675ecd55c166fb7b0a1890?s=128

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

  2. Cluster, Inc. All Rights Reserved. 2 自己紹介 • きょこみ(kyokomi) •

    経歴: ◦ clusterに2016年10月Join ◦ 昔はserver開発をメインにインフラみたり Unityやったり、なんでも屋でした ◦ 最近は、Androidアプリ開発をメインにやっ ていきたい • 趣味: ◦ FF14(メインジョブは侍) ◦ 麻雀 / ポーカー/アニメ / RPGゲーム全般 ◦ 好きな漫画は、HxH
  3. Cluster, Inc. All Rights Reserved. 3 おしながき JetpackCompose導入検討中、導入中の方 向けの内容となってます。 •

    clusterで導入している箇所の紹介 • 利用しているバージョンの話 • UiStateでのコンポーザブルとのデータのや り取り
  4. 4 clusterのアプリで JetpackCompose導入箇所の紹介

  5. Cluster, Inc. All Rights Reserved. 5 TwitterとかのDMチャットする画面 以下などの条件で、リストアイテムの表 示が異なる •

    メッセージの種類 • 自分が投稿したか? メッセージ機能
  6. None
  7. Cluster, Inc. All Rights Reserved. 7 ログイン・新規登録画面のリニューアル 名前、アイコン、SNS連携設定のロ グインフロー •

    NavHostでの画面切り替え • 背景はLottieでアニメーション
  8. None
  9. Cluster, Inc. All Rights Reserved. 9 ワールドクラフト機能 自分がクラフトしたワールドを管理する機能 • クラフト一覧

    • クラフト編集 • クラフト公開 • クラフトメンバー管理画面 • etc…
  10. None
  11. Cluster, Inc. All Rights Reserved. 11 ワールド詳細の一部だけCompose化

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

  13. Cluster, Inc. All Rights Reserved. 13 JetpackCompose対応の進捗 • Activity数: 39

    • Compose製の画面: 18 • xml内で一部Compose利用: 4 => 約50%くらい
  14. 14 JetpackComposeのバージョン について

  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が利用したバージョン
  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で直った
  17. Cluster, Inc. All Rights Reserved. 17 バージョンアップどうしていくのがいいか? Jetpack ライブラリは Android

    OS とは別にリリースされるた め、ライブラリの更新は独立して頻繁に行われます。 アルファ版 • アルファ版リリースは機能的に安定していますが、機能が完 成していないことがあります。 • リリースがアルファ版の間は、API が追加、削除、変更され ることがあります。 参考: https://developer.android.com/jetpack/androidx/versions?hl=ja 公式にはこう書いてある
  18. Cluster, Inc. All Rights Reserved. 18 できるだけ最新バージョンを使っていく 弊社は、できるだけ最新バージョンを使うというルールにしました (以下理由) •

    アルファ版の基準に「機能的に安定」との記載があるので、 最新機能を使うときは要注意すれば問題ないはず • composeのバージョンを上げる時にKotlinのバージョンも 上げる必要がでることがある(逆もしかり) • 過去に出たバグが再発したことは今のところなし!!!
  19. Cluster, Inc. All Rights Reserved. 19 • JetpackCompose導入ガンガンやっていくと良い ◦ まずは、新規画面で使ってみる

    ◦ 慣れてきたら既存画面の改修時に CustomViewのノリで部分的に使う • Composeライブラリのバージョンは、アルファを信 じてガンガン上げていこう まとめ
  20. おわり Androidアプリ開発エンジニア募集中です!