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

Flutter for Webで構築したアプリをCodemagic+Github Pagesで配信する

Flutter for Webで構築したアプリをCodemagic+Github Pagesで配信する

taikichi225

May 22, 2019
Tweet

More Decks by taikichi225

Other Decks in Programming

Transcript

  1. Flutter for Webの発表
 1. 先日のGoogle I/O 2019でFlutter for Webのテクニカルプレビュー版 が発表されました。Flutterは、Android/iOSだけでなく、Webアプリと

    してブラウザで動かせるようになります。
 2. Flutter for Webがどのようなものか早速触ってみました。
 

  2. 概要
 名前
 概要
 Flutter for Web
 FlutterをWebアプリとして生成する機能です。Dartのコードを JavaScriptにコンパイルします。
 Codemagic
 Flutterに特化した無料CI/CDツールです。


    リポジトリからソースコード取得・テスト実行・ビルド・GitHub Pages へのデプロイを担当します。
 GitHub Pages
 GitHubの提供する静的コンテンツのホスティングサービスです。 GitHubのアカウントがあれば、無料で静的サイトが公開できます。
 Flutter for Webで構築したアプリを配信します。

  3. 構築
 1.Flutter for Webの導入(1/3)
 
 1. Flutter for Webのソースコードのダウンロード 


    
 2. ビルドツールのインストール
 
 3. サンプルによる動作確認

  4. 構築
 1.Flutter for Webの導入(2/3)
 
 4. 既存プロジェクトのマイグレーション 
 a. Flutterのゴールは、単一コードベースでモバイルとWebに対応したアプリケーションの構築

    です。しかし、今回発表されたテクニカルプレビュー版は、Flutter for Webに対応するため に既存のFlutterコードを修正する必要があります。 
 b. コード修正
 i. pubspec.yaml
 ii. lib/のimport文
 iii. web/にindex.htmlとmain.dartの追加 
 
 【参考】https://github.com/flutter/flutter_web/blob/master/docs/migration_guide.md
  5. 構築
 1.Flutter for Webの導入(3/3)
 
 5. GitHubにソースコード管理用リポジトリの作成 
 a. 「flutter_web_demo」と名付けました。

    
 b. この後作成するGitHub Pages用リポジトリとは別のものです。 
 6. ソースコードのプッシュ

  6. 構築
 3. Codemagicの設定(4/6)
 4. ワークフローの設定
 名前
 概要
 今回の設定箇所
 Build triggers


    ビルド対象のブランチとビルドのトリガーを設定します。
 〇
 Environment variables
 ワークフローにおける環境変数を設定します。
 〇
 Dependency caching
 キャッシュしたいファイル・ライブラリを設定します。
 ×
 Test
 テストを実行します。失敗時の挙動を設定します。
 ×
 Build
 ビルド方法やプラットフォームを設定します。
 〇
 Publish
 ビルド結果の通知とアプリの配信を設定します。
 ×

  7. 所感
 Flutter for Web
 1. テクニカルプレビュー版でも未来を感じる。誰もが夢見たクロスプラットフォーム。 
 a. テクニカルプレビュー版ゆえ、コードを多少修正したが、モバイル用に書いてきたコードが そのままWebで動いた。ウィジェットの組み立て自体に新しく覚えたことはない。

    
 b. 思っていた以上にさくさく描画してくれる。 
 2. デザイナーとの協業はどうするか? 
 a. Flutter for Webに限った話ではないが、デザイナーはDartでコーディングするの?それと も画面モックだけ作成で実際の構築はエンジニア? 
 

  8. 所感
 Codemagic
 1. GUIで簡単にフローを設定できる。 
 a. FlutterアプリをGoogle PlayやApp Storeにデプロイするには便利そう。 


    b. ビルド結果をSlackやメールへの通知を簡単に設定できる。 
 c. 一方で、プラグインが用意されていないため、通常とは異なる処理を含めたい場合、スク リプトをごりごり書くことになる。
 2. 想定以上にビルドに時間がかかる。 
 
 GitHub Pages
 1. Gitの操作だけでコンテンツをホスティングできる。 
 a. 新しく覚えることが少なく、技術的にも気持ち的にもだいぶ楽。 
 2. 今回設定していないが、独自ドメイン・HTTPS対応している。