コンソールアプリをDartで作ろう

2019/12/17

Flutterでの開発に慣れてくると、ちょっとしたツールもDartで書きたいなあ、という欲が湧いてきます。きますよね?

ということで、Windows上にDartの環境を整備してコンソールアプリを作るまでの手順をまとめておきます。

まずはDartのSDKをインストール。Dartの公式サイトに 導入手順 がまとめられているのでこれを参考にしましょう。Windowsの場合はChocolateyかインストーラーが推奨されているようですが、ZIPファイルをダウンロードしてPATH通すだけでOK。ZIPファイルは『Archive | Dart』にあります。

> dart --version
Dart VM version: 2.7.0 (Fri Dec 6 16:26:51 2019 +0100) on "windows_x64"

次にstagehandをセットアップします。stagehandはDart projectの雛形を生成してくれるツール。Flutterアプリの場合はFlutterが肩代わりしてくれるので不要ですが、コンソールアプリやWebアプリを新規で作る場合は事実上必須に近いです。ルールに沿ったファイル群を手作業で作ってもいいけど大変なので…

インストールはpubコマンドでOK。

> pub global activate stagehand
[snip]
> Warning: Pub installs executables into C:\Users\[USER_NAME]\AppData\Roaming\Pub\Cache\bin, which is not on your path.
[snip]

Warningに書かれているように、Windowsの場合は自動ではPATHが設定されません。自分で足す必要があります。PATHを通さずにフルパス指定で実行してもOK。とりあえず試すだけならPATH通さなくてもいいかも。

> stagehand console-full

とすると、コンソールアプリ用の雛形が生成されます。pub getで依存関係を解決したら実行してみましょう。

> dart bin/main.dart
Hello world: 42!

動きました。あとはソースコードをガリガリ書いていけばOKです。

開発環境はVisual Studio CodeにDart拡張を入れるのが一番手軽ですかね。補完やコードフォーマットなんかをいい感じにやってくれます。

とりあえず動かすだけならこれでもいいんですが、せっかくなのでネイティブの実行ファイルを作ってみましょう。Dart 2.6で実装されたdart2nativeを使うと実行ファイルを生成できます。

> dart2native bin/main.dart -o main_native.exe
Generated: f:\example\main_native.exe

> main_native.exe
Hello world: 42!

バッチリ!

ちなみに、dart2nativeはクロスコンパイルに未対応です。Windows上でLinux用のバイナリを作る、みたいなことはできないので要注意。

参考URL




おススメ