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
2.5k
フル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
建設DXを支えるANDPAD: 2025年のセキュリティの取り組みと卒業したいセキュリティ
andpad
0
180
小規模 SRE チームで支える、 Atlantis で実現するインフラ管理のセルフサービス化
andpad
1
60
Go コードベースの構成と AI コンテキスト定義
andpad
1
210
「もっと正確に、もっと効率的に」ANDPADの写真書き込み機能における、 現場の声を形にしたエンハンス
andpad
0
1.1k
複数チーム並行開発下でのコード移行アプローチ ~手動 Codemod から「生成AI 活用」への進化
andpad
0
300
Building the Real World with Ruby
andpad
0
76
Catch Up: Go Style Guide Update
andpad
0
340
OSS開発者という働き方
andpad
5
1.9k
Vue・React マルチプロダクト開発を支える Vite
andpad
0
200
Other Decks in Programming
See All in Programming
最初からAWS CDKで技術検証してもいいんじゃない?
akihisaikeda
4
170
CSC307 Lecture 15
javiergs
PRO
0
260
Codex の「自走力」を高める
yorifuji
0
1.3k
The free-lunch guide to idea circularity
hollycummins
0
340
Java 21/25 Virtual Threads 소개
debop
0
260
PHPで TLSのプロトコルを実装してみる
higaki_program
0
430
Ruby and LLM Ecosystem 2nd
koic
1
1.3k
GoのDB アクセスにおける 「型安全」と「柔軟性」の両立 - Bob という選択肢
tak848
0
270
ふつうの Rubyist、ちいさなデバイス、大きな一年
bash0c7
0
1.1k
仕様漏れ実装漏れをなくすトレーサビリティAI基盤のご紹介
orgachem
PRO
7
3.1k
クライアントワークでSREをするということ。あるいは事業会社におけるSREと同じこと・違うこと
nnaka2992
1
360
メッセージングを利用して時間的結合を分離しよう #phperkaigi
kajitack
3
310
Featured
See All Featured
Scaling GitHub
holman
464
140k
What's in a price? How to price your products and services
michaelherold
247
13k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Prompt Engineering for Job Search
mfonobong
0
220
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
2.5k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
130
How Software Deployment tools have changed in the past 20 years
geshan
0
33k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.2k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
690
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
490
Crafting Experiences
bethany
1
93
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
100
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アプリを開発する、というメリットを享受で きるような進め方を考えるべき