他のプログラミング言語の経験がある皆さん、Dartの世界へようこそ。
DartはGoogleによって開発された、クライアントサイド(モバイル・Web・デスクトップ)およびサーバーサイドで幅広く活用されているモダンなオブジェクト指向言語です。特にクロスプラットフォームフレームワークであるFlutterの開発言語として急速に普及しました。
この章では、Dartがどのような言語思想で作られ、どのような特徴を持っているかを概観し、Dartプログラムのエントリーポイントとなる main関数 の書き方を学びます。
Dartは、美しく高速なユーザーインターフェース(UI)を構築するために設計された、オブジェクト指向の型安全なプログラミング言語です。
クライアントサイド(モバイル、Web、デスクトップ)の開発体験を極限まで高めるため、実行基盤や言語構文に独自の工夫が施されています。
Dart最大の特徴の1つは、JITコンパイル(Just-In-Time) と AOTコンパイル(Ahead-Of-Time) の両方に対応している点です。
Dartはユーザーインターフェースのツリー構造を宣言的に記述しやすくするため、言語仕様レベルで多くの工夫が施されています。
new 省略: ネストしたUIコンポーネントをスッキリ記述できます。if や for、スプレッド演算子(...)が使えます(第4章で学習)。Dartの存在を語る上で欠かせないのが、UIフレームワークである Flutter です。
Flutterは、単一のコードベースからiOS、Android、Web、macOS、Windows、Linux向けの高性能なアプリケーションをビルドできるマルチプラットフォームフレームワークです。
+-------------------------------------------------------------+ | Flutter Framework (Dart製UIライブラリ) | | (Widgets, Rendering, Animation, Material, Cupertino) | +-------------------------------------------------------------+ | Dart Platform (言語・ランタイム・標準ライブラリ) | | (Core, Async, Collections, Math, I/O, Isolates) | +-------------------------------------------------------------+ | Flutter Engine (C++ / Skia・Impeller) | +-------------------------------------------------------------+
主要なOSでのインストール手順は以下の通りです。
brew tap dart-lang/dart brew install dart
winget install Dart.Dart-SDK
sudo apt-get install dart
ターミナルで dart コマンドを実行し、バージョンが表示されれば完了です。
$ dart --version Dart SDK version: 3.x.x
Dartでは、プロジェクト作成や依存関係管理、コード整形、テストなどのツールチェーンがすべて dart コマンドに統合されています。
# 新しいコンソールプロジェクトを作成 $ dart create my_dart_app # プロジェクトディレクトリへ移動 $ cd my_dart_app # プログラムの実行 $ dart run Hello world: 42!
Dartのプロジェクト構成やライブラリの依存管理は、プロジェクトルートにある pubspec.yaml ファイルで行います。
main() 関数C言語、Java、Rustなどと同様に、Dartプログラムはトップレベルの main関数(main()) から実行が始まります。
void main() {
print('Hello, Dart!');
}dart run hello_world.dartHello, Dart!
void: main 関数が値を返さないことを表します。main(): アプリケーションのエントリーポイントとなる関数名です。print(...): 文字列などのオブジェクトを標準出力に出力し、末尾に改行を追加します。; (セミコロン): Dartでは各ステートメントの末尾にセミコロンが必須です。外部からの引数を受け取る場合は、引数に List<String> args を指定します。
void main(List<String> args) {
if (args.isEmpty) {
print('引数が渡されていません。');
} else {
print('受け取った引数: $args');
}
}dart run args_example.dart引数が渡されていません。
次の 第1章 では、Dartの型システム、変数宣言、および基本的な演算子について詳しく学んでいきます。