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
Optimize Flutter Workflow on Bitrise
Search
Hiroki Matsue
March 26, 2019
Technology
2
1k
Optimize Flutter Workflow on Bitrise
Flutter Meetup Tokyo #8"でのLT資料です。
https://flutter-jp.connpass.com/event/121387/
Hiroki Matsue
March 26, 2019
Tweet
Share
More Decks by Hiroki Matsue
See All by Hiroki Matsue
Getting Screenshots Automatically in Flutter
matsue
2
450
Write tests for Provider
matsue
5
710
ややcomplexなBLoCへの対応
matsue
2
690
Flutterアプリの難読化とエラーレポート(iOS)
matsue
2
1.7k
いまさらだけど「良い通知」について考えてみた
matsue
4
11k
リテンション率を2倍にするための2つの視点
matsue
0
3.4k
リソースを効率的に使うためのバックログ活用事例
matsue
1
450
ローディング時のより良いUIの実装
matsue
2
1.8k
カウルにおけるElasiticsearchの導入と実例
matsue
0
760
Other Decks in Technology
See All in Technology
VSCodeの拡張機能を作っている話
ebarakazuhiro
1
260
開発パフォーマンスを最大化するための開発体制
ham0215
2
200
自己改善からチームを動かす! 「セルフエンジニアリングマネージャー」のすゝめ
shoota
6
270
Google Cloud の AI を支える裏側のインフラを垣間見る!
maroon1st
0
340
SPI原点回帰論:事業課題とFour Keysの結節点を見出す実践的ソフトウェアプロセス改善 / DevOpsDays Tokyo 2024
visional_engineering_and_design
4
1.9k
プロトタイピングによる不確実性の低減 / Reducing Uncertainty through Prototyping
ohbarye
5
380
20240418_Google ColabにLLMが搭載されたようなのでPython x データ分析の勉強方法を考えてみる
doradora09
0
120
SIEMを用いて、セキュリティログ分析の可視化と分析を実現し、PDCAサイクルを回してみた
coconala_engineer
0
280
FrontDoorとWebAppsを組み合わせた際のリダイレクト処理の注意点
kenichirokimura
1
500
オーナーシップを持つ領域を明確にする
konifar
13
3.1k
Cracking the KubeCon CfP
inductor
2
230
API Gatewayと少し仲良くなってみた!
masuchoku
0
100
Featured
See All Featured
How GitHub Uses GitHub to Build GitHub
holman
468
290k
Imperfection Machines: The Place of Print at Facebook
scottboms
260
12k
What the flash - Photography Introduction
edds
64
11k
Build The Right Thing And Hit Your Dates
maggiecrowley
24
2k
Fantastic passwords and where to find them - at NoRuKo
philnash
37
2.5k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
241
1.2M
Fashionably flexible responsive web design (full day workshop)
malarkey
398
65k
A better future with KSS
kneath
231
16k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
6
1.5k
Ruby is Unlike a Banana
tanoku
96
10k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
120
39k
Typedesign – Prime Four
hannesfritz
36
2.1k
Transcript
Optimize Flutter Workflow on Bitrise Hiroki Matsue (@macs_6) Mar 26th,
2019 Flutter Meetup Tokyo #8
This talk is about CI steps time reduction
Target Listeners
Who know this
Faster CI makes devs happier
Reulst on my project Timeout => 9 minutes Just few
minutes, but Free plan is not so bad ¯\(π)/¯
Flutter CI steps 1. Install Flutter 2. Execute "flutter analyze"
3. Execute "flutter test" 4. Execute "flutter build" (Android and iOS both)
(Each results were measured with my personal project)
Try "Flutter Install" step optimization
TL;DR: Just wait new Hybrid stack https://discuss.bitrise.io/t/making-flutter-builds-faster/3976/8
What if we cache Flutter? • flutter installation: 137sec 㱺
2sec (-135sec) • cache-pull: 11sec 㱺 27sec (+16sec) • cache-push: 92sec 㱺 209sec (+117sec) Only remote storage was changed, no time reduction
Try "flutter build" step optimization
TL;DR: Cache following items • ios/Pods/ • $HOME/Library/Developer/Xcode/DerivedData
Pods caching result • flutter build ios: 172sec 㱺 99sec
(-73sec) • cache-pull: 9sec => 11sec (+2sec) • cache-push: 58sec 㱺 72sec (+14sec) Very effective !
DerivedData caching result • flutter build ios: 140sec 㱺 54sec
(-86sec) • cache-pull: 15sec => 15sec (+0sec) • cache-push: 85sec 㱺 141sec (+56sec)
Non effective items on my project • build/ • ios/Flutter/
• ios/.symlinks/ • $HOME/.gradle/ • android/.gradle/ cache-push tooks too long time for .gradle on my project.
References • "60% faster builds: force Xcode to use caching
on Bitrise!" https://medium.com/@bitrise/60-faster-builds-force-xcode- to-use-caching-on-bitrise-af8979ca39a6 • "Cache Gradle dependencies on Bitrise" https:// medium.com/bitrise/cache-gradle-dependencies-on- bitrise-cf19a2580d07
Faster "flutter analyze" and "flutter test"? Sorry, I have no
idea now ¯\(π)/¯
Other ideas • Put dependencies to the repo • Use
build scheduling for long workflows • Pay for Bitrise • Concurrent build for ios and apk
Summary Caching following items, and using new Flutter Hybrid stacks
will be efficient. • ios/Pods/ • $HOME/Library/Developer/Xcode/DerivedData
Thanks