Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Riverpod 移行を支えた LivMap のアーキテクチャ
Search
Chooyan
October 06, 2024
1.3k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Riverpod 移行を支えた LivMap のアーキテクチャ
Findy 主催「Flutter技術構成を紐解く クロスプラットフォーム開発の裏側」の LT 資料です。
https://findy.connpass.com/event/331062/
Chooyan
October 06, 2024
More Decks by Chooyan
See All by Chooyan
新規アプリ開発で Xamarin導入を見送った話
chooyan244
0
160
Azureもくもく会 #21 成果発表LT資料
chooyan244
0
310
CodeYourRubyでRubyを仕事にする全てのエンジニアに貢献する
chooyan244
1
310
CodeYourRubyでRubyを仕事にする全てのエンジニアに貢献する.pdf
chooyan244
0
280
Featured
See All Featured
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
68
58k
Leo the Paperboy
mayatellez
10
2.3k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
250
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
340
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
20k
Paper Plane (Part 1)
katiecoart
PRO
2
11k
What does AI have to do with Human Rights?
axbom
PRO
1
2.4k
Documentation Writing (for coders)
carmenintech
77
5.5k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
250
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
Fireside Chat
paigeccino
43
4k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
890
Transcript
Riverpod 移行を支えた LivMap のアーキテクチャ ちゅーやん(中條 剛) @chooyan_i18n
https://livmap.co/
View input / output BusinessLogic データの流れ Repository データベース操作 LivMap のアーキテクチャ(ざっくり)
依存の方向
課題から考える 副業参加のメンバーが多い テストの体制が薄い 同機能の別アプリを作りたい バックエンドの役割が薄い Firebase が使えない別アプリがあり得る リアルな移動を伴うメイン機能がある いずれは Riverpod
に移行する ルールは最小限にする 自動テストの書きやすさを考える View を分離する BusinessLogic をひとつの層として設ける Repository を差し替え可能にする GPS を差し替え可能にする 状態管理パッケージは View のみが依存する から から から から から から から
View Business Logic Repository LivMap のアーキテクチャ (もう少し広い目で) Provider
View Business Logic Repository Riverpod 移行 Provider
View Business Logic Repository Riverpod 移行
Riverpod 移行 • View のみの修正 • 機能ごとの違いはほぼ影響無し • 「アプリ全体書き直し」感はなかった! •
依存関係を整理すると修正範囲を限定できる、を体験できた
課題 • 日々の開発に活かせていない ◦ ❌ とりあえず守ってもらう ◦ 🙆 開発効率アップに活用する •
守れていない部分も多々ある • 「テストが書きやすい」≠「テストが書けている」
“最適なアーキテクチャは変化するもの” ご清聴ありがとうございました
あわせて読みたい https://zenn.dev/chooyan/articles/eefc76dbd2ba25