Flutter IDE (Flutter Roadmap Flutter IDEs)

## はじめに
Flutterを網羅的に学習するにあたって[Roadmap](https://roadmap.sh/flutter)を使って学習を進めることにしました。

この記事では、Flutter初学者やこれからFlutterを学習し始める方に向けて、**IDE**についてまとめています。

RoadmapはFlutterだけでなく、他の言語やスキルのロードマップも提供されており、何から学習して良いか分からないと悩んでいる方にとって有用なサイトになっています。
ぜひ[Roadmap](https://roadmap.sh/)を利用して学習してみてください。

## Roadmapとは

簡潔に言えば、Roadmap.shは学習者にとっての**ガイドブック**であり、**学習の方向性を提供する学習ロードマップサイト**です。

初心者から上級者まで、ステップバイステップでスキルを習得するための情報が提供されています。

学習の進め方が分かりやすく示されているだけでなく、個々の項目に参考資料やリソースへのリンクも提供されているので、学習者は目標を設定し、自分自身のペースで学習を進めることができます。

## Flutter IDE
FlutterロードマップFlutter IDEsでは以下の7つのサイトが紹介されています。興味のある方はぜひお読みください。

- Setting up and Editor: https://docs.flutter.dev/get-started/editor
- Android Studio and IntelliJ: https://docs.flutter.dev/tools/android-studio
- IDEs and editors for Flutter: https://dart.dev/tools#ides-and-editors
- Install VS Code from the official website: https://code.visualstudio.com/
- Android Studio Setup for Flutter Development: https://www.geeksforgeeks.org/android-studio-setup-for-flutter-development/
- Get started with Android Studio: https://dart.dev/tools/jetbrains-plugin
- IntelliJ IDEA: https://www.jetbrains.com/idea/

## IDEとは

IDE（Integrated Development Environment, 統合開発環境）とは、ソフトウェア開発を行う際に利用するツールのことを指します。コードの編集、デバッグ、ビルド、テストなど、ソフトウェア開発のさまざまな段階で利用することができます。

### 主な機能

#### 1. コードエディタ
コードエディタが組み込まれており、シンタックスハイライト[^1]、自動補完、コードフォーマット[^2]などの機能が提供されています。

#### 2. デバッガ 
統合されたデバッガ[^3]を提供し、コードの実行中にバグやエラーを特定し解決するのを支援します。ステップ実行や変数の監視などのデバッグツールが利用できます。

#### 3. ビルドツール
ソースコードから実行可能なバイナリファイル[^4]を生成するためのビルドツールが提供されます。ビルドプロセスを自動化し、エラーチェックや依存関係管理を行います。

#### 4. バージョン管理
多くのIDEは、バージョン管理システム（Git、SVNなど）と連携してコードのバージョン履歴を管理し、チームでの協力開発を容易にします。

#### 5. プラグイン
さまざまなプラグインや拡張機能が用意されており、特定のプログラミング言語やフレームワークに特化した開発環境をカスタマイズできます。

開発プロジェクトに適したIDEを選び、効果的な開発作業を行うことが重要です。

## Flutter IDE
Flutterで開発を行うとなると、使用するIDEはおおよそ3つに分けられます。
それぞれメリット、デメリットがあるため、プロジェクトや開発のニーズに応じて活用していくのが良いでしょう。

### VSCode (Visual Studio Code)

- **メリット**
    - 軽量で高速なエディターであり、起動が速く、リソース消費が比較的少ない。
    - 拡張機能が豊富で、さまざまなプログラミング言語やフレームワークに対応している。
    - カスタマイズ性が高く、ユーザーが好みに合わせてカスタマイズできる。
    - コードの自動補完やエラーチェックなどの開発支援機能が充実している。
- **デメリット**
    - 一部の高度な機能が欠けることがある。
    - ウェブ開発などの大規模プロジェクトには、一部不足が感じられることがある。

### Android Studio

- **メリット**
    - Android アプリケーションの開発に特化した統合開発環境 (IDE) であり、Android プラットフォームとの連携が強力。
    - Android アプリのビルド、デバッグ、エミュレーションがスムーズに行える。
    - Android プロジェクトのテンプレートやコード生成などの便利なツールが充実している。
    - Android アプリ開発における豊富なツールやプラグインを提供。
- **デメリット**
    - Android アプリ開発以外のプラットフォームや言語には対応していない。
    - 一部のプロジェクトでの起動やリソース消費が高いと感じられることがある。
    
### IntelliJ IDEA:

- **メリット**
    - Java をはじめとするさまざまなプログラミング言語やフレームワークに対応した高機能な統合開発環境 (IDE)。
    - リファクタリングやコード分析、自動生成などの高度な開発支援機能が充実している。
    - プロジェクト全体の管理や依存関係の解決が効率的に行える。
- **デメリット**
    - 起動やリソース消費が重いと感じられることがある。
    - Android アプリ開発に関しては、Android Studio の方が特化しているため、一部機能が制限されることがある。

## VSCodeセットアップ
### 1. VSCodeをダウンロード
以下のリンクからVSCodeをダウンロードします。

https://code.visualstudio.com/download

ダウンロードの詳細は[こちら](https://chigusa-web.com/blog/vs-code-install/#toc5)をご確認ください。

### 2. 規約を確認
規約を確認し、問題がなければ「同意する」を選択して、次へ進みます。

### 3. プラグインをインストール
ダウンロードしたVSCodeを起動して、日本語化とFlutterのプラグインをインストールします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3368449/6ad0cf7e-8895-d613-4fe0-3c65d40a39b0.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3368449/fb7a2ca7-4a2c-0e0d-1c16-cb002eaa0608.png)


## Android Studioセットアップ

Android Studioの公式ページから、インストールをしましょう。

https://developer.android.com/studio

### Windowsの場合

#### 1. 「Download Android Studio ~~」 を選択
![スクリーンショット 0005-08-07 13.56.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3368449/721f57fa-185e-30d5-b0ab-528f07260be7.png)

#### 2. 利用規約の同意にチェックマークを入れて、ダウンロードを選択

#### 3. ダウンロード完了後、Android Studioを起動して初期設定を行う

Google が Android Studio とその関連ツールの使用状況データ(パッケージ名やクラス名、プラグイン設定などのソフトウェア識別子、機能やリソースの使用方法など)を収集できるようするか否かのダイアログです。
使用状況統計を Google に送信する場合は右の「**Send usage statistics to Google**」を、送信しない場合は左の「**Don't send**」をタップしてください。基本は「**Don't send**」でOKです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3368449/0523865a-2d7e-a310-bb28-8a5f3e055273.png)

#### 4. 開発環境のカスタマイズに関する選択

**Stadard**と**Custom** **2種類**の設定方法がありますが、ここでは**Standard**を選択します。後ほど変更もできるので、以下にそれぞれの内容を記載しておきます。

**Standard（標準）設定:**

簡単かつ迅速にAndroid Studioの設定を始めることができます。
Googleが推奨する一般的な設定が含まれており、新たにプロジェクトを作成したり、環境を切り替えたりする際に便利です。

**Custom設定(カスタム)設定:**
プロジェクトやチームの独自の要件に合わせて設定を調整できます。これにより、開発プロセスを最適化し、効率を向上させることができます。
プラグインやテーマ、キーマッピングなど、個人の好みに合わせて環境をカスタマイズできます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3368449/d3c22f17-d018-1304-8fbe-38b9e0993b34.png)

