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
1.3k
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
520
Write tests for Provider
matsue
4
830
ややcomplexなBLoCへの対応
matsue
2
790
Flutterアプリの難読化とエラーレポート(iOS)
matsue
2
2.1k
いまさらだけど「良い通知」について考えてみた
matsue
4
11k
リテンション率を2倍にするための2つの視点
matsue
0
3.5k
リソースを効率的に使うためのバックログ活用事例
matsue
1
480
ローディング時のより良いUIの実装
matsue
2
2k
カウルにおけるElasiticsearchの導入と実例
matsue
0
920
Other Decks in Technology
See All in Technology
DMMの検索システムをSolrからElasticCloudに移行した話
hmaa_ryo
0
330
SOTA競争から人間を超える画像認識へ
shinya7y
0
670
AIを使ってテストを楽にする
kworkdev
PRO
0
400
戦えるAIエージェントの作り方
iwiwi
20
9.4k
今から間に合う re:Invent 準備グッズと現地の地図、その他ラスベガスを周る際の Tips/reinvent-preparation-guide
emiki
1
220
様々なファイルシステム
sat
PRO
0
280
AIエージェントによる業務効率化への飽くなき挑戦-AWS上の実開発事例から学んだ効果、現実そしてギャップ-
nasuvitz
5
1.6k
仕様駆動開発を実現する上流工程におけるAIエージェント活用
sergicalsix
10
5.2k
ソースを読む時の思考プロセスの例-MkDocs
sat
PRO
1
360
re:Inventに行くまでにやっておきたいこと
nagisa53
0
940
書籍『実践 Apache Iceberg』の歩き方
ishikawa_satoru
0
430
datadog-incident-management-intro
tetsuya28
0
110
Featured
See All Featured
The Pragmatic Product Professional
lauravandoore
36
7k
Building Adaptive Systems
keathley
44
2.8k
Making Projects Easy
brettharned
120
6.4k
Scaling GitHub
holman
463
140k
Building an army of robots
kneath
306
46k
Why Our Code Smells
bkeepers
PRO
340
57k
jQuery: Nuts, Bolts and Bling
dougneiner
65
7.9k
BBQ
matthewcrist
89
9.9k
Unsuck your backbone
ammeep
671
58k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Keith and Marios Guide to Fast Websites
keithpitt
412
23k
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