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
56
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ふくもく会 LT / Flutter やりなおし
今 Flutter で 1 から書くならこの辺に気を使うかなーというものまとめ。
他にも多分いっぱいあるけど思いつくものベースで。
Takahiro Yamakoshi
January 25, 2020
Other Decks in Programming
See All in Programming
TSX の <Hoge<Fuga>> という構文に驚いた話 / tsx-type-argument-syntax
kanaru0928
0
230
引き算の組織 ― アウトカムとAIに全振りするために辞めたこと ― / Organization by Subtraction
hirokiyamamoto14
PRO
0
250
【QA Test Talk Vol.8】AI-DLC による Whole Team Approach の加速
pkshadeck
PRO
0
210
ソフトウェアエンジニアにとっての生成AI - 特性を知って使い倒す / generative ai for software enginner
kishida
5
1.9k
Built Our Own Background Agent at LayerX
layerx
PRO
10
5.7k
Google Apps Script で Ruby を動かす
kawahara
0
270
komatsuna「分散システムにおけるバグ分析手法」
komatsunaqa
0
270
関東Kaggler会_NVIDIA_Nemotron_コンペ_振り返り
rick_ds
0
650
Claude Code全社展開のためにやったことn選~プラグイン302個・コミッター271人を支えるために~
kenchan
5
1.6k
Jindong: Introducing Declarative Haptics in Compose Multiplatform
l2hyunwoo
0
120
仕様駆動開発へのトライを機に チームに適合する手法を模索し続けている話
freee
PRO
0
570
Go 1.27 における memory allocation の高速化
andpad
0
250
Featured
See All Featured
We Are The Robots
honzajavorek
0
300
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
45k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
400
エンジニアに許された特別な時間の終わり
watany
108
250k
Fireside Chat
paigeccino
42
4k
Building the Perfect Custom Keyboard
takai
2
840
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Paper Plane
katiecoart
PRO
2
53k
Prompt Engineering for Job Search
mfonobong
0
410
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
620
How to Talk to Developers About Accessibility
jct
2
520
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
390
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 はや くきて