【Flutter】iOS、Android両方で収入を得られるアプリを実装する①

## はじめに
はじめまして、2年程度flutterかじってる初心者です。
足跡としてQiitaを始めましたが誰かの参考になれば幸いです。
iOS、Androidで収入を得られるアプリを実装するまでの過程をメモっていきます。

一応最終的な姿としてはフロント側をFlutter（Riverpod、freezed、go_router、build_runner等）、サーバー側をAWSにて実装し、リリースしていく予定です。

## 対象者
この記事は下記のような人を対象にしています。

- 駆け出しエンジニア
- プログラミング初学者
- flutter未経験者

## ゴール
今回のゴールはWindows+VSCodeでFlutterの開発環境の構築を行い、最初のカウントアップ画面のdebugビルドを行うところまでになります。MacではなくWindowsなのは単純にMacを持っていないためです。これから買います。

## 環境構築

### Flutterのインストール
下記リンク(公式)からFlutter SDKをダウンロードします。 
https://docs.flutter.dev/get-started/install/windows

解凍し、WindowsのCドライブにC:/srcフォルダを作成して格納します。



### PATHを通す
「システム環境変数の編集」を開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3486021/c1bcf8c3-6e7a-69cd-43d7-661214f50c94.png)
「環境変数」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3486021/07877536-e639-18f5-4c3f-2ac279ac79e4.png)
「Path」をクリックし、「編集」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3486021/496ddc7a-a042-c6f5-3f39-361331d2824d.png)
「新規」をクリックしflutterフォルダの中のbinファイルの場所を登録します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3486021/556b0115-3643-7274-13d3-6b16f960beab.png)
コマンドプロンプトにて`where flutter`を入力して下図のようになれば完了です。
もし登録したのに`where flutter`で結果が帰らない場合は一度PCを再起動してみてください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3486021/1f4ae4e2-616e-a5e1-8547-db884a336471.png)




### AndroidStudioのインストール・設定
下記リンク(公式)からインストーラーをダウンロードし、インストールします。基本何の設定もいじらずに先に進んで問題ありません。
なぜエディタはVSCodeなのにAndroidStudioをインストールしなければならないかというとコマンドラインから Android を実行する`Android SDK Command-line Tools`等のツールをAndroidStudio上で取得する必要があるからです。
https://developer.android.com/studio

Project＞More Actions＞SDK Managerを開きます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3486021/ec18bbfd-91e1-21ac-e1a9-70d5e6dc554f.png)
「SDK Tools」をクリックし「Android SDK Command-line Tools」のチェックボックスにチェックを入れてOKをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3486021/82d01a04-c40d-4b37-5f70-44759c496303.png)



### VisualStudioの設定
下記リンク(公式)からインストーラーをダウンロード、インストールします。
https://visualstudio.microsoft.com/ja/downloads/

初回インストール時の設定では下記を設定してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3486021/3b784713-92a6-537d-f3db-0fe54cd8f985.png)



### VSCodeの設定
私はすでにVSCodeのインストールが完了していたため省略します。普通に公式からダウンロードしてインストールしてください。
公式：https://code.visualstudio.com/Download

拡張機能からFlutterをインストールします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3486021/47710ef2-5f8a-077d-9668-35310de40ede.png)



### Flutter Doctor
最後にFlutterの環境構築が問題なく行なえているか確認するコマンドを打ちます。
`flutter doctor`をコマンドラインから実行し、結果を確認してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3486021/1134340c-b563-8165-3f7c-d5f9c192406f.png)

[!]になっている部分に問題があるということになるので、コメントにある通り`flutter doctor --android-licenses`を実行してライセンスを承諾します。

すべてチェックが付いたら完了です。ここまで同じように設定してきても環境の違い等で人それぞれだと思いますので、もしうまくいかない場合はコメントに従ってチェックが付くようにしてください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3486021/67487193-6ff1-98ed-95fe-16452569f909.png)



### Flutterのプロジェクト作成、Build
VSCodeを起動し、コマンドパレット(Ctrl+Shift+P)から`Flutter: New Project`を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3486021/8260d2cf-c0b3-0440-0ecb-0cb17cb8530a.png)
applicationを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3486021/8eeef0c3-2131-2d2d-f79b-3d0b82fde634.png)
プロジェクトを保存するフォルダを指定し、プロジェクト名を指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3486021/19a11d6c-1843-dc99-7a4f-236e6c4db920.png)
画像のようにプロジェクトファイルの生成が完了したらF5キーを押してdebugビルドを行います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3486021/c8c3a596-f100-9e14-d19a-50de40e9624c.png)
画像のようにカウントアップの画面が表示されれば完了です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3486021/7ffa3d7d-f86f-1a31-41e5-e0f1c8e4276a.png)


## おわりに
まずはn番煎じですが環境構築からになります。
3日坊主にならないように頑張ります。

## 参考にさせていただいた記事
[いちから始めるFlutterモバイルアプリ開発](https://zenn.dev/heyhey1028/books/flutter-basics/viewer/getting_started_windows)
[【Flutter】windows+VS Code+Flutter環境構築まとめ](https://www.ski-lap.net/flutter/144/)
[プログラミング初心者のためのQiita記事投稿テンプレート](https://qiita.com/YutaManaka/items/611069745ff0f68af879)