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
ふくもく会 LT / Flutter やりなおし
Search
Takahiro Yamakoshi
January 25, 2020
Programming
0
54
ふくもく会 LT / Flutter やりなおし
今 Flutter で 1 から書くならこの辺に気を使うかなーというものまとめ。
他にも多分いっぱいあるけど思いつくものベースで。
Takahiro Yamakoshi
January 25, 2020
Tweet
Share
Other Decks in Programming
See All in Programming
CSC307 Lecture 03
javiergs
PRO
1
490
CSC307 Lecture 10
javiergs
PRO
1
660
Oxlint JS plugins
kazupon
1
980
AI & Enginnering
codelynx
0
110
izumin5210のプロポーザルのネタ探し #tskaigi_msup
izumin5210
1
130
Smart Handoff/Pickup ガイド - Claude Code セッション管理
yukiigarashi
0
140
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
590
24時間止められないシステムを守る-医療ITにおけるランサムウェア対策の実際
koukimiura
1
110
それ、本当に安全? ファイルアップロードで見落としがちなセキュリティリスクと対策
penpeen
7
3.9k
高速開発のためのコード整理術
sutetotanuki
1
400
副作用をどこに置くか問題:オブジェクト指向で整理する設計判断ツリー
koxya
1
610
Grafana:建立系統全知視角的捷徑
blueswen
0
330
Featured
See All Featured
AI: The stuff that nobody shows you
jnunemaker
PRO
2
260
How to train your dragon (web standard)
notwaldorf
97
6.5k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
290
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
350
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.6k
[SF Ruby Conf 2025] Rails X
palkan
1
760
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
160
エンジニアに許された特別な時間の終わり
watany
106
230k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
310
RailsConf 2023
tenderlove
30
1.3k
Transcript
Flutter やりなおし 1 から作り直したいと思ったっていい 時を戻そう
これからする話 Flutter で半年ガッツリ仕事してきて、概ね満足してるが後悔もある。 「今からアプリを1から作るならこうするな」と思っている内容を話す。
Flutter 採用するかどうかの見極め方 • UI ヘビーなアプリであればあるほど恩恵を得られるはず • もともと Native 書けるなら、基本的に問題はない ◦
Native の plugin を書くのは(ものによるけど)難しくない • Native 比重がどんな程度になるかは抑えておくべき • Flutter チームが行ったアンケート の「このプラグインがない/品質が低いから辛 い」の結果は要注意 ◦ Geo, Media, Webview, Ads, Payment … ◦ これらは現状、自分で plugin を書くことになると思ったほうがよい
Lint • 最初から入れたかった ◦ 開発中盤に突っ込んだけどまぁまぁ面倒だった • https://github.com/dart-lang/pedantic とかで厳し目にいれとくとよさそう • const
にすべきところは const にってルール入れてるけど微妙…… ◦ コスパ悪い感じ
CI/CD • 最初に作って自動配布するような仕組み作っておくと非常に楽になる • https://cirrus-ci.org/ が鉄板? • 上記 CI が
Docker イメージ公開してるので、それ使って GitLab Runner とかでも 回せる • Mac は Mac mini に GitLab Runner 入れて回したりもできる • 公式は Fastlane 押し
• Navigation を制するものが Flutter を制する • Navigation Stack は細かい作り込みが難しい ◦
ダイアログもモーダルも基本的にすべて Navigation の Stack に積まれる ◦ Android バックキーと iOS スワイプバックの違い ◦ ある画面からある画面への状態引き継ぎ • 特に Nested Navigation するなら最初にしっかり ◦ bottom tab 使う場合には必要になると思う • Navigator 2.0 の話がある。要注目 まずはハリボテを作り切る
State Management の検討 • https://flutter.dev/docs/development/data-and-backend/state-mgmt/option s をしっかり確認 • おすすめは BLoC
主軸、 setState 補助 • setState いらないのでは → 小さい Widget では効果的 ◦ 確かに setState を考えなしにやるとあきらかにパフォーマンス落ちたりする ◦ が、それはだいたいでかい Widget での話 ◦ setState 以外の方法は基本的に冗長で、コードが長くなりがち • 上記の方針をチームで検討し、共通認識を持つ
例外処理 • 例外が起こったら無視するのか、ログだけ残すのか、トーストで済ますのか、ダイ アログを出すのか • BLoC 内で起こったエラーをどう処理してやるかは結構課題 • 例外処理も UI
はすべて UI Widget 側でやったほうがよい ◦ 無理やり BuildContext 持ってきてダイアログを表示したりしてしまったが後悔してる ◦ (想定してない BuildContext で呼ばれたり……)
開発後期に Golden テスト • 作るものにもチームにもよるけど、デザイン面のデグレが割と起きやすい気がして いる • 後半になってデザインが固まってきたら、 Golden テストを書きたい
• https://medium.com/flutter-community/flutter-golden-tests-compare-widget s-with-snapshots-27f83f266cea
おまけ: 率直な感想 Q. Flutter は好き? A. 好き。大体のコンポーネントが多少無 茶してもヌルヌル動く Q. 次
Native アプリ作るなら? A. Flutter!! Q. Dart は好き? A. 正直微妙。強いて言うなら NNBD はや くきて