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アプリ開発に於けるBitrise活用例(初級) / Flutter using ...
Search
tanaka
September 03, 2019
1
560
Flutterアプリ開発に於けるBitrise活用例(初級) / Flutter using Bitrise for beginners
2019/9/3
Bitrise User Group Meetup #2
tanaka
September 03, 2019
Tweet
Share
More Decks by tanaka
See All by tanaka
Release Flutter App_Video On Demand
yumatan
1
500
Google IO 2019
yumatan
8
2.4k
Featured
See All Featured
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
95
17k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
Git: the NoSQL Database
bkeepers
PRO
427
64k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.9k
For a Future-Friendly Web
brad_frost
175
9.4k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
Building Adaptive Systems
keathley
38
2.3k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
VelocityConf: Rendering Performance Case Studies
addyosmani
326
24k
The World Runs on Bad Software
bkeepers
PRO
65
11k
Transcript
Flutterアプリ開発に於ける Bitrise活用例(初級) Yuma Tanaka Mobile Application Engineer at MTI Ltd.
(VideoMarket Corp.)
2019/9/2 アプリリリース • アプリ ◦ videomarket(v4.0.0) • サービス概要 ◦ 動画配信サービス
◦ AirPlay及びCast再生も可 ◦ 会員登録不要 ◦ In-App Purchase • 備考 ◦ Flutter製(iOS版のみ) ◦ 「新規」でなく「更新」リリー ス https://beyond.videomarket.jp
Today’s topic • Flutterアプリ開発でのBitrise活用例 ◦ Bitrise workflows ◦ Bitrise workflow:distribute_staging
◦ Bitrise Step:Flutter ◦ Build Configuration(iOS) ◦ Tips(Cache Push) • Summary
Bitrise workflows • unit_test ◦ PR作成時、自動的にテスト実行 • distribute_mock • distribute_dev
• distribute_staging ◦ flavor:mock, dev, stagingでそれぞれビルド及び Fabric Beta配布 ◦ PRマージ時、自動的に ”distribute_staging”実行 • apple_upload_production ◦ flavor:productionでビルド及びApp Store Connectアップロード
Bitrise workflows • unit_test ◦ PR作成時、自動的にテスト実行 • distribute_mock • distribute_dev
• distribute_staging ◦ flavor:mock, dev, stagingでそれぞれビルド及び Fabric Beta配布 ◦ PRマージ時、自動的に ”distribute_staging”実行 • apple_upload_production ◦ flavor:productionでビルド及びApp Store Connectアップロード
Bitrise workflow:distribute_staging • 役割 ◦ flavor:stagingでビルド及びFabric Beta配布 • 大まかなフローの流れ ◦
Git Clone ◦ Step:Flutterでflutter build ◦ fastlaneでios build ◦ fastlaneでFabric Beta配布
Bitrise workflow:distribute_staging • 役割 ◦ flavor:stagingでビルド及びFabric Beta配布 • 大まかなフローの流れ ◦
Git Clone ◦ Step:Flutterでflutter build ◦ fastlaneでios build ◦ fastlaneでFabric Beta配布
Bitrise Step:Flutter • 概要 ◦ 以前よりコミュニティで作成されていた Step ◦ 2019年1月に公開された、Bitrise公式の 4Stepsとは別物(will
try..) • Input Variables 記入例 ◦ Flutter Version(Required) ▪ stable ◦ Flutter commands to be executed(Required) ▪ build ios --release --flavor staging --target lib/main_staging.dart
Bitrise Step:Flutter • 概要 ◦ 以前よりコミュニティで作成されていた Step ◦ 2019年1月に公開された、Bitrise公式の 4Stepsとは別物(will
try..) • Input Variables 記入例 ◦ Flutter Version(Required) ▪ stable ◦ Flutter commands to be executed(Required) ▪ build ios --release --flavor staging --target lib/main_staging.dart
Build Configurations(iOS) flavor type Configuration main.dart Bitrise workflow mock debug
Debug-mock main_mock.dart - mock release Release-mock main_mock.dart distribute_mock dev debug Debug-dev main_dev.dart - dev release Release-dev main_dev.dart distribute_dev staging debug Debug-staging main_staging.dart - staging release Release-staging main_staging.dart distribute_staging production debug Debug-production main_production.dart - production release Release-production main_production.dart apple_upload_production
Summary • FlutterアプリのCI/CDをBitriseで実現可能 • flavor毎にビルドを行う場合、 アプリ側でビルド構成の検討・導入が必要 ◦ Flutterアプリ開発では、Android/iOSのネイティブの知識が必要
Tips(Cache Push) • 課題 ◦ Step:Flutterを使うと、毎回Flutter SDKがインストールされてしまう ◦ 結果、ワークフローの実行時間が長くなる •
解決方法 ◦ Step:Cache Push(及びCache Pull)を導入し、 毎回Flutter SDKがインストールされるのを防ぐ → ※平均3,4分の実行時間を短縮 ◦ Cache Push -> Cache pathsで下記指定 ▪ /Users/vagrant/Library/flutter -> ./pubspec.lock
Summary • FlutterアプリのCI/CDをBitriseで実現可能 • flavor毎にビルドを行う場合、 アプリ側でビルド構成の検討・導入が必要 ◦ Flutterアプリ開発では、Android/iOSのネイティブの知識が必要 • Step:Cacheを導入する事により、ワークフローの実行時間を短縮可能
Reference • Bitrise step:Flutter ◦ https://github.com/DroidsOnRoids/bitrise-step-flutter • Bitrise step:Cache Push
◦ https://github.com/bitrise-steplib/steps-cache-push • Flutter CI v1.0がBitriseに登場! ◦ https://blog.bitrise.io/flutter-ci-v1-jp