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
フルFlutterプロジェクトでの苦労・メリット・開発経験について
Search
ANDPAD inc
February 25, 2021
Programming
0
1.8k
フルFlutterプロジェクトでの苦労・メリット・開発経験について
2021/02/24 ANDPAD TechLive #2 Flutterって実際どうなの?設計からテストまで
ANDPAD inc
February 25, 2021
Tweet
Share
More Decks by ANDPAD inc
See All by ANDPAD inc
MySQL の SQL クエリチューニングの要所を掴む勉強会
andpad
5
8k
Long journey of Ruby standard library
andpad
0
19
Go 1.22 の Vet 変更点について
andpad
0
310
アンドパッドのある開発チームでの OSS への取り組み
andpad
2
4.4k
最初のファンを作り、最初のファンに価値を届けるまで
andpad
1
770
Deep dive into Ruby's require
andpad
0
91
AWS Security Hub を 「有効化したけど見てない」人に向けた DevSecOps の実現方法
andpad
0
80
EC2 からの脱出劇:多用途なサーバの全役割をサーバレス・コンテナ環境へ
andpad
0
29
Ruby on Rails + Sidekiq構成のモノリシックサービスをコンテナ化した話
andpad
0
270
Other Decks in Programming
See All in Programming
Polars入門
daikikatsuragawa
1
190
DMMプラットフォームがTiDB Cloudを採用した背景
pospome
9
4.3k
GitHub Copilotのススメ
marcy731
1
230
はてなにおける CSS Modules、及び CSS Modules に足りないもの / CSS Modules in Hatena, and CSS Modules missing parts
mizdra
7
990
Implementing Design Systems in Swift
seyfoyun
2
480
slow types ってなんだろう?
karad
0
120
Direct Style Effect Systems The Print[A] ExampleA Comprehension Aid
philipschwarz
PRO
0
150
Next.js App Router
quramy
12
2k
Three ways to use AI on Android: The Good, the Bad and the Ugly
marxallski
0
110
効率化に挑戦してみたらモバイル開発が少し快適になった話
ryunakayama
0
140
検証も兼ねて個人開発でHonoとかと向き合った話
hanetsuki
1
1.3k
Elm 0.19.0 Changes
bkuhlmann
0
510
Featured
See All Featured
The Mythical Team-Month
searls
217
42k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
501
140k
Facilitating Awesome Meetings
lara
43
5.6k
Teambox: Starting and Learning
jrom
128
8.4k
Unsuck your backbone
ammeep
664
57k
The Brand Is Dead. Long Live the Brand.
mthomps
49
29k
Optimising Largest Contentful Paint
csswizardry
13
2.4k
Rebuilding a faster, lazier Slack
samanthasiow
74
8.2k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
21
1.6k
How to name files
jennybc
65
93k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
20
1.8k
A Philosophy of Restraint
colly
197
16k
Transcript
フルFlutterプロジェクトでの苦労・メリット・ 開発経験について Copyright © 2020 Present ANDPAD Inc. This information
is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止 ANDPAD TechLive #2
自己紹介 - kotaro.kudo - 株式会社アンドパッド アプリ開発チーム - GitHub: ham-burger -
Twitter: derakudo - 金融系SIer→C向け事業会社→現職 - Kotlin/Android時々Swift/iOS
Flutterで開発してます - 検査業務を効率化するサービス - ReactNative製v1からリニューアル
検査アプリについて - 40画面 - 50 domain entity - 70 api
endpoint - Provider+ChangeNotifier - いずれはRiverpodも
1. Flutterを使うのが良いことだけではないということを知って もらう 2. それでも使う価値があるということを知ってもらう 発表のゴール
よかったこと
開発スピード - 言語のコンテキストスイッチが減った - 実装後にフォローすべきコード量が減った - 結果的にスピードアップ
開発スピード(補足) - ≠Dartが良い、≠Kotlin/Swiftが悪い - 言語仕様の違いは慣れが必要 - キャッチアップはAndroid,iOSに比べれば楽かも - 過去の知識が役立つのはある程度進んでから
- ウィジェットテストが書きやすい - Javaと同名のライブラリ(mockito) - UIテストとInstrumentalテストも挑戦してみたい テストのハードル
キャリアの問題 - 手軽に守備範囲を増やせる - 最悪Androidの開発手段として生き残りそう - web,Fuchsia
苦労したこと
Providerの利用方法(1) AndroidのViewModelをイメージして使っていた https://developer.android.com/topic/libraries/architecture/viewmodel?hl=ja#implement
現状の使い方 Providerの利用方法(2) 渡しているcontextがいまいち notifyListeners()するたびにリビルドされ る
利用するcontextをちゃんと理解して使うべき Providerの利用方法(2) builder配下のcontextを利用するため、child側はリビルドされない
Providerの利用方法(3) 1. 適切なスコープを見極め、UIコンポーネントを整理 2. コンポーネントごとに管理すべき状態を分ける 3. 必要なcontextを渡してChangeNotifierをlistenする
デザインのバランス - デフォルトのMaterial vs 人気のCupatino(iOS)? - CupertinoTabBarとAndroidの戻るボタン - 使ってもらうとマテリアルデザインも意外と好評 1.
開発初期はマテリアルデザインですすめる 2. 実装が落ち着いてからデザインの歩み寄りを始める 3. xibとかに比べたらデザイン変更は一瞬
OS固有の対応 - CI/CD,Push通知,カメラ etc - Flutterに集中できるようにしておく - 2OSテストするコスト 1. Flutter脳になる前に対応しておく
2. 対応できるスペシャリストを事前に押さえておく
まとめ - 銀の弾丸ではない - 二刀流する上での選択肢の一つとして有力 - 同一コードで2OSアプリを開発する、というメリットを享受で きるような進め方を考えるべき