Dartのコアライブラリ
Dartには、オブジェクトのコレクション(dart:collection)、計算(dart:math)、データのエンコード/デコード(dart:convert)などの日常的なプログラミングタスクの必需品を提供する豊富なコアライブラリがあります。追加のAPIは、一般的に使用されるパッケージで利用できます。
ライブラリツアー
#以下のガイドでは、Dartのコアライブラリの主要な機能の使用方法について説明します。これらは概要のみを提供しており、決して網羅的なものではありません。ライブラリまたはそのメンバーに関する詳細情報が必要な場合は、Dart APIリファレンスを参照してください。
- dart:core
- 組み込み型、コレクション、その他のコア機能。このライブラリは、すべてのDartプログラムに自動的にインポートされます。
- dart:async
- FutureやStreamなどのクラスを使用した非同期プログラミングのサポート。
- dart:math
- 数学定数と関数、および乱数ジェネレーター。
- dart:convert
- JSONやUTF-8を含む、さまざまなデータ表現間の変換のためのエンコーダーとデコーダー。
- dart:io
- Dart VM、Flutterアプリ、サーバー、コマンドラインスクリプトを使用できるプログラムのI/O。
- dart:js_interop
- Webプラットフォームとの相互運用性のためのAPI。
package:webとともに、dart:js_interopはdart:htmlを置き換えます。
前述のように、これらのページは概要にすぎません。一部のdart:*ライブラリのみを対象とし、サードパーティライブラリは対象としません。
さまざまなプラットフォームでDartがサポートするすべてのライブラリの概要については、以下のマルチプラットフォームライブラリ、ネイティブプラットフォームライブラリ、およびWebプラットフォームライブラリのリストを確認してください。
ライブラリ情報を見つけるその他の場所としては、pub.devサイトとDart Web開発者ライブラリガイドがあります。すべてのdart:*ライブラリのAPIドキュメントは、Dart APIリファレンスで見つけることができます。Flutterを使用している場合は、Flutter APIリファレンスで見つけることができます。
Dart言語についてさらに学ぶには、言語ドキュメントとサンプルを確認してください。
マルチプラットフォームライブラリ
#次の表は、すべてのDartプラットフォームで動作するDartコアライブラリを示しています。
| ライブラリ | 備考 |
|---|---|
dart:coreすべてのDartプログラムのための組み込み型、コレクション、その他のコア機能。 | |
dart:async, package:asyncFutureやStreamなどのクラスを使用した非同期プログラミングのサポート。package:asyncは、FutureおよびStream型に関する追加ユーティリティを提供します。 | |
dart:collection, package:collectiondart:coreのコレクションサポートを補完するクラスとユーティリティ。package:collectionは、コレクションの操作と作業のためのさらなるコレクション実装と関数を提供します。 | |
dart:convert, package:convertJSONやUTF-8を含む、さまざまなデータ表現間の変換のためのエンコーダーとデコーダー。 package:convertは追加のエンコーダーとデコーダーを提供します。 | |
dart:developerデバッガーやインスペクターなどの開発者ツールとの連携。 | ネイティブJITおよび開発JavaScriptコンパイラのみ |
dart:math数学定数と関数、および乱数ジェネレーター。 | |
dart:typed_data, package:typed_data固定サイズのデータ(例:符号なし8バイト整数)やSIMD数値型を効率的に処理するリスト。 package:typed_dataは、型付きデータに関するさらなるクラスと関数を提供します。 |
ネイティブプラットフォームライブラリ
#次の表は、Dartネイティブプラットフォーム(AOTおよびJITコンパイルコード)で動作するDartコアライブラリを示しています。
| ライブラリ | 備考 |
|---|---|
dart:ffi, package:ffiDartコードがネイティブC APIを使用できる外部関数インターフェイス。 package:ffiには、Dart文字列とC文字列の変換サポートを含むユーティリティが含まれています。 | |
dart:io, package:io非Webアプリケーション向けのファイル、ソケット、HTTP、その他のI/Oサポート。 package:ioは、ANSIカラー、ファイルコピー、標準終了コードのサポートを含む機能を提供します。 | |
dart:isolateアイソレートを使用した並行プログラミング:スレッドに似た独立したワーカー。 | |
dart:mirrorsイントロスペクションと動的呼び出しをサポートする基本的なリフレクション。 | 実験的 ネイティブJITのみ(*Flutter*ではない) |
Webプラットフォームライブラリ
#次の表は、Dart Webプラットフォーム(JavaScriptにコンパイルされたコード)で動作するDartコアライブラリを示しています。最新の推奨ツールは**太字**で、レガシーツールは*イタリック体*で表示されています(詳細については、JavaScript相互運用性を参照してください)。
| ライブラリ | 備考 |
|---|---|
package:web JS相互運用性を中心とした軽量ブラウザAPIバインディング | すべてのdart:* Webライブラリを置き換えます。 移行ガイドをお読みください。 |
dart:js_interop JavaScriptおよびブラウザAPIとの相互運用性。 | package:jsを置き換えます。 |
dart:js_interop_unsafe JavaScriptオブジェクトを動的に操作するためのユーティリティメソッド。 | dart:js_utilを置き換えます。 |
dart:html (レガシー)Webベースアプリケーション向けのHTML要素およびその他のリソース。 | 代わりにpackage:webを使用してください。 |
dart:indexed_db (レガシー)インデックスをサポートするクライアントサイドキー/バリュー ストア。 | 代わりにpackage:webを使用してください。 |
dart:js, dart:js_util, package:js (レガシー)JS相互運用のための低レベルプリミティブと高レベルアノテーション。 | 代わりにdart:js_interopまたはdart:js_interop_unsafeを使用してください。 |
dart:svg (レガシー)Scalable Vector Graphics。 | 代わりにpackage:webを使用してください。 |
dart:web_audio (レガシー)ブラウザでの高忠実度オーディオプログラミング。 | 代わりにpackage:webを使用してください。 |
dart:web_gl (レガシー)ブラウザでの3Dプログラミング。 | 代わりにpackage:webを使用してください。 |