メインコンテンツにスキップ

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_interopdart:htmlを置き換えます。

前述のように、これらのページは概要にすぎません。一部のdart:*ライブラリのみを対象とし、サードパーティライブラリは対象としません。

さまざまなプラットフォームでDartがサポートするすべてのライブラリの概要については、以下のマルチプラットフォームライブラリネイティブプラットフォームライブラリ、およびWebプラットフォームライブラリのリストを確認してください。

ライブラリ情報を見つけるその他の場所としては、pub.devサイトDart Web開発者ライブラリガイドがあります。すべてのdart:*ライブラリのAPIドキュメントは、Dart APIリファレンスで見つけることができます。Flutterを使用している場合は、Flutter APIリファレンスで見つけることができます。

Dart言語についてさらに学ぶには、言語ドキュメントとサンプルを確認してください。

マルチプラットフォームライブラリ

#

次の表は、すべてのDartプラットフォームで動作するDartコアライブラリを示しています。

ライブラリ備考
dart:core
すべてのDartプログラムのための組み込み型、コレクション、その他のコア機能。
dart:async, package:async
FutureStreamなどのクラスを使用した非同期プログラミングのサポート。
package:asyncは、FutureおよびStream型に関する追加ユーティリティを提供します。
dart:collection, package:collection
dart:coreのコレクションサポートを補完するクラスとユーティリティ。
package:collectionは、コレクションの操作と作業のためのさらなるコレクション実装と関数を提供します。
dart:convert, package:convert
JSONや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:ffi
Dartコードがネイティブ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を使用してください。