Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Riverpodに機能追加したときの話 (long ver.)
Search
K9i - Kota Hayashi
July 14, 2023
Programming
0
410
Riverpodに機能追加したときの話 (long ver.)
K9i - Kota Hayashi
July 14, 2023
Tweet
Share
More Decks by K9i - Kota Hayashi
See All by K9i - Kota Hayashi
北九州でFlutterハンズオンをしたので雑多に振り返る
k9i
0
63
FFF(Fukuoka Flutter Fanclub)の紹介
k9i
0
93
Flutter Favoriteプログラムについて調べてみた
k9i
0
1.2k
2023年のFlutter(オフライン)イベントを振り返る
k9i
0
240
Flutterの魅力とコミュニティ活動
k9i
0
440
Flutterエンジニア向け?おすすめmac向けアプリ
k9i
0
430
ゆめみの謎制度「フルリモし放題制度 ㊗️ MAX」で買ったものを紹介します
k9i
0
470
Flutter導入時に警戒すべき要件X選
k9i
1
820
FlutterでTikTokログインができるパッケージを作った話 (short ver.)
k9i
0
720
Other Decks in Programming
See All in Programming
「手軽で便利」に潜む罠。 Popover API を WCAG 2.2の視点で安全に使うには
taitotnk
0
850
JSONataを使ってみよう Step Functionsが楽しくなる実践テクニック #devio2025
dafujii
1
530
Kiroの仕様駆動開発から見えてきたAIコーディングとの正しい付き合い方
clshinji
1
210
250830 IaCの選定~AWS SAMのLambdaをECSに乗り換えたときの備忘録~
east_takumi
0
390
「待たせ上手」なスケルトンスクリーン、 そのUXの裏側
teamlab
PRO
0
510
Go言語での実装を通して学ぶLLMファインチューニングの仕組み / fukuokago22-llm-peft
monochromegane
0
120
Testing Trophyは叫ばない
toms74209200
0
860
アプリの "かわいい" を支えるアニメーションツールRiveについて
uetyo
0
250
HTMLの品質ってなんだっけ? “HTMLクライテリア”の設計と実践
unachang113
4
2.8k
Amazon RDS 向けに提供されている MCP Server と仕組みを調べてみた/jawsug-okayama-2025-aurora-mcp
takahashiikki
1
110
Putting The Genie in the Bottle - A Crash Course on running LLMs on Android
iurysza
0
140
ファインディ株式会社におけるMCP活用とサービス開発
starfish719
0
320
Featured
See All Featured
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
What's in a price? How to price your products and services
michaelherold
246
12k
Embracing the Ebb and Flow
colly
87
4.8k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
188
55k
The Art of Programming - Codeland 2020
erikaheidi
56
13k
Balancing Empowerment & Direction
lara
3
620
jQuery: Nuts, Bolts and Bling
dougneiner
64
7.9k
RailsConf 2023
tenderlove
30
1.2k
Producing Creativity
orderedlist
PRO
347
40k
The Pragmatic Product Professional
lauravandoore
36
6.9k
Raft: Consensus for Rubyists
vanstee
140
7.1k
A designer walks into a library…
pauljervisheath
207
24k
Transcript
Riverpodに機能追加したとき の話 (long ver.) 第4回 FlutterGakkai Kota Hayashi (K9i)
自己紹介
YUMEMIについて - Flutterにも力入れてます - 新卒エンジニアとリードエンジニアを募集中
YUMEMIについて - Flutterにも力入れてます - 新卒エンジニアとリードエンジニアを募集中 定期的に勉強会を開催中 タイミングがあったら参加してね
Riverpod? - 日本だと特に人気が高い状態管理ライブラリ - 最近はデファクトスタンダード? - 世界的にはBLoCなんかも人気 - https://docs-v2.riverpod.dev/
追加した機能
追加した機能 Riverpod関連のWidget を相互に変換する
BaseとなるWidgetの変換(Before)
BaseとなるWidgetの変換(Before) flutter, flutter_riverpodパケージのWidgetを ConsumerWidgetかConsuerStatefulWidgetに変 換可能
BaseとなるWidgetの変換(After)
BaseとなるWidgetの変換(After) すべて相互に変換可能
変更したパッケージ - Riverpodはマルチパッケージ構成 - riverpod - flutter_riverpod - hooks_riverpod -
riverpod_generator - riverpod_lint - など
変更したパッケージ - Riverpodはマルチパッケージ構成 - riverpod - flutter_riverpod - hooks_riverpod -
riverpod_generator - riverpod_lint - など MelostというDart向けのマ ルチパッケージ管理ツール が使われている https://melos.invertase.dev /~melos-latest
変更したパッケージ - Riverpodはマルチパッケージ構成 - riverpod - flutter_riverpod - hooks_riverpod -
riverpod_generator - riverpod_lint - など 変更したのはこれ
機能追加の流れ 1. Notionに既存処理の流れを洗い出した
None
機能追加の流れ 1. Notionに既存処理の流れを洗い出した 2. custom_lint_builderの使い方をキャッチアップ
custom_lint_builderの使い方をキャッチアップ - riverpod_lintはcustom_lint_builderパッケージで実現されている - 使い方の説明はcustom_lintパッケージのreadme - https://pub.dev/packages/custom_lint#creating-a-custom -lint-package
機能追加の流れ 1. Notionに既存処理の流れを洗い出した 2. custom_lint_builderの使い方をキャッチアップ 3. 実装 4. hooks関連の問題発生
hooks関連の問題発生 - HookWidgetなどはhooks_riverpodを使ってるときだけ変換したい → custom_lintで利用パッケージを知るすべが無い
図解 これらはオプションにしたい しかしcustom_lintからプロジェクトの利用 パッケージを取得できない
remiさんがcustom_lintを修正してくれた
remiさんがcustom_lintを修正してくれた custom_lintの変更 PR https://github.com/invertase/dart_custom_lint/p ull/137 Changelog https://pub.dev/packages/custom_lint_builder/ changelog#033---2023-04-06
custom_lintの補足 - Dart、Flutter用にオリジナルのlintルールを作れる要チェックパッケージ - lintを利用する:custom_lintパッケージ - lintを開発する:custom_lint_builderパッケージ - Invertaseが開発してる -
といいつつほぼremiさんが作ってる? - riverpod_lintの開発の中で改良されてる感があり、 custom_lint_builderを使うときはriverpod_lintが参考になる
無事リリース🥳
無事リリース🥳 機能追加とかすると Changelogに書いてもらえ る 自分でOSSするときも参考にすると良さそうな 運用
おわり - Riverpod関連のWidgetを変換する機能を追加したよ - 今回の実装のPR - https://github.com/rrousselGit/riverpod/pull/2306