====== 02.FlutterでWebアプリを作成 2019年09版 ====== ---//2019/09/23 更新// [[00.flutter:index.html|スマホアプリ作成フレームワークFlutter]] Flutterは、もともとiOS/Androidアプリ作成用フレームワークですが、Webアプリも作成できるようになりつつあります。 2019年9月現在、masterブランチでしか動かず、beta版扱いだそうですが、いずれ、stableブランチでも動くようになるのだと思います。 2019年8月以前の解説は、ターミナル画面(コマンドプロプト)で、''%%webdev%%''を使用しているものがほとんどですが、これは古い書き方なので、2019年9月以降の解説(''%%flutter build web%%''を使用)を読むのがお勧めです。 以下のサイトを写経して、Flutter1.9時点での、Flutter for Webを用いてのNetlifyへのデプロイしてみたいと思います。 https://qiita.com/hiko1129/items/377722484d54d4e40de9 {{:00.flutter:pasted:20190926-121039.png}} ===== ソースコードとDEMOサイト ===== ソースコード https://github.com/adash333/flutter_web_app DEMOサイト https://adoring-bose-f00f5c.netlify.com/#/ ===== 開発環境 ===== Windows10 Pro (1803) git version 2.20.1.windows.1 VisualStudioCode 1.38.1 AndroidStudio 3.5 Chrome Flutter 1.9.1+hotfix.2 Dart 2.5.0 ===== Flutterをmaster channelに変更する ===== 2019年9月時点で、まだFlutter Webは正式導入ではないらしく、flutter channelをmasterにする必要があります。 flutter channelについては[[https://github.com/flutter/flutter/wiki/Flutter-build-release-channels|公式サイト]]が参考になります。 master dev beta stable 通常はstableで行うそうですが、今回はmasterにする必要があります。 C:/f/ フォルダをVisualStudioCodeで開き、Ctrl+@でターミナル画面を開き、以下を入力。 flutter channel flutter channel master {{:00.flutter:pasted:20190926-120926.png}} ===== Webサポートを有効にする ===== 詳細は不明ですが、とりあえず、ターミナル画面に以下を入力します。 flutter config --enable-web {{:00.flutter:pasted:20190926-121222.png}} 何やら時間がかかります。 {{:00.flutter:pasted:20190926-121335.png}} {{:00.flutter:pasted:20190926-122324.png}} ===== 新規Flutterプロジェクト作成 ===== 引き続き、以下を入力して、新規プロジェクトを作成します。 プロジェクト名は、アンダーバー_を使用するのがよいそうです。(ハイフン-が使用できない。) flutter create flutter_web_app {{:00.flutter:pasted:20190926-122830.png}} {{:00.flutter:pasted:20190926-122844.png}} ===== FlutterアプリをChromeで起動 ===== ターミナル画面で、以下を入力します。 cd flutter_web_app flutter run だいぶ時間がかかります。 {{:00.flutter:pasted:20190926-123229.png}} 一回うまくいかなかったので、Ctrl+C でいったんサーバを止めてから、再度、flutter run すると、以下のように表示されました。 {{:00.flutter:pasted:20190926-134802.png}} ターミナル画面で、 q と押すと、サーバが停止します。 ===== buildする ===== ターミナル画面で、以下を入力します。 flutter build web すると、build/web/ フォルダ内に、以下のようなファイル群が作成されます。 /build/web assets AssetManifest.json FontManifest.json LICENSE fonts MaterialIcons-Regular.ttf index.html main.dart.js main.dart.js.map このweb/ フォルダをzipファイルにして、Netlifyにアップロードすればよいと思われます。 参考:https://flutter.dev/docs/deployment/web {{:00.flutter:pasted:20190926-140057.png}} ===== GitHubにpush ===== https://github.com/ へログインして、新規リポジトリを作成します。 {{:00.flutter:pasted:20190926-223823.png}} {{:00.flutter:pasted:20190926-223903.png}} {{:00.flutter:pasted:20190926-223917.png}} 上記ページを参考にして、VisualStudioCodeのターミナル画面で、以下を入力してGitHubへpushします。 git init git add . git commit -m "first commit" git remote add origin https://github.com/adash333/flutter_web_app.git git push -u origin master {{:00.flutter:pasted:20190926-224118.png}} {{:00.flutter:pasted:20190926-224203.png}} {{:00.flutter:pasted:20190926-224213.png}} その後、https://github.com/adash333/flutter_web_app を更新すると、以下のようになっています。 {{:00.flutter:pasted:20190926-224244.png}} ===== Netlifyにdeploy ===== https://netlify.com にログインして、New site from Git をクリックして、GitHubから先ほどのリポジトリをデプロイします。 {{:00.flutter:pasted:20190926-224425.png}} {{:00.flutter:pasted:20190926-224442.png}} {{:00.flutter:pasted:20190926-224503.png}} {{:00.flutter:pasted:20190926-224537.png}} {{:00.flutter:pasted:20190926-224557.png}} {{:00.flutter:pasted:20190926-224630.png}} .gitignoreにbuild/ が入ってしまっているのが原因かもしれません。また後で、、、 {{:00.flutter:pasted:20190926-224733.png}} ===== .gitignoreを修正 ===== {{:00.flutter:pasted:20190926-224818.png}} その後、 git add . git commit -m "2" git push すると、以下のようにデプロイできました。 https://adoring-bose-f00f5c.netlify.com/#/ {{:00.flutter:pasted:20190926-224955.png}} ===== ソースコードとDEMOサイト ===== ソースコード https://github.com/adash333/flutter_web_app DEMOサイト https://adoring-bose-f00f5c.netlify.com/#/ ===== Flutter for Webに関するリンク ===== https://qiita.com/hiko1129/items/377722484d54d4e40de9 @hiko1129 2019年09月17日に更新 Flutter 1.9でFlutter for Webが統合されたので再び軽く触ってみた https://flutter.dev/docs/get-started/web Building a web application with Flutter https://flutter.github.io/samples/ Flutter for web samples https://cloudpack.media/47828/amp 2019.07.01 Mon エンジニアブログ Flutter Web: Tips集 WRITTEN BY 松本 勝年 https://razokulover.hateblo.jp/entry/2018/12/06/173001 2018-12-06 FlutterをWebで動かす「Hummingbird」の仕組みについて調べた ===== Flutter for Webのデプロイに関するリンク ===== https://medium.com/@maheshmnj/deploying-your-flutter-webapp-to-github-pages-111ff9e5cbc9 Deploying your Flutter WebApp to Github Pages Mahesh Jamdade May 13 https://flutter.dev/docs/deployment/web#building-the-app-for-release ===== Flutter for WebとFirebase ===== https://qiita.com/hiko1129/items/73ea988df0c537657b10 @hiko1129 2019年05月12日に更新 Flutter Web で Firestore を使う ===== リンク ===== 目次:[[00.flutter:index.html|スマホアプリ作成フレームワークFlutter]] 前:[[00.flutter:01.windows10にflutterをインストール|01.Windows10にFlutterをインストール]] 次: