Upgrade to Pro — share decks privately, control downloads, hide ads and more …

DevFest Tokyo2020 Flutter LT takamii228

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

takamii228

October 17, 2020
Tweet

More Decks by takamii228

Other Decks in Technology

Transcript

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

    View Slide

  2. 自己紹介

    ○ の研究開発部門で 開発や やる人
    ○ デジタル技術を使った研究開発やプロジェクト支援
    ○ 認定スクラムマスター、認定プロダクトオーナー、
    ● フロントエンド・モバイルアプリ開発のリードエンジニア
    ○ 、 、 、 、 など
    ○ 歴は 年半くらい
    ○ 以前は 、 でアーキテクチャ設計、 設計、 業など
    ○ パイプライン職人としてリリースサイクル短縮や開発の 改善が得意

    View Slide

  3. 今どの のメジャーバージョン使ってますか?
    以上
    以前

    View Slide

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

    View Slide

  5. アンケート結果

    View Slide

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

    View Slide

  7. バージョンアップ対応は作業が多く心理的負担もかかる
    ● バージョンアップ対応は規模が大きいほどやることが増える
    ○ アップデートのリリースノートを確認する
    ○ 開発環境の をバージョンアップし依存ソフトウェアを更新する
    ○ 、プラグインのバージョンアップに伴う対応・改修を行う
    ○ ・ それぞれで網羅的に動作確認を行い不具合を改修する
    ○ ・ それぞれでリリース資材を作成してストア申請を行う
    ● バージョンアップ時の作業漏れで不具合発生のリスクがある
    ○ テストしきれなくてリリース後に不具合が発生するかも
    ○ 無理にあげなくてもいいなら後回しに

    View Slide

  8. でバージョンアップの作業コスト・心理的負担を下げる
    ● 継続的インテグレーション( 、 )
    ○ 変更を定期的に結合し自動ビルド・テストで早期に不具合を検知すること
    ○ ビルド、静的解析、単体テスト、 テストを自動化する
    ○ 開発者への変更に対するフィードバックサイクルのリードタイムを短縮する
    ● 継続的デリバリー( 、 )
    ○ アプリケーションをいつでもデプロイ・リリース可能な状態に保つこと
    ○ 、 ファイル作成やテスト端末への配布・ストア申請を自動化する
    ○ 実機テストやストア申請へのリリースサイクルのリードタイムを短縮する

    View Slide

  9. における
    継続的インテグレーション

    View Slide

  10. で利用できる静的解析・自動テストの仕組み
    ● を使った静的解析



    ● によるコンポーネントテスト

    ● による テスト

    View Slide

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

    View Slide

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

    View Slide

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



    ● ファイル作成の流れ


    View Slide

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

    View Slide

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

    View Slide

  16. まとめ
    ● の バージョンのリリース頻度は ヶ月に 回
    ● のバージョンアップ対応はそれなりに負担がかかる
    ● パイプラインを構築することで作業コスト・心理的負担が下げられる
    ● パイプラインはプロダクトと一心一体だと思って運用していこう

    View Slide

  17. 参考資料
    ● を使った ・ アプリ開発の パイプラインを構築する(前半)

    ● を使った ・ アプリ開発の パイプラインを構築する(後半)

    ● を使った ・ アプリ開発の パイプラインを構築する

    ● を使って内部向けに継続的にネイティブアプリを配信する

    View Slide