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

現実的なCompose化戦略 ~既存リスト画面の置き換え~

SansanTech
January 26, 2025

現実的なCompose化戦略 ~既存リスト画面の置き換え~

■ イベント
Composeを用いたAndroidアプリ開発のハマりどころ
https://newmo-tech.connpass.com/event/339846/

■ 発表者
技術本部 Sansan Engineering Unit Mobile Applicationグループ
桑原 宏和

■ Androidエンジニア 採用情報
https://media.sansan-engineering.com/android-engineer

SansanTech

January 26, 2025
Tweet

More Decks by SansanTech

Other Decks in Technology

Transcript

  1. 写真が入ります 桑原 宏和 Sansan株式会社 技術本部 Sansan Engineering Unit Mobile Applicationグループ

    - Android Engineer - 2022年5⽉ Sansan株式会社に中途⼊社 - SNS: @kilalabu
  2. - 技術的制約 - DataBindingに依存 → KSPに対応できない 😭 - 開発体験 -

    ⾃動⽣成コードが読みにくい - RecyclerViewよりComposeの⽅が直感的に書ける チームの⾒解: EpoxyをComposeに置き換えていきたい!! Epoxyのデメリット
  3. - 課題 - 優先度の低さ - Epoxyに⼤きな技術負債を感じていなかった - 当時はKSP移⾏の必要性が低く、後回しになっていた - 結果

    - ⾒積もり時点で置き換えを考慮せず、案件内での対応が困難に - 紐づくEpoxyModelが多い → ⼀度に進められない - 古い設計 → 置き換えコストが増⼤ なぜCompose化が進まなかったのか?
  4. - 段階的にCompose化を進める - 案件内でEpoxyModel(アイテム)単位でCompose化を進める - 徐々にEpoxyを減らし、最終的に技術改善案件で完全置き換えを狙う - 具体的なソリューション - 案1:

    xmlにComposeViewを埋め込む。(不採⽤) > xml, EpoxyModel⾃体は残ってしまう - 案2: epoxy-composeライブラリを導⼊する(採⽤) > xml, EpoxyModelを削除できる 現実的な戦略を探る
  5. - Rule: 案件⾒積もり時に3つの選択肢から⽅針を決める - 全⾯移⾏ - EpoxyControllerを丸ごとComposeに置き換える - 部分移⾏ -

    EpoxyModel単位でCompose化して共存させる - 現状維持(妥協案) - 既存のxml設計を維持する 案件ごとのCompose化運⽤ルール
  6. - 判断を助ける補助として、EpoxyController 48個の暫定⽅針を設定 置き換え⽅針の暫定リストを作成する EpoxyController EpoxyModel数 アーキテクチャ 置き換え⽅針 備考 aEpoxyController

    2 Flux 全⾯移⾏ bEpoxyController 8 Flux 部分移⾏ cEpoxyController 2 MVP 現状維持 or 全⾯移⾏ 案件の事情に 合わせて検討する