もふもふ技術部

IT技術系mofmofメディア

【Flutter 連載記事第1回】 Flutterの環境構築(Mac OS向け)

本記事について

本記事はシリーズ連載記事になります。私自身は普段はRailsで開発することが多いのですが、今回Flutterを触る機会がありましたので、その学びを記載していこうと思います。「Flutter最近よく話題に出るし触ってみたいけどよく分からない」みたいな方のお役に立てたら幸いです!

今回の記事はまず最初にということで、環境構築から始めていきます。

  1. flutterの環境構築
  2. widgetを使った画面表示や、画面遷移をさせる
  3. DBの設定やCRUDをする
  4. S3を使って画像アップロード・ダウンロードする
  5. TODOアプリを作成する

バージョンもろもろ

  • OS: macOS Monterey 12.6
  • チップ: Apple silicon
  • Flutter SDK: flutter_macos_arm64_3.3.9-stable

Flutter SDKを入手する

Flutter SDKについては公式ページからzipファイルをダウンロードして入手する方法と、fvm(Flutter Version Management)を利用して入手する方法があります。

fvmはFlutterのプロジェクト毎でFlutter SDKのバージョンを変更出来るようにするもので、複数のプロジェクトで別バージョンのFlutter SDKを使用する必要が想定される場合はfvmを利用する方が無難です。そのため私はfvmを利用しましたが、「とりあえず触ってみたい!」という場合は公式ページからダウンロードして入れる形の方が手順は少ないのでそちらでも良いと思います。

今回はどちらのパターンも紹介しておきますので、必要に応じて選んでください。

公式ページからダウンロードする場合

公式ページ https://flutter.dev/ にアクセスして「Get started」を押下します。 flutter公式トップページ

macOS」を押下 1flutter公式ページ

「Get the Flutter SDK」で、IntelApple siliconでボタンが分かれているのでmacのチップに合わせた方のボタンを押下してzipファイルをダウンロードします。 2flutter公式ページ

公式ページに記載の通り、ダウンロードしたzipファイルをdevelopmentディレクトリ内で解凍します。developmentディレクトリが無い場合はmkdirでディレクトリを作成してください。

$ cd ~/development
$ unzip ~/Downloads/flutter_macos_3.3.9-stable.zip

上記で設置したFlutter SDKを使えるようにパスを通します。公式ページに記載されている

$ export PATH="$PATH:`pwd`/flutter/bin"

こちらの場合、現在開いているターミナルを閉じるとパスの設定が無効になってしまうため、使用しているシェルがbashの方は.bashrcに、zshの方は.zshrcに下記のパスを追記する形の方が良いと思います。

export PATH="$PATH:$HOME/development/flutter/bin"

以上でFlutter SDKを入れる作業は完了です。

fvmを利用する場合

Homebrewでfvmをインストールします。

$ brew tap leoafarias/fvm
$ brew install fvm

インストール完了後に fvm --version を実行し、

$ fvm --version
2.4.1

上記のようにバージョンが表示されればOKです。

次にfvmでインストールしたFlutterを使用するためにパスを通します。使用しているシェルがbashの方は.bashrcに、zshの方は.zshrcに下記のパスを追記します。

export PATH="$PATH":"$HOME/fvm/default/bin"

エディタでもFlutter SDKをfvmで指定したものを使うように設定を入れておきます。 私はVScodeを利用していますので、VScodeのsettings.jsonに以下の設定を追加しました。

"dart.flutterSdkPath": ".fvm/flutter_sdk"

fvmがインストール出来たら現在インストール可能なバージョン一覧を確認して、最新のstableのバージョンを使いましょう。

$ fvm releases

上記のコマンドでバージョン一覧が確認出来ます。

0fvm releases

1fvm releases

この記事を書いている2022/12/02現在では最新のstableのバージョンは3.3.9なので、こちらをインストールします。

$ fvm install 3.3.9

この後の工程のために、グローバルのFlutterの設定もしておきます。(グローバルの設定をしないとflutter doctorが実行できません)

$ fvm global 3.3.9

以上でFlutter SDKを入れる作業は完了です。

flutter doctorを実行する

flutter doctorを実行すると、現在のローカル環境にインストールが必要なものがあるかのチェックが出来るので、インストールが必要なものを確認します。

$ flutter doctor

0flutter doctor

Android Studioをインストールする

Androidのセットアップのため、Android Studioのインストールがされていない場合は、まずAndroid Studioのインストールをしましょう。 https://developer.android.com/studio で、「Download Android Studio」を押下します。

0Android Studioインストール

IntelApple siliconで分かれているので、macのチップに合わせたものを選んでダウンロードします。

0_2Android Studioインストール

ダウンロードしたAndroid Studioを開くとセットアップウィザードが起動します。

1Android Studioインストール

GoogleにAndoroid Studioに関する情報を共有するか選択して、

2Android Studioインストール

インストールタイプはStandardを選択します。

3Android Studioインストール

UIテーマを選び、

4Android Studioインストール

5Android Studioインストール

ライセンスは全てAcceptを選択して「Finish」を押下します。

6Android Studioインストール

7Android Studioインストール

8Android Studioインストール

