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

Androidアプリをリアーキテクチャした話/Android-rearchitecture

morizooo
September 17, 2021

 Androidアプリをリアーキテクチャした話/Android-rearchitecture

morizooo

September 17, 2021
Tweet

More Decks by morizooo

Other Decks in Technology

Transcript

  1. 99 • 厳密なルールがないのでActivityに処理が集中 ◦ 6000行のActivityが存在😇 • 最凶のBaseクラス
 ◦ すべてのActivityが1000行のクラスを継承
 ◦

    状態の変更が意図せず起こってしまう
 • EventBusでたらい回しにされる
 ◦ たらい回しの途中で状態が更新されていることもある
 • 度重なるパッチコード対応で意図がわからない • Android Annotationsの学習コスト 既存コードの問題の例
  2. 99 • Baseクラスを解体 • ライブラリへの依存(Android Annotationsなど)をなくす • パッケージ構造の整理 • Kotlin化する

    詳細はTech Blogへ!! https://tech.mirrativ.stream/entry/android-dx 既存コードの問題を整理(2019/04 - 2019/10)
  3. 99 • Fluxアーキテクチャを選定 ◦ 状態管理の問題を解消できそうだった ◦ iOSもFluxを選定していた • Fluxでのリファレンス実装を作成 ◦

    12月時点のPRで新規画面ではFlux実装を必須にした ◦ 現在でも都度都度議論して随時更新している 理想形の作成と周知(2019/10 - 2019/12)
  4. 99 • 触ったところをFluxに書き換えていくようにした ◦ プロダクト開発が最優先 ◦ 既存コードの変更はnice to have ◦

    追加開発に時間がかかるようになってきたものは、長めに 開発期間をもらう等の交渉はした ◦ QA時に影響がありそうな部分は伝えて見てもらう ▪ targetSDKのバージョンアップはフルチェック → お祭りとして強気に変更していた FLUXアーキテクチャに置き換え(2020/01 -)
  5. 99 • Multi Module化 ◦ ビルド速度早くしたい ◦ 機能単位のモジュールは作ったので移行中 • Jetpack

    Composeの導入 ◦ 状態が以前の状態に左右されず処理がわかりやすい ◦ リファレンス実装作って導入済み ▪ 今は各々実装しながら議論しているところ 現在の取り組み
  6. 99 • 段階的にリアーキテクチャをすすめた ◦ まずは既存コードの見通しをよくする ◦ 理想系を決めて周知し、プロダクト開発と一緒に書き換え ていく • リアーキテクチャの効果

    ◦ 副業時にコードが辛いと離脱した人も今では社員に! ◦ 最近Joinしたメンバーからも好評 • 更に一緒に改善していく仲間を探しています!!! まとめ