ソースコードひとつでWeb+Android+iOSに対応！話題のFlutter for Webに爆速入門する方法【5分でHello,World!】

FlutterはDartという言語のフレームワークで、１つのコードでAndroidとiOSのアプリが開発できる凄いフレームワークです。

それが最近、Webアプリにも対応し、1ソース3プラットフォームな開発が可能に。。。

これは触るしかない！！！
![images.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131737/a3816ece-f9fd-93a9-2a39-1fcfd71b612b.jpeg)

#Flutter for Webの開発環境を構築
[Flutterの公式ドキュメント](https://flutter.dev/docs/get-started/install)にしたがって開発環境を構築していきます。

筆者のマシン
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131737/da87a8d9-4b8f-80e0-62d8-e9d2d1e574cf.png)
##コマンドラインツールのインストール
まず、前提として以下のコマンドラインツールが入っている必要があるらしいので、インストールしていきます。

```
bash
curl
git 2.x
mkdir
rm
unzip
which
```
bash、curl、gitなど以下コマンドでインストールできると思います。

```
brew install hoge
```
うん、問題なさそうですね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131737/cbc25409-7ac5-ab34-ec97-8fe8f4c45603.png)


##FlutterSDKをインストール
[Flutter SDKの最新安定版](https://storage.googleapis.com/flutter_infra/releases/stable/macos/flutter_macos_v1.5.4-hotfix.2-stable.zip)をDLした後は、以下のコマンドで解凍し、環境変数にFlutterSDKとdartSDKパスを通します。

```
unzip flutter_macos_v1.5.4-hotfix.2-stable.zip
export PATH="$PATH:`pwd`/flutter/bin"
export PATH="$PATH:`pwd`/flutter/bin/cache/dart-sdk/bin"
```

以下コマンドでFlatterSDKのインストールとSDKの環境変数へのパス通しが正常にできているかを確認できます。

```
flutter --version
dart --version
```

オーケー！無事インストールできました！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131737/21bad67f-4a3f-0c4c-fd6a-3092d7493780.png)


#Flutter for WebにHello, World!する
[Flutter for Webのソースコードリポジトリの入門](https://github.com/flutter/flutter_web#getting-started)を参考に、Hello,World!していきましょう。
##ソースコードのクローン
以下のコマンドでソースコードをクローンし、hello_worldプロジェクトのあるディレクトリまで移動しましょう。

```
git clone https://github.com/flutter/flutter_web.git
cd flutter_web/examples/hello_world
```

##Flutter for Webのビルドツール「webdev」をインストール
以下のコマンドでビルドツールをインストールできます。

```
flutter packages pub global activate webdev
```
Flutter projectの無いディレクトリで実行しても怒られるので注意してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131737/feaf68bb-6a06-944b-e62d-48d9bdec1609.png)

その後は環境変数にwebdevのパスを通します。

```
export PATH="$PATH":"$HOME/.pub-cache/bin"
```

##ローカルサーバでHello,World!
いよいよHello,World!です。以下のコマンドでローカルサーバが立ち上がり、プロジェクトが動きます。

```
pub get
webdev serve
```

ターミナルに表示されたアドレスをChromeに入力すると・・・

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131737/b592044d-c99a-d648-7823-6781fb32bd49.png)

やったー！Hello,World!成功です！

>ちなみに、pub getは依存ライブラリをダウンロードするものらしいです。
pub get
Get the current package's dependencies.

#IntelliJで開発するための設定
せっかくなので、手元のInnteliJ IDEでもFlutterプロジェクトを閲覧・編集できるように設定しましょう。

まず、メニューバー のPreference -> pluginsからflutterを検索してダウンロード・インストールしてください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131737/1d93459b-b8c6-f9a4-59bc-36135e03e7c8.png)

その後、プロジェクトファイルを開くと、DartSDKを選択するよう言われます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131737/5e42dd33-ef95-d7f7-8a2a-02fc5082d59b.png)
[Open Dart settings]を選択して・・・

コンソールでパスを通したディレクトリの一個上を選択して、[OK]を選択しましょう。
選択するディレクトリ：[あなたのFlutterSDKインストール場所]/flutter/bin/cache/dart-sdk
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131737/bc67eb24-9a78-d8a3-dc90-67279163cc1b.png)

これで、IntelliJから開発ができそうですね！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131737/abb5f8a5-e0f7-fecd-53bc-d47816f7182e.png)

![workingGIF５.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131737/12b2d478-d326-c708-490e-af6e9e4b4047.gif)

実行画像は examples/spinning_square　をIntelliJから動かしたものです！

#TODO
- Flatter for WebのサンプルアプリをiOSやAndroidでも動かして、ひとつのソースコードが複数のプラットフォームで使えることを確かめる

- Flatter for Webのサンプルアプリをデプロイする

- Flatter for Webのサンプルアプリを改造して、作りたいアプリを作る