ダウンロードが完了したらAndroid Studioのインストールは完了です。

引き続き、Android Studioでcommand line toolsもインストールします。

Android Studioの「Preferences > Appearance & Behavior > System Settings > Android SDK」で「SDK Tools」のタブを選択して、「Android SDK Command-line Tools」を選択して「OK」を押下します。

1command-line toolsインストール

以上でcommand line toolsもインストールが完了しました。

flutter doctorを確認するとAndroid toolchainのcommand line toolのワーニングは消えていますが、ライセンスのワーニングが残っています。

2command-line toolsインストール

出力されている内容の通り、

$ flutter doctor --android-licenses

を実行します。Acceptが必要な規約が出力されますので、内容を確認して「y」を入力してAcceptしていけばOKです。全てAcceptが済んだ後にflutter doctorを実行すると、ワーニングが無くなります。

0android licenses

Xcodeのインストール

iOSのセットアップのため、Xcodeがインストールされていない場合はXcodeをインストールします。Xcodeは最新の安定バージョンをインストールします。Webダウンロード または Mac App StoreからXcodeを取得してください。

取得できたらターミナルで下記のコマンドを実行して、新しくインストールされた Xcode のバージョンを使用するように設定します。

$ sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
$ sudo xcodebuild -runFirstLaunch

引き続き、CocoaPodsのインストールをします。

CocoaPodsはiOS/Mac向けのアプリを開発する際のライブラリ管理をしてくれるiOS向けライブラリ管理ツールです。CocoaPodsはRubyで構築されているため、macOSで利用可能なデフォルトのRubyでインストールできます。

ターミナルで下記のコマンドを実行することでインストールできます。

$ sudo gem install cocoapods

Rubyのバージョンが古い場合は上手くインストールできない場合がありますので、その場合はRubyバージョンをアップデートするか、もしくはHomebrewでもインストールが可能です。

$ brew install cocoapods

以上でCocoaPodsのインストールも完了したので、これで無事flutter doctorのワーニングが全て消えました。

1cocoapods install

Flutterのプロジェクトを作成する

これでFlutterのプロジェクトを作成する準備が整いましたので、プロジェクトを作成します。 プロジェクトの作成方法はFlutter SDKを公式ページからのダウンロードで取得しているか、fvmで取得しているかで少し異なるので、こちらも両方紹介しておきます。

まず公式ページからのダウンロードの場合は、プロジェクトを作成したい場所で

$ flutter create my_app

以上でプロジェクトの作成は完了になります。簡単ですね。

次にfvmで取得している場合ですが、fvmで取得している場合はそのプロジェクトでどのバージョンのFlutter SDKを使うかの指定が必要になるので、まずはプロジェクトのディレクトリを作成してディレクトリに入って、

$ mkdir myapp
$ cd myapp

fvm useでバージョンを指定します。fvm useを実行すると、ディレクトリ内に「.fvm」ディレクトリが作成されます。

$ fvm use 3.3.9 --force

Flutterのプロジェクトが存在しないディレクトリで--forceのオプションなしでfvm useを実行すると「Not a Flutter project. Run this FVM command at the root of a Flutter project or use --force to bypass this.」というエラーが出て、「.fvm」ディレクトリの作成が出来ません。

--forceオプションを付けることでプロジェクト作成前の段階で「.fvm」ディレクトリを作成することが出来ます。

ちなみに「.fvm」ディレクトリの中に「flutter_sdk」というファイルが作成されますが、こちらは個人のローカルでの設定情報が記載されるものになるため、後ほど.gitignoreに

.fvm/flutter_sdk

上記を追記して、このファイルはコミットから除外するようにしておきましょう。

少し脱線してしまいましたが、最後にfvmでFlutterのプロジェクトを作成します。

$ fvm flutter create .

以上でFlutterプロジェクトの作成は完了です。

シミュレータでアプリを動かす

ここまでくればあともう少しです。エミュレータでFlutterのアプリを動作させましょう。

まずはiOSです。ターミナルで

open -a Simulator

を実行すると、iOSのシミュレータが起動します。

0シミュレータの確認

シミュレータが起動した状態で先ほど作成したFlutterプロジェクトのディレクトリ直下で

$ flutter run

を実行します。無事プロジェクトの起動に成功すれば、iOSのシミュレータに「Flutter Demo Home Page」が表示されます。

1シミュレータの確認

次にAndroidです。

Android Studioを起動し、「File > open」から作成したプロジェクトを開きます。 メニューの右側にあるAndroidマークのアイコンを押下するとエミュレータのメニューが開かれるので、使用したいデバイスの「▶︎」アイコンを押下するとエミュレータが起動します。

1androidエミュレータを開く

この状態で、作成したプロジェクト直下で

$ flutter run

を実行します。無事プロジェクトの起動に成功すれば、Androidのシミュレータに「Flutter Demo Home Page」が表示されます。

2androidエミュレータを開く

最後に

これでFlutterの環境構築は一通り完了となります。個人的にはflutter doctorで何のインストールが必要かというのを確認しながら進められるのが分かりやすくて、すごく便利だなあと感じました。

参考記事

Flutter公式

【Flutter】FVMで複数のSDKバージョンを簡単に切り替える