DevFest Tokyo2020 Flutter LT takamii228

553784f5490e80cde79ef80ee70b5ed2?s=47 takamii228
October 17, 2020

DevFest Tokyo2020 Flutter LT takamii228

Flutterを使った継続的アプリ開発を支えるCI/CDパイプライン

#DevFestJa #DevFest #gdgtokyo

https://tokyo.gdgjapan.org/devfest2020
https://gdg-tokyo.connpass.com/event/190079/

参考資料
・Flutterを使ったAndroid・iOSアプリ開発のCIパイプラインを構築する(前半)
https://takamii.hatenablog.com/entry/2020/04/26/134936
・Flutterを使ったAndroid・iOSアプリ開発のCIパイプラインを構築する(後半)
https://takamii.hatenablog.com/entry/2020/04/26/150241
・Flutterを使ったAndroid・iOSアプリ開発のCDパイプラインを構築する
https://takamii.hatenablog.com/entry/2020/04/26/175348
・Visual Studio App Centerを使って内部向けに継続的にネイティブアプリを配信する
https://takamii.hatenablog.com/entry/2020/04/27/121418

553784f5490e80cde79ef80ee70b5ed2?s=128

takamii228

October 17, 2020
Tweet

Transcript

  1. を使った継続的アプリ開発を 支える パイプライン

  2. 自己紹介 • ◦ の研究開発部門で 開発や やる人 ◦ デジタル技術を使った研究開発やプロジェクト支援 ◦ 認定スクラムマスター、認定プロダクトオーナー、

    • フロントエンド・モバイルアプリ開発のリードエンジニア ◦ 、 、 、 、 など ◦ 歴は 年半くらい ◦ 以前は 、 でアーキテクチャ設計、 設計、 業など ◦ パイプライン職人としてリリースサイクル短縮や開発の 改善が得意
  3. 今どの のメジャーバージョン使ってますか? 以上 以前

  4. どのバージョンからバージョンアップしましたか? 以上 以前 バージョンアップは未経験

  5. アンケート結果

  6. のリリース頻度と新 のリリース頻度 • の のバージョンアップは ヶ月に 回のペース • 新 対応時にはバージョンアップ対応は必須

  7. バージョンアップ対応は作業が多く心理的負担もかかる • バージョンアップ対応は規模が大きいほどやることが増える ◦ アップデートのリリースノートを確認する ◦ 開発環境の をバージョンアップし依存ソフトウェアを更新する ◦ 、プラグインのバージョンアップに伴う対応・改修を行う

    ◦ ・ それぞれで網羅的に動作確認を行い不具合を改修する ◦ ・ それぞれでリリース資材を作成してストア申請を行う • バージョンアップ時の作業漏れで不具合発生のリスクがある ◦ テストしきれなくてリリース後に不具合が発生するかも ◦ 無理にあげなくてもいいなら後回しに
  8. でバージョンアップの作業コスト・心理的負担を下げる • 継続的インテグレーション( 、 ) ◦ 変更を定期的に結合し自動ビルド・テストで早期に不具合を検知すること ◦ ビルド、静的解析、単体テスト、 テストを自動化する

    ◦ 開発者への変更に対するフィードバックサイクルのリードタイムを短縮する • 継続的デリバリー( 、 ) ◦ アプリケーションをいつでもデプロイ・リリース可能な状態に保つこと ◦ 、 ファイル作成やテスト端末への配布・ストア申請を自動化する ◦ 実機テストやストア申請へのリリースサイクルのリードタイムを短縮する
  9. における 継続的インテグレーション

  10. で利用できる静的解析・自動テストの仕組み • を使った静的解析 ◦ • ◦ • によるコンポーネントテスト ◦ •

    による テスト ◦
  11. における パイプラインの活用例 • 発行時に実行して ブランチをクリーンに保つ • 日時で両 の画面遷移や画面操作の テストを実行して不具合を検査する

  12. における 継続的デリバリー

  13. における 、 作成の流れ • ファイル作成の流れ ◦ ◦ ◦ • ファイル作成の流れ

    ◦ ◦
  14. における パイプラインの活用例 • 契機で 、 ファイルを作成してテスト端末へ配布する • ブランチへのマージ契機で へ連携する

  15. パイプラインの構築・運用のポイント パイプラインの設定や実行スクリプトもバージョン管理に含める 開発環境・ 環境に関わらずどの環境でも動くようにしておく パイプラインの実行契機を開発プロセスと合わせて設計する パイプラインもプロダクトの一部としてメンテナンスする

  16. まとめ • の バージョンのリリース頻度は ヶ月に 回 • のバージョンアップ対応はそれなりに負担がかかる • パイプラインを構築することで作業コスト・心理的負担が下げられる

    • パイプラインはプロダクトと一心一体だと思って運用していこう
  17. 参考資料 • を使った ・ アプリ開発の パイプラインを構築する(前半) ◦ • を使った ・

    アプリ開発の パイプラインを構築する(後半) ◦ • を使った ・ アプリ開発の パイプラインを構築する ◦ • を使って内部向けに継続的にネイティブアプリを配信する ◦