Dart/Flutterプログラミング入門 – Dartの初めてのプログラム

注意: この記事は1年以上前に掲載されたものです。情報が古い場合がありますのでお気を付け下さい。

前回「Dart/Flutterプログラミング入門 – Flutter開発ツールのインストール」ではFlutter SDKのインストール方法を説明した ((Flutter 1.21以降ではDart SDKも同梱されるので、Flutterを使わないという理由がなければ、Flutter SDKをインストールするだけで使える。))。今回は最初のプログラムを作って、実際に動かしてみよう。

コマンドでプログラムの雛形を作って実行する

Dart/Flutterでプログラムを作る場合、まずはコマンドを使ってプログラムのプロジェクトを作成する。まずはコマンドプロンプトを起動して、適切な場所のディレクトリを開いたあと、以下のコマンドを入れる。

dart create -t console-full hello

上記のコマンドは、「helloという名のコンソールプログラムのプロジェクトを作成する」ためのコマンドである。上記のコマンドが実行されると、「hello」ディレクトリが作成、その中には以下のファイルが生成される。

  • .gitignore (gitのバージョン管理から無視するかどうかの設定を定義するファイル)
  • CHANGELOG.md (変更履歴をこのファイルに記載する)
  • README.md (プログラムの概要や説明などを記載する)
  • analysis_options.yaml (コードのアナライズ設定を定義する)
  • bin/hello.dart (helloプログラムのエントリーポイント ((DartではC言語のようにmain関数がエントリーポイントとなる)) が実装されているファイル)
  • lib/hello.dart (helloプログラムのうち、共有されるコード)
  • pubspec.yaml (プログラムの設定や依存関係などを定義したファイル)
  • test/hello_test.dart (テストコード)

上記のファイルが生成されたことを確認した場合は、以下のコマンドを実行して確認する。

cd hello
dart pub get
dart run

すると、以下の出力がされるはずである。

Hello world: 42!

コード解説

上記の出力が行われたことについて、解説を行いたい。

今回の場合、Dartのツールがプロジェクトの雛形を作成し、以下のファイルを生成した。

bin/hello.dart

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

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

上記のコードでは、 dart run が実行された時の処理が記載されている。Dartでは main 関数が最初に実行されるコードであるため、今回の場合は「Hello world: (hello.calculate()の結果)!」が表示される処理が書かれている。なお、Dartでは文字列内のうち「${}」で囲まれた箇所が変数やメソッドの結果などを指定することができるようになっている。

その上で、 hello.calculate()を行うために、 「lib/hello.dart」 を hello という名前でインポートしていることがわかる。

lib/hello.dart

int calculate() {
  return 6 * 7;
}

このコードで bin/hello.dart で呼ばれていた「hello.calculate()」の処理が記載されている。このコードでは「6×7」の結果を返す処理を行っている。「6×7」の解は「42」なので、「42」が返される結果となる。

上記を踏まえて、このプログラムでは「Hello world: 42!」が表示されるようになっていることがわかる。

最後に

今回はDartで最初のプログラムの作り方について説明を行った。Dartではプロジェクトの雛形を作る関係上、最初の雛形をコマンドで作る関係から、この段階では実際にコードを触ったわけではないものの、この雛形を元にプログラムを作っていくことになる。次回からは少しずつDartのプログラミングに進めていきたい。

コメント

  1. […] 「Dart/Flutterプログラミング入門 – Dartの初めてのプログラム」ではプロジェクトの作り方と試しに走らせてみた。ここでは、加減乗除の計算についての説明を行いたい。 […]

タイトルとURLをコピーしました