Flutterの開発環境構築
今回はFlutterの開発環境の構築についての手順を紹介したいと思います。
Flutterとは?
Flutter(フラッター)は、Googleによって開発されたフリーかつオープンソースのUIのSDKである。単一のコードベース[4]から、Android、iOS、Linux、macOS、Windows、Google Fuchsia[5][6]向けのクロスプラットフォームアプリケーションを開発するために利用される。
https://ja.wikipedia.org/wiki/Flutter
とのことで要は1つコードを書くと複数のプラットフォームで実行できるという素晴らしいツールです。
構成
2023年1月31日時点での環境を示します。
- MacBook Pro(Intel)
- macOS Ventura 13.1
- IntelliJ IDEA Community Edition 2022.3.2
- Android Studio Electric Eel 2022.1.1
- Xcode 14.2(14C18)
- Flutter 3.7.0
- Dart 2.19.0
※ IntelliJ IDEA
とAndroid Studio
についてはJetbrains Toolbox
経由でインストールしています。
Flutterのインストール
macOSなのでHomebrew
経由でインストールします。
$ brew install flutter
インストールできたらFlutterのバージョンを確認してみます。
$ flutter --version
Flutter 3.7.0 • channel stable • https://github.com/flutter/flutter.git
Framework • revision b06b8b2710 (7 days ago) • 2023-01-23 16:55:55 -0800
Engine • revision b24591ed32
Tools • Dart 2.19.0 • DevTools 2.20.1
Flutterの開発環境のチェックを行う
1回目のチェック
Flutterにはflutter doctor
というコマンドがあり、開発環境のチェックを行うことができます。
早速実行してみます。
$ flutter doctor -v
[✓] Flutter (Channel stable, 3.7.0, on macOS 13.1 22C65 darwin-x64, locale ja-JP)
• Flutter version 3.7.0 on channel stable at /usr/local/Caskroom/flutter/3.7.0/flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision b06b8b2710 (7 days ago), 2023-01-23 16:55:55 -0800
• Engine revision b24591ed32
• Dart version 2.19.0
• DevTools version 2.20.1
[✗] Android toolchain - develop for Android devices
✗ Unable to locate Android SDK.
Install Android Studio from: https://developer.android.com/studio/index.html
On first launch it will assist you in installing the Android SDK components.
(or visit https://flutter.dev/docs/get-started/install/macos#android-setup for detailed instructions).
If the Android SDK has been installed to a custom location, please use
`flutter config --android-sdk` to update to that location.
[!] Xcode - develop for iOS and macOS (Xcode 14.2)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Build 14C18
✗ CocoaPods not installed.
CocoaPods is used to retrieve the iOS and macOS platform side's plugin code that responds to your plugin usage on the Dart side.
Without CocoaPods, plugins will not work on iOS or macOS.
For more info, see https://flutter.dev/platform-plugins
To install see https://guides.cocoapods.org/using/getting-started.html#installation for instructions.
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[!] Android Studio (version 2022.1)
• Android Studio at /Users/tatsuaki/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/221.6008.13.2211.9477386/Android Studio.app/Contents
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
✗ Unable to find bundled Java version.
• Try updating or re-installing Android Studio.
[✓] IntelliJ IDEA Community Edition (version 2022.3.2)
• IntelliJ at /Users/tatsuaki/Library/Application Support/JetBrains/Toolbox/apps/IDEA-C/ch-0/223.8617.56/IntelliJ IDEA CE.app
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
[✓] Connected device (2 available)
• macOS (desktop) • macos • darwin-x64 • macOS 13.1 22C65 darwin-x64
• Chrome (web) • chrome • web-javascript • Google Chrome 109.0.5414.119
[✓] HTTP Host Availability
• All required HTTP hosts are available
! Doctor found issues in 3 categories.
上記の通り問題が3つあることがわかります。
エラー内容に従い問題を解決していきたいと思います。
Android toolchain
のエラー
以下のようなエラーが表示されていました。
[✗] Android toolchain - develop for Android devices
✗ Unable to locate Android SDK.
Install Android Studio from: https://developer.android.com/studio/index.html
On first launch it will assist you in installing the Android SDK components.
(or visit https://flutter.dev/docs/get-started/install/macos#android-setup for detailed instructions).
If the Android SDK has been installed to a custom location, please use
`flutter config --android-sdk` to update to that location.
エラーの内容を読むとAndroid SDK
が見つからないとのことです。
解決方法
この時点でAndroid Studio
を起動していなかったため、Android Studio
を起動することでAndroid SDK
がインストールされることがわかりました。
2回目のチェックを実行
再度flutter doctor
を使用してチェックを実行してみます。(今回は実行結果を一部のみ載せます)
$ flutter doctor -v
[✗] Android toolchain - develop for Android devices
• Android SDK at /Users/tatsuaki/Library/Android/sdk
✗ cmdline-tools component is missing
Run `path/to/sdkmanager --install "cmdline-tools;latest"`
See https://developer.android.com/studio/command-line for more details.
[!] Xcode - develop for iOS and macOS (Xcode 14.2)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Build 14C18
✗ CocoaPods not installed.
CocoaPods is used to retrieve the iOS and macOS platform side's plugin code that responds to your plugin usage on the Dart side.
Without CocoaPods, plugins will not work on iOS or macOS.
For more info, see https://flutter.dev/platform-plugins
To install see https://guides.cocoapods.org/using/getting-started.html#installation for instructions.
[!] Android Studio (version 2022.1)
• Android Studio at /Users/tatsuaki/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/221.6008.13.2211.9477386/Android Studio.app/Contents
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
✗ Unable to find bundled Java version.
• Try updating or re-installing Android Studio.
! Doctor found issues in 3 categories.
まだ問題が3つありますね。順番に解決していきたいと思います。
Android toolchain
のエラー
今回は以下のようなエラーが表示されていました。
[✗] Android toolchain - develop for Android devices
• Android SDK at /Users/tatsuaki/Library/Android/sdk
✗ cmdline-tools component is missing
Run `path/to/sdkmanager --install "cmdline-tools;latest"`
See https://developer.android.com/studio/command-line for more details.
内容はコマンドラインツールがインストールされていないとのことです。
解決方法
内容の通りコマンドラインツールをインストールします。
1. Android Studio
を開き、Settings
→Appearance & Behavior
→System Settings
→Android SDK
の順番に選択
2. SDK Tools
タブを選択し、Android SDK Command-line Tools
にチェックを入れ、Apply
をクリック
3回目のチェックを実行
再度flutter doctor
を使用してチェックを実行してみます。(今回も実行結果を一部のみ載せます)
$ flutter doctor -v
[!] Android toolchain - develop for Android devices (Android SDK version 33.0.1)
• Android SDK at /Users/tatsuaki/Library/Android/sdk
• Platform android-33-ext4, build-tools 33.0.1
• Java binary at: /usr/bin/java
✗ Could not determine java version
[!] Xcode - develop for iOS and macOS (Xcode 14.2)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Build 14C18
✗ CocoaPods not installed.
CocoaPods is used to retrieve the iOS and macOS platform side's plugin code that responds to your plugin usage on the Dart side.
Without CocoaPods, plugins will not work on iOS or macOS.
For more info, see https://flutter.dev/platform-plugins
To install see https://guides.cocoapods.org/using/getting-started.html#installation for instructions.
[!] Android Studio (version 2022.1)
• Android Studio at /Users/tatsuaki/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/221.6008.13.2211.9477386/Android Studio.app/Contents
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
✗ Unable to find bundled Java version.
• Try updating or re-installing Android Studio.
! Doctor found issues in 3 categories.
まだ問題が3つありますね。問題が解決しても次の問題が出てきています。
順番に解決していきたいと思います。
Xcode
のエラー
Xcode
には以下のエラーが表示されていました。
[!] Xcode - develop for iOS and macOS (Xcode 14.2)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Build 14C18
✗ CocoaPods not installed.
CocoaPods is used to retrieve the iOS and macOS platform side's plugin code that responds to your plugin usage on the Dart side.
Without CocoaPods, plugins will not work on iOS or macOS.
For more info, see https://flutter.dev/platform-plugins
To install see https://guides.cocoapods.org/using/getting-started.html#installation for instructions.
内容はcocoapods
がインストールされていないことのようです。
解決方法
cocoapods
をインストールすると良いようです。Homebrew
経由でインストールします。
$ brew install cocoapods
4回目のチェックを実行
再度flutter doctor
を使用してチェックを実行してみます。(今回も実行結果を一部のみ載せます)
$ flutter doctor -v
[!] Android toolchain - develop for Android devices (Android SDK version 33.0.1)
• Android SDK at /Users/tatsuaki/Library/Android/sdk
• Platform android-33-ext4, build-tools 33.0.1
• Java binary at: /usr/bin/java
✗ Could not determine java version
[!] Android Studio (version 2022.1)
• Android Studio at /Users/tatsuaki/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/221.6008.13.2211.9477386/Android Studio.app/Contents
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
✗ Unable to find bundled Java version.
• Try updating or re-installing Android Studio.
! Doctor found issues in 2 categories.
問題が2つに減りました。次の問題を解決したいと思います。
Android Studio
のエラー
Android Studio
には以下のエラーが表示されていました。
[!] Android Studio (version 2022.1)
• Android Studio at /Users/tatsuaki/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/221.6008.13.2211.9477386/Android Studio.app/Contents
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
✗ Unable to find bundled Java version.
• Try updating or re-installing Android Studio.
内容を見てみるとJava
のパスが上手く通っていないようです。
解決方法
Flutterが参照しているJava
のパスとAndroid Studio
のJava
のパスが違っているようなので
設定を変更します。
私の環境では以下のようなっていました。
(Jetbrains Toolbox
経由であるため普通にインストールした場合とパスが違っています。)
/Users/{ユーザー}/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/221.6008.13.2211.9477386/Android Studio.app/Contents/jbr
このjbr
フォルダに対しシンボリックリンクjre
を作成します。
sudo ln -nfs jbr jre
補足ですが、jbr
はJetBrains Runtime
のことで、jre
はJava Runtime Environment
のことです。
5回目のチェックを実行
再度flutter doctor
を使用してチェックを実行してみます。(今回も実行結果を一部のみ載せます)
$ flutter doctor -v
[!] Android toolchain - develop for Android devices (Android SDK version 33.0.1)
• Android SDK at /Users/tatsuaki/Library/Android/sdk
• Platform android-33-ext4, build-tools 33.0.1
• Java binary at: /Users/tatsuaki/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/221.6008.13.2211.9477386/Android
Studio.app/Contents/jre/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301)
! Some Android licenses not accepted. To resolve this, run: flutter doctor --android-licenses
! Doctor found issues in 1 category.
やっと問題が1つに減りました。最後の問題を解決していきたいと思います。
Android toolchain
のエラー
以下のエラーが表示されていました。
[!] Android toolchain - develop for Android devices (Android SDK version 33.0.1)
• Android SDK at /Users/tatsuaki/Library/Android/sdk
• Platform android-33-ext4, build-tools 33.0.1
• Java binary at: /Users/tatsuaki/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/221.6008.13.2211.9477386/Android
Studio.app/Contents/jre/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301)
! Some Android licenses not accepted. To resolve this, run: flutter doctor --android-licenses
内容はAndroid license
の確認ができていないことのようです。
解決方法
上記のエラー内容の通りflutter doctor --android-licenses
を実行し、ライセンスの確認を行えば良いです。
6回目のチェックを実行
再度flutter doctor
を使用してチェックを実行してみます。
$ flutter doctor -v
[✓] Flutter (Channel stable, 3.7.0, on macOS 13.1 22C65 darwin-x64, locale ja-JP)
• Flutter version 3.7.0 on channel stable at /usr/local/Caskroom/flutter/3.7.0/flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision b06b8b2710 (7 days ago), 2023-01-23 16:55:55 -0800
• Engine revision b24591ed32
• Dart version 2.19.0
• DevTools version 2.20.1
[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.1)
• Android SDK at /Users/tatsuaki/Library/Android/sdk
• Platform android-33-ext4, build-tools 33.0.1
• Java binary at: /Users/tatsuaki/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/221.6008.13.2211.9477386/Android
Studio.app/Contents/jre/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 14.2)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Build 14C18
• CocoaPods version 1.11.3
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 2022.1)
• Android Studio at /Users/tatsuaki/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/221.6008.13.2211.9477386/Android Studio.app/Contents
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301)
[✓] IntelliJ IDEA Community Edition (version 2022.3.2)
• IntelliJ at /Users/tatsuaki/Library/Application Support/JetBrains/Toolbox/apps/IDEA-C/ch-0/223.8617.56/IntelliJ IDEA CE.app
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
[✓] Connected device (2 available)
• macOS (desktop) • macos • darwin-x64 • macOS 13.1 22C65 darwin-x64
• Chrome (web) • chrome • web-javascript • Google Chrome 109.0.5414.119
[✓] HTTP Host Availability
• All required HTTP hosts are available
• No issues found!
問題は全て解決したようです。(No issues found!)
Flutterアプリケーションプロジェクトの作成
長かったですが、やっとプロジェクトの作成を行いたいと思います。
今回はIntelliJ IDEA
を使用してプロジェクトを作成したいと思います。
IntelliJ IDEA
にFlutterプラグインをインストール
IntelliJ IDEA
を開き、Settings
→Plugins
を選択し、検索バーでflutter
と入力し、表示されたプラグインをインストール
Flutterプロジェクトを新規作成する
IntelliJ IDEA
を開き、New Project
をクリック
左側ペインのFlutter
を選択し、Flutter SDK path
が空白の場合、Flutter
のSDKパスを入力し、Next
をクリック
Project name
を入力し、Create
をクリック
Flutterアプリケーションを実行
ツールバーのデバイス選択を適当なデバイスに設定し、実行する
今回はmacOS(desktop)
を選択して実行してみました。
無事アプリケーションが表示されました。
終わりに
今回は便利なツールであるFlutter
を紹介し、開発環境の構築をしてアプリケーションの実行までしてみました。
Flutter
は簡単にクロスプラットフォームのアプリケーションが作成できるのでものすごく便利だと思います。
Dart
という言語でプログラミングするため新しく言語を覚える必要はあると思いますが、
それに見合った開発体験ができると思います。
弊社にお仕事を依頼したいお客様がいらっしゃいましたら、以下のフォームもしくはメールにてお気軽にお問い合わせ下さい。
システム開発部 森岡(morioka_tatsuaki@computer-tb.co.jp)