このサイトは、只今WEB業界で活躍中のデザイナー、プログラマーの方々の情報を集めたweb統合情報サイトです。

Archives Details

DartでさくっとCLIツール作成。

Dart

2023.02.28

この記事は最終更新日から1年以上が経過しています。

どもです。

今年は何かとDartを扱って行くだろうということで、まずはサクッとCLIツールの作成を行って行きたいと思います。

今回の内容は主にDartの公式ドキュメントの記載されていますので、詳細に関してはそちらを参照していただければと思います。

 

Dart公式ドキュメント

https://dart.dev/tutorials/server/get-started

 

DartPad

早速、Dartを書いて行きたいのですが、Dartをサクッと試したい場合、ブラウザで実行可能なPlayGround環境の「DartPad」も用意されていますので、わざわざファイルとして作成する必要もない場合はこちらで試しても良いですね。

 

DartPad

https://dartpad.dev/

Dartをインストール

それでは、Mac環境にdartをインストールしていきます。

brewでインストール可能となっております。

 

Mac

$ brew tap dart-lang/dart
brew install dart

 

こちら、Flutter SDKをインストールしていればdartもインストール済みとなっております。

Flutter SDK

https://docs.flutter.dev/get-started/install

 

Dartがインストールされたか確認。

$ dart --version

 

Dart SDK version: 3.0.0-179.0.dev (dev) (Fri Jan 27 21:59:59 2023 -0800) on "macos_arm64"

version: 3.0.0-179.0.devのバージョンがインストールされているのが確認できる。

CLIアプリを作成

dartコマンドでアプリの雛形を生成します。

-tオプション「console」でコンソールアプリの雛形生成となります。

$ dart create -t console cli

生成されたファイルは以下の通り。

.gitignore
analysis_options.yaml
CHANGELOG.md
pubspec.yaml
README.md
bin/cli.dart
lib/cli.dart
test/cli_test.dart

 

それでは早速、アプリを実行。cliフォルダに移動し、dart runコマンドで実行。

$ cd cli
$ dart run

以下の様に表示。

dart run
Building package executable...
Built cli:cli.
Hello world: 42!

 

「Hello world: 42!」がプログラムより出力された内容ですね。

bin/cli.dartのファイルを確認。

 

import 'package:cli/cli.dart' as cli;

void main(List<String> arguments) {
  print('Hello world: ${cli.calculate()}!');
}

Hello world文字列とcli.calculate()関数を実行しているのがわかります。

calculate()関数は以下のファイルに定義されています。

 

lib/cli.dart

int calculate() {
  return 6 * 7;
}

 

いやぁ。

すぐにCLIツール(コンソールアプリ)の実装に入れるので超便利ですね。

テスト

テストファイルも生成されております。

test/cli_test.dart

import 'package:cli/cli.dart';
import 'package:test/test.dart';

void main() {
  test('calculate', () {
    expect(calculate(), 42);
  });
}

dart testコマンドでテストを実行できます。

$ dart test
Building package executable... (2.7s)
Built test:test.
00:00 +1: All tests passed!

 

本番用コンパイル

本番で利用できるようにコンパイルを行います。

こちらもdartコマンド、「dart compile」を用いて行います。

$ dart compile exe bin/cli.dart

 

実行するとcli.exeファイルが生成されます。

exeオプションでself-containedとなり、Dartランタイムが無い環境でも実行可能ファイルが生成されます。しかしながら、exe拡張子はMacで実行できないので、Macで実行できるようにMacの実行ファイル形式に出力します。

$ dart compile exe bin/cli.dart -o bin/cli

-oオプションをつけ、 bin/cliでファイルを作成。

ターミナルで実行。

$ ./bin/cli
Hello world: 42!

超簡単にコンソールアプリの作成が行えました。

その他にも、コンパイル方式としてAOT(Ahead Of Time)、JIT(Just In Time)なども選択できます。

種類は以下の通り。

 

Available subcommands:
aot-snapshot Compile Dart to an AOT snapshot.
exe Compile Dart to a self-contained executable.
jit-snapshot Compile Dart to a JIT snapshot.
js Compile Dart to JavaScript.
kernel Compile Dart to a kernel snapshot.

 

と言った感じで、ざっとDartでCLIツールの作成行いました。

諸々、Dart、Flutterを扱って行こうかと思います。

ではではぁ。

 

Comment

Related Article

AI(ChatGPT)に聞くDart言語

2023.03.12

DartパッケージでPub Pointsを満点にする

2023.03.11

Dartパッケージをサクッと作成する

2023.03.07

DartでさくっとCLIツール作成。

2023.02.28

CATEGORY LIST

LATEST NEWS

Mac VSCodeで、SFML C++開発環境を作る。

C++

2024.09.09

Rust-SDL2 examplesをすべて試す

Rust

2024.09.01

JavaScriptで、DOMを放り投げる処理

JavaScript

2024.07.27

Rustで創る MOS 6502 CPU その2

Rust

2024.07.23

Rustで創る MOS 6502 CPU その1

Rust

2024.07.19

汎用 3D mesh/model viewerを求め。と、簡単に、FBXファイルをglTF(glb)に変換ツールを求め。

C++

2024.06.06

M1 Macで、OpenGL GLUTを使ってコンパイルする

C

2024.04.27

Rust - Actix Web mongo ユーザー登録 JWT認証

Rust

2024.03.24

Rust - Actix Web JWT 認証認可 APIの作成

Rust

2024.02.25

Rust - Actix Web × JSON 静的ファイルをAPIで返却

Rust

2024.01.19

Rust - Actix Web × MongoDB環境をサクッと起動

Rust

2024.01.18

5分で学ぶ RustでWave Function Collapse (波動関数崩壊アルゴリズム)

Rust

2024.01.15

RANKING

Follow

SPONSOR

現在、掲載募集中です。



Links

About Us

WEBデザイナーの、WEBデザイナーによる、WEBデザイナーの為のサイト。「みんなで書こう!」と仲間を募ってみたが、結局書くのは自分だけとなってしまいました。日々のメモを綴っていきます。

Entry Profile

Graphical FrontEnd Engineer
- Daisuke Takayama

MAD CITY 北九州市で生まれ育つ。20代はバンド活動に明け暮れ、ふと「webデザイナーになりたい。」と思い、デジタルハリウッド福岡校入学。卒業後、数々の賞を受賞、web業界をざわつかせる。
現在、主に、ゲーム制作中心に港区六本木界隈で活動中。

FOLLOW US