Slide 1

Slide 1 text

Riverpod 移行を支えた LivMap のアーキテクチャ ちゅーやん(中條 剛) @chooyan_i18n

Slide 2

Slide 2 text

https://livmap.co/

Slide 3

Slide 3 text

View input / output BusinessLogic データの流れ Repository データベース操作 LivMap のアーキテクチャ(ざっくり) 依存の方向

Slide 4

Slide 4 text

課題から考える 副業参加のメンバーが多い テストの体制が薄い 同機能の別アプリを作りたい バックエンドの役割が薄い Firebase が使えない別アプリがあり得る リアルな移動を伴うメイン機能がある いずれは Riverpod に移行する ルールは最小限にする 自動テストの書きやすさを考える View を分離する BusinessLogic をひとつの層として設ける Repository を差し替え可能にする GPS を差し替え可能にする 状態管理パッケージは View のみが依存する から から から から から から から

Slide 5

Slide 5 text

View Business Logic Repository LivMap のアーキテクチャ (もう少し広い目で) Provider

Slide 6

Slide 6 text

View Business Logic Repository Riverpod 移行 Provider

Slide 7

Slide 7 text

View Business Logic Repository Riverpod 移行

Slide 8

Slide 8 text

Riverpod 移行 ● View のみの修正 ● 機能ごとの違いはほぼ影響無し ● 「アプリ全体書き直し」感はなかった! ● 依存関係を整理すると修正範囲を限定できる、を体験できた

Slide 9

Slide 9 text

課題 ● 日々の開発に活かせていない ○ ❌ とりあえず守ってもらう ○ 🙆 開発効率アップに活用する ● 守れていない部分も多々ある ● 「テストが書きやすい」≠「テストが書けている」

Slide 10

Slide 10 text

“最適なアーキテクチャは変化するもの” ご清聴ありがとうございました

Slide 11

Slide 11 text

あわせて読みたい https://zenn.dev/chooyan/articles/eefc76dbd2ba25