FlutterのノーコードサービスFlutterFlow/FlutterStudioの概要

---
# :book: Flutterの記事を整理し本にしました :book:
https://zenn.dev/kazutxt/books/flutter_practice_introduction

* <font color="red"><b>本稿の記事を含む様々な記事を体系的に整理し本にまとめました</b></font>
* 今後はこちらを最新化するため、<font color="red"><b>最新情報はこちらをご確認ください</b></font>
* 30万文字を超える超大作になっています!!

---

## まとめ記事
* [Flutter系の記事のまとめ](https://qiita.com/kazutxt/items/524acb1c134015682ccf)

# はじめに
* Google I/O '21でFlutterFlowというFlutterのノーコードのサービスについて紹介があったので、軽く調べてみました。

# ノーコード・ローコードとは
近年ノーコード・ローコードが注目を浴びています。
ノーコードはコードを全く書かないでアプリを実装すること、ローコードは必要最低限の少ないコードでアプリを実装することを言います。

具体的には、特定のパッケージやサービスを利用し、GUI上でWidgetを配置したり、設定を入力することで、コードを自動生成することで実現します。

プログラマでなくてもアプリを作れるため、専門的なプログラミングの知識を勉強していない方でも利用でき、ユーザ側に近い方やデザイナなどが利用するシーンも多くあります。

一方で、最新の機能が使えなかったり、細かいチューニングができなかったりするなど、アプリ・言語を詳しく知っている人からすると、物足りないということもあります。

これから紹介するサービスは、ノーコードのため、ロジック部分の作り込みをGUI上から行うことはできません。
Drag&Dropで画面を構築した後、ソースコードをダウンロードし、その後、ロジックを作っていくという流れになります。

# FlutterFlow

**FlutterFlow**はFlutterUIを作るためのWebサービスです。
https://flutterflow.io/

**FlutterFlow**を用いることで、ノーコードで以下のようなことができます。
* 画面UIの作成
* 画面の接続
* Firebaseとの接続
* コードのエクスポート

**Google I/O '21 Keynote**でも紹介されています。
https://www.youtube.com/watch?v=40_tpAHwWcM


## ログインとプロジェクトの作成
まずは、ログインをしてプロジェクトの作成をします。

![pic1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/259228/f8d1c07d-e519-51bf-5dbb-601e28c24beb.png)

* サイトにアクセス

![pic2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/259228/f46c3eb8-1312-4619-727f-79a95bd4f533.png)

* 初期ページ

![pic3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/259228/92959c0f-e125-eb92-4a14-451694e39f1f.png)

* プロジェクト作成

![pic4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/259228/c578f7d1-7ff4-023c-33d9-849608bd3970.png)

* ページ作成画面

**FlutterFlow**にアクセスし、ログインを行うとプロジェクト作成ができるようになります。
その後、ページ作成画面が表示されるため、WidgetをDrag&Dropしていくことで、画面を構築することができます。

## 各画面で構築できること
以下のような各画面で、アプリの構築を行うことができます。

![pic21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/259228/7ca9998d-e9c5-ab9c-3baf-3856e0ef9f0e.png)

* *UI Builder*

* UIBuilderではWidgetを配置して、画面を構築することができます

![pic22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/259228/bd5470ac-bff6-98cf-2819-337099caf202.png)

* *Select Page or Conponent*

* Select Page or Conponentでは、別ページの作成を行うことができます

![pic23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/259228/cf03f8dc-14bb-14c4-2d81-17492f8cee03.png)

* *Widget Tree*

* WidgetTreeでは、画面のWidgetツリーの構築状態を確認できます

![pic24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/259228/ad744512-28ae-6de4-ab8a-0ee6a1d9ccc6.png)

* *Actions*

* Actionsでは、ページの遷移などを作成できます

![pic25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/259228/cff5af5e-4ed4-c560-97eb-4550a24b472f.png)

* *AppSettings*

* AppSettingsでは、アプリ全体の設定ができます。

## ソースコード
ソースコードと画面をまとめて確認することができます。
![pic26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/259228/31531157-9725-a3e2-0e35-755b0ac9abeb.png)

*ソースコード*

## 有償プラン
有償プランでは、より多くの機能を利用することができます。

![pic27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/259228/8eed7ccd-db32-3bfa-0ac8-2d08e3bc566e.png)

* *有償プラン*

* ソースコードのエクスポートも有償ですが、画面のコピーで1画面単位では可能です。
* API,Githubなどと連携する場合は有償プランを利用する必要があります。


# FlutterStudio
Paul Mutisya氏が作成した、2年以上前からある**Flutter Studio**というWebサイトもログイン不要でFlutterアプリの構築ができます。

https://flutterstudio.app/

良くも悪くも、機能が少ないので、基本的な機能やレイアウトなどをコンパクトに作成することができます。

![pic30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/259228/ccfdaf7c-5160-e728-64c4-35e63e6c04fb.png)

* *初期画面*

![pic31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/259228/f501af39-c1ec-a640-c549-bee230bc2bff.png)

* *画面を編集*

![pic32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/259228/217d7e62-648b-1857-180c-83f9baf7c2fe.png)

* Widgetツリー&ソースコードを表示