ちょっとうろうろ

思いつくままちらほらと

Flutter やってみた

flutter で手頃にスマホアプリが作れると聞いたので、試しにやってみることにした。

まずは Flutter のコード打ち込んで動くようになるのを目指す。

環境は maxOS です。

インストール

素直に公式チュートリアルに従って進める。

適当な所にダウンロードした zip を配置して、

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

するか、.bash_profile

export PATH=$PATH:[flutterのパス]/flutter/bin

を追加してパス通せば flutter コマンドが使えるようになる。

で、セットアップのために下記のコマンドを実行する。

flutter doctor

そうすると、flutter で開発を行うのに必要なツールを教えてくれる。

ちなみに xcode のライセンス認証だけは先にしておかないとそれ以外何も教えてくれないので注意

個々のツールのセットアップ方法に関しては、公式チュートリアルに説明があるのでそちらに従ってやれば AndroidiOS 双方の開発環境が整う。

とりあえず VS Code と Connected device 以外チェックが付けばOKか?

やったこと

流すのもあれなので一応やったことを覚え書き

Android

とりあえず公式から Android Studio をダウンロード。エディタが必要ないなら sdk だけ入れれば良さそうだけど、今回は全部入れた。記事書いてる時点では ver.3.2 だ。

インストール後、とりあえず適当にプロジェクト作って動作することを確認、Android toolchain の項目にもチェックが付くはず。

自分はこれに加えて Android licenses not accepted と言われたので、flutter doctor --android-licenses を実行したらチェックが付いた。

それから、Flutter と Dartプラグインを入れる。Android Studio を起動した後、Configure -> Plugins を開く。そして Browse Repositories で Flutter を検索すると、Flutter というプラグインがあるはずなので、これをインストール。すると同時に Dart をインストールするか訊かれるので、一緒にインストールする。その後、Android Studio を再起動すれば、プラグインが使えるようになるはず。

Android Studio の項目から×がなくなれば OK。

iOS

XcodeHomeBrew が必要なので、なければインストールしておく。

その後、doctor の指示に従い、

brew update
brew install --HEAD usbmuxd
brew link usbmuxd
brew install --HEAD libimobiledevice
brew install ideviceinstaller
brew install ios-deploy

としていけば OK。

サンプルプロジェクト

今回は VS code でやってみた。

コマンドパレットで Flutter: New Project を選択し、適当なフォルダにプロジェクトを作成してみる。これだけで必要な環境が揃う。最近は楽で良い。

flutter を実行する前に、任意のエミュレータを起動しておく必要がある。flutter emulators でインストールされているエミュレータのリストが見られる。これらの内のどれかを flutter emulators --launch <emulator_id> 起動しておく。

その後、flutter run を実行すると、起動中のエミュレータに作成したアプリがインストールされ、動作を見ることができるようになる。

ちなみにホットリロードを行うには起動した上で r を、ホットリスタートを行うには R をタイプすれば良い。実行を止めるには q だ。いいね。

試しにホットリロードをやってみよう。チュートリアルに従い、

home: MyHomePage(title: 'Flutter Demo Home Page'),

home: Scaffold(
appBar: AppBar(
    title: Text('Welcome to flutter')
),
body: Center(
    child: Text('child')
),

にして保存し、ホットリロード。するとエミュレータ上のアプリではボタンが消え、中央にテキストが表示される。ちゃんと動いてるね。

デバッグビルドにも少し時間がかかるので、ホットリロードするのがおすすめ。ところで保存にフックする方法はないんだろうか。

また、外部パッケージを pubspec.yaml に追加した場合も、VS Code だと自動で flutter packages get が実行された。有能かよ。

まとめ

Flutter の苦手分野とかまだ見えてないのでまだなんとも言えないが、簡単なアプリ作るのに必要な機能は一通り揃ってる感じなんだろう。これからもちょっとずつ触ってみよう。