#### 5. UIのテーマを選択

好みのテーマを選択しましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3368449/433b0ddd-ca48-3856-e140-375bccf25025.png)

#### 6. Android Studioを使用する際の利用規約に同意

Googleが提供するAndroid Studioを利用する際に、ユーザーが同意する必要がある条件や制約の集合です。ライセンス契約は、ソフトウェアの使用方法、制約、責任、ライセンスの範囲などに関する重要な情報を提供しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3368449/380b28e5-c47d-1188-3e05-df55574980f8.png)

#### 7. Android StudioにFlutterプラグインを導入

インストール後、Dartプラグインを導入するかのダイアログが表示されるため、「Install」をタップします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3368449/1aa90ebd-3dc4-a274-ccc7-d361e4e1cf3c.png)

#### 8. ライセンスに同意
コマンドを実行していくつかのライセンスに同意します。それぞれ内容を確認して`y`を押下します。

```dart
flutter doctor --android-licenses
```

### Macの場合

#### 1. 「Download Android Studio ~~」 を選択
![スクリーンショット 0005-08-07 13.56.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3368449/721f57fa-185e-30d5-b0ab-528f07260be7.png)

#### 2.Macのチップを確認

 利用規約の同意にチェックマークを入れて、端末のチップに対応したものをダウンロードします。
**Intel Macの場合**
![スクリーンショット 0005-08-07 13.58.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3368449/c59cb8a9-7443-a6b3-e7f9-e625970aba72.png)

**Appleシリコン Macの場合**
![スクリーンショット 0005-08-07 13.58.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3368449/d1fe3f55-6235-6f1d-b4f0-ce9c14d8d4e7.png)

#### 3. ダウンロード完了後、Android Studioを起動して初期設定を行う

Google が Android Studio とその関連ツールの使用状況データ(パッケージ名やクラス名、プラグイン設定などのソフトウェア識別子、機能やリソースの使用方法など)を収集できるようするか否かのダイアログです。
使用状況統計を Google に送信する場合は右の「**Send usage statistics to Google**」を、送信しない場合は左の「**Don't send**」をタップしてください。基本は「**Don't send**」でOKです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3368449/0523865a-2d7e-a310-bb28-8a5f3e055273.png)

#### 4. 開発環境のカスタマイズに関する選択

**Stadard**と**Custom** **2種類**の設定方法がありますが、ここでは**Standard**を選択します。後ほど変更もできるので、以下にそれぞれの内容を記載しておきます。

**Standard（標準）設定:**

簡単かつ迅速にAndroid Studioの設定を始めることができます。
Googleが推奨する一般的な設定が含まれており、新たにプロジェクトを作成したり、環境を切り替えたりする際に便利です。

**Custom設定(カスタム)設定:**
プロジェクトやチームの独自の要件に合わせて設定を調整できます。これにより、開発プロセスを最適化し、効率を向上させることができます。
プラグインやテーマ、キーマッピングなど、個人の好みに合わせて環境をカスタマイズできます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3368449/d3c22f17-d018-1304-8fbe-38b9e0993b34.png)

#### 5. UIのテーマを選択

好みのテーマを選択しましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3368449/433b0ddd-ca48-3856-e140-375bccf25025.png)

#### 6. Android Studioを使用する際の利用規約に同意

Googleが提供するAndroid Studioを利用する際に、ユーザーが同意する必要がある条件や制約の集合です。ライセンス契約は、ソフトウェアの使用方法、制約、責任、ライセンスの範囲などに関する重要な情報を提供しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3368449/380b28e5-c47d-1188-3e05-df55574980f8.png)

#### 7. Android StudioにFlutterプラグインを導入

インストール後、Dartプラグインを導入するかのダイアログが表示されるため、「Install」をタップします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3368449/1aa90ebd-3dc4-a274-ccc7-d361e4e1cf3c.png)

#### 8. ライセンスに同意
コマンドを実行していくつかのライセンスに同意します。それぞれ内容を確認して`y`を押下します。

```dart
flutter doctor --android-licenses
```

## IntelliJ Ideaセットアップ

### 1. IntelliJをダウンロード
以下のリンクからIntelliJをダウンロードします。

https://www.jetbrains.com/ja-jp/idea/download/?section=mac

ダウンロードの詳細は[こちら](https://codeforfun.jp/how-to-install-intellij-idea/)をご確認ください。


### 2. 規約を確認
規約を確認し、問題がなければ「同意する」を選択して、次へ進みます。

### 3. プラグインをインストール
ダウンロードしたIntelliJを起動して、Flutterのプラグインをインストールします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3368449/4b99b51e-2ded-e0d8-7a90-e324e04f75ff.png)

## まとめ
統合開発環境（IDE）は、ソフトウェア開発の際に利用するツールです。
さまざまな種類のIDEが存在し、プロジェクトや使用するプログラミング言語に応じて選ぶことが重要になってきます。軽量さと豊富な拡張機能から、何から始めるか迷っている方、初めてFlutterを学ぶ方には、Visual Studio Code（VSCode）をおすすめします。
ぜひ、今回の記事を参考に自分に合ったIDEを見つけてみてください。

## 参考資料 
https://zenn.dev/kazutxt/books/flutter_practice_introduction/viewer/06_chapter1_environment#5.-vscode%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB

https://kino-code.com/what-is-intellij-idea/

https://zenn.dev/hashiiiii/articles/b0eb7344c10f45#intellij-%E3%81%AE%E3%82%BB%E3%83%83%E3%83%88%E3%82%A2%E3%83%83%E3%83%97%E3%82%92%E3%81%99%E3%82%8B


[^1]: **シンタックスハイライト**
エディターでソースコードを編集する際、テキストの一部を命令の属性や構文上の規則に応じて、色分けして表示する機能です。

[^2]: **コードフォーマット**
プログラムコードのレイアウトやスタイルを統一的な形式に整形するプロセスを指します。コードフォーマットは、ソースコードの可読性や保守性を向上させるために重要な役割を果たします。プログラムコードは通常複数の開発者によって共同で開発されるため、コードのスタイルやフォーマットが統一されていることは、コードベース全体の一貫性を保つ上で重要です。(インデント（字下げ）、スペースの数、行の長さ、括弧の配置など、多くの要素が含まれます)

[^3]: **デバッガ**
プログラムのバグを見つけてくれるソフトウェアのことです。デバッガはバグの発見には有効ですが、デバッグ自体を自動的には行ってくれません。
[こちら](https://wa3.i-3-i.info/word13154.html)にわかりやすい記事があったので、是非読んでみてください。

[^4]: **バイナリファイル**
コンピュータのデータを格納するためのファイル形式の一種です。バイナリファイルは、テキストファイルとは異なり、人間が直接読み取ることが難しいバイナリデータ（テキストデータ以外のデータ）で構成されています。バイナリファイルは、プログラムやアプリケーションの実行可能ファイル、画像、音声、ビデオ、データベースファイルなど、様々な種類のデータを格納するために使用されます。