[基礎知識]Flutter SDK

以下は Flutter SDK についての一覧です。

1.Framework Libraries

Flutterのコアフレームワークで、UI構築やアプリケーションロジックの開発を支援するための基本的なライブラリ群です。’package:flutter/<library>.dart’を使ってインポートします:

animationアニメーションの管理と操作を行うためのライブラリです。時間ベースのアニメーションや、カスタムトランジションを作成するためのツールが含まれています。アニメーションコントローラー、カーブ、タイムラインなどを使用して、複雑なアニメーション効果を簡単に実装できます。
cupertinoiOSスタイルのウィジェットとデザインパターンを提供します。AppleのiOSデザインガイドラインに従ったUIコンポーネントを提供し、プラットフォーム固有のユーザーエクスペリエンスを構築するのに役立ちます。
foundationFlutterのコアとなる基本機能を提供します。このライブラリには、エラーハンドリング、メモリ管理、メタデータの定義など、アプリケーションの土台を支えるクラスやユーティリティが含まれています。
gesturesタッチやドラッグ、スワイプなどのジェスチャーを検出し、処理するためのライブラリです。ジェスチャーリスナーやディテクターを使用して、ユーザーインタラクションを管理できます。
materialGoogleのマテリアルデザインガイドラインに基づいたUIコンポーネントを提供します。ボタン、ナビゲーション、ダイアログ、フォームなど、広く使われるウィジェットが含まれています。
painting色、グラデーション、シェイプ、イメージ、テキストスタイルなど、ペイントに関連するツールを提供します。キャンバスに描画する際に使用される基本的な機能が揃っています。
physics物理シミュレーションを扱うためのライブラリです。スクロール、フリング、ドラッグなど、UI内での物理挙動を制御する際に使用します。
renderingレンダリングエンジンを操作し、ウィジェットの配置、描画、レイアウトを管理します。このレイヤーはFlutterのレンダーツリーを構築し、UI要素を正しく描画する役割を持ちます。
schedulerタスクのスケジューリングとフレームの同期を管理します。高精度なタイミングでのアニメーションや、アプリケーションのメインイベントループに関連する操作を行う際に使用されます。
semanticsアクセシビリティをサポートするためのセマンティクス情報を管理します。スクリーンリーダーやアクセシビリティツールがコンテンツを解釈できるよう、ウィジェットに意味を付与します。
servicesプラットフォームサービスへのアクセスを提供します。ネイティブコード(AndroidやiOS)との通信や、システム機能(バッテリー状態、デバイス情報、ネットワーク接続など)へのアクセスを行う際に使用します。
widgetsFlutterのUIを構成する基本的なビルディングブロックです。このライブラリには、レイアウト、インタラクション、状態管理など、アプリケーションのUIを作成するための主要なウィジェットが含まれています。

2.Dart Libraries

DartおよびFlutterにおいて、低レベルなグラフィック描画やUI構築に関連するライブラリです。これらのライブラリは、主にFlutterフレームワークやWeb上でのUIレンダリングに使用されます。
dart:名前空間に存在し、「dart: <library>」を使ってインポートします:

uiFlutterエンジンのコア部分を構成する低レベルのグラフィックライブラリです。主に、カスタムペイント、描画、テキストレンダリング、アニメーション、そしてUIのレイヤー管理などを行います。
ui_webdart:ui のWeb実装バージョンです。このライブラリは、Flutter for Webのレンダリングエンジンとして機能し、ブラウザ環境でのUI構築を可能にします。dart:ui_web は、dart:ui のAPIを模倣しており、Web上での描画をサポートしますが、背後ではHTML5 CanvasやWebGLを使用してブラウザ上にUIをレンダリングします。
dart:ui と dart:ui_web は、Flutterアプリケーションの描画やUI構築において重要な役割を果たします。dart:ui はモバイルやデスクトップアプリケーション向けに最適化されており、dart:ui_web はブラウザ環境向けに適応されています。これにより、開発者は、同じDartコードでクロスプラットフォームなアプリケーションを構築する際に、統一された描画APIを利用できるようになっています。


3.Core Libraries

Dartプログラムの基本機能を提供します。これらのライブラリは、非同期プログラミング、コレクション操作、データ変換、数値演算、開発者ツールとの連携など、広範な機能をサポートします。
dart:名前空間に存在し、「dart: <library>」を使ってインポートします:

async非同期プログラミングをサポートするライブラリで、Future や Stream などのクラスが含まれます。非同期操作を実行し、その結果を待機したり、データのストリームを処理するために使用されます。
collectionDartのコレクション操作を補完するクラスやユーティリティを提供します。リスト、マップ、セットなどの標準コレクションを拡張する機能が含まれます。
convert異なるデータ表現の間でエンコードやデコードを行うためのライブラリで、JSONやUTF-8の変換が含まれます。データのシリアライズや逆シリアライズ、文字列のエンコーディングなどに使用されます。
developerデバッグや開発ツールと連携するためのライブラリです。デバッガーへのログ出力や、プログラムの実行を手動で停止させるブレークポイントを設定できます。
math数学的な定数と関数を提供します。三角関数、対数関数、平方根などの標準的な数学関数に加え、乱数生成機能も含まれます。
typed_data固定サイズのデータ(例: 8ビットの符号なし整数)やSIMD(Single Instruction, Multiple Data)型を効率的に扱うためのリストを提供します。特にパフォーマンスが求められるデータ処理で使用されます。

例外として、dart:coreライブラリはDartのすべてのプログラムにデフォルトで含まれているため、明示的にインポートする必要はありません。これには基本的なビルトイン型や関数が含まれています。

coreDartプログラムのすべての基盤となる基本的な型や機能を提供します。このライブラリは自動的にインポートされ、Dartプログラムの中で常に使用可能です。リストやマップ、文字列操作、エラーハンドリングなど、ほとんどのDartコードで使用される基本的なクラスが含まれています。

4.VM Libraries

Dartのバーチャルマシン(VM)で実行されるアプリケーションに特有の機能を提供するライブラリ群です。
dart:名前空間に存在し、「dart:<library>」を使ってインポートします:

ffidart:ffiは、DartプログラムからC言語の関数を呼び出すためのインタフェースを提供します。これにより、Dartアプリケーションはシステムレベルやサードパーティ製の低レベルのライブラリにアクセスできるようになります。パフォーマンスが重要な操作や既存のC言語のコードベースとの連携が必要な場合に使用されます。
iodart:ioライブラリは、ファイル、ソケット、HTTPクライアント・サーバーなど、入出力関連の操作を提供します。このライブラリを使用することで、ファイルシステムへのアクセスやネットワーク通信などが可能になります。主にサーバーサイドやコマンドラインツールで使用されます。
isolatedart:isolateライブラリは、軽量な並列実行を可能にするためのメカニズムを提供します。Isolateは、共有されないメモリ空間を持つ複数の実行スレッドとして機能し、アプリケーションが複数のプロセッサを活用して処理を行うのを助けます。これにより、UIのブロッキングを避けながらバックグラウンドでの重い処理が可能になります。
これらのパッケージが「VMパッケージ」と呼ばれる理由は、これらの機能が特にDartのバーチャルマシン(VM)上で動作するアプリケーションに特化しているためです。Dart VMは、コードを直接実行することで高速なスタートアップタイムとリアルタイムのパフォーマンスを提供します。dart:ffi、dart:io、dart:isolate などのライブラリは、この環境下での効率的なシステムレベルの操作をサポートするために設計されており、特にサーバーサイドやデスクトップアプリケーションでの使用を想定しています。これらは、Dart VMの実行コンテキスト内で最大限のパフォーマンスを引き出すための重要なツールです。


5.WEB Libraries

主にDartプログラムがウェブブラウザ上で実行される際に使用されるライブラリ群です。
「package:<library>」(web)、「dart:<library>」(js_interop、js_interop_unsafe)を使ってインポートします:

webJS interopを中心に構築された軽量なブラウザAPIバインディング。
js_interopDartプログラムからJavaScriptコードを利用するためのインターフェースを提供します。Dartから直接JavaScriptの関数を呼び出したり、JavaScriptのオブジェクトと連携することが可能です。これにより、Dartでウェブアプリケーションを開発する際に、既存のJavaScriptライブラリやブラウザ固有のAPIにアクセスすることができます。
js_interop_unsafedart:js_interopの一部で、より直接的かつ制限の少ない方法でJavaScriptとの相互運用を行うためのAPIを提供します。このライブラリを使用することで、型安全性が低下する可能性がありますが、柔軟性と直接性が求められる場合に有効です。安全でないとされる操作を行う可能性があるため、この名前が付けられています。
これらのライブラリは、DartコードからJavaScriptを呼び出すためのインターフェースを提供することで、ウェブ特有の機能にアクセスすることを可能にします。


6.WEB(LEGACY) Libraries

「Web(LEGACY)」という分類は、Dartのウェブプログラミングにおいて以前より使用されていたが、新しい方法やパッケージに置き換えられつつあるライブラリ群です。
「package:<library>」(package: js)、「dart:<library>」(dart: js、 html、js_util)を使ってインポートします:

package: jspackage:js は、DartプログラムからJavaScriptコードを操作するためのパッケージです。このパッケージを使用することで、JavaScriptのオブジェクトや関数をDartから呼び出すことができます。アノテーションを用いてJavaScriptのオブジェクトとの相互運用を明示的に行うことが特徴です。dart:jsに比べてより高度な相互運用が可能です。
dart: htmldart:html ライブラリは、HTML文書を操作するためのAPIを提供します。これを使ってDOMの操作やイベントのハンドリング、ブラウザとの対話が行えます。ウェブページ内でのUI操作や動的な内容の生成に利用されます。このライブラリはブラウザベースのDartアプリケーションでのみ使用されます。
dart: jsdart:js は、DartからJavaScriptを呼び出すための古いインターフェースを提供します。このライブラリを通じて、JavaScriptのオブジェクトや関数と相互作用することができますが、新しいpackage:jsやdart:js_interopに比べると機能が限られています。
dart: js_utildart:js_util ライブラリは、dart:jsの補助的な機能を提供し、JavaScriptとの相互運用時に便利なユーティリティ関数を含んでいます。より細かいJavaScriptの操作やデータの変換が可能ですが、こちらも新しいAPIによって代替されつつあります。
Dartがフルスタック開発言語として進化する過程で、特にウェブ開発におけるAPIやライブラリは新しいアプローチへと移行しています。このため、以前の方法は「LEGACY」として特別なカテゴリに分類されることがあります。


7.PLATFORM_INTEGRATION Libraries

Flutterは、クロスプラットフォーム開発を強力にサポートしており、その一環として、異なるオペレーティングシステムに対する「プラットフォーム統合API」を提供しています。これらにより、Flutterアプリケーションが各プラットフォームの固有の機能やサービスを利用できるようになります。

androidAndroid固有の機能(例えば、バッテリー状態の取得、ローカル通知、バックグラウンドタスクの実行など)にアクセスできます。Android SDKの機能とFlutterアプリケーションを統合するためのインタフェースが提供されています。
iosiOSデバイスのネイティブ機能(例えば、カメラ、GPS、加速度計など)へのアクセスを可能にします。これにより、iOSのUIKitとの連携や、iOS特有のサービスとの統合が可能になります。
linuxLinuxデスクトップ環境でのFlutterアプリケーション開発をサポートします。システムトレイの統合、ウィンドウ管理、デバイスハードウェアの情報取得など、Linux特有のAPIへのアクセスが含まれます。
macosmacOS上でのFlutterアプリケーションの開発をサポートし、macOSのネイティブAPI(例えば、メニューバーアプリケーション、通知、Touch Barのサポートなど)への統合を可能にします。
windowsWindowsでのFlutterアプリケーション開発を強化し、Windows API(ファイルシステムアクセス、ウィンドウ管理、システム通知など)との統合を可能にします。
これらのプラットフォーム統合APIは、Flutter開発者が各OSのネイティブ機能をフルに活用しながら、一貫したユーザーエクスペリエンスを提供するアプリケーションを作成できるようにするための重要なツールです。プラットフォーム固有のAPIの利用を通じて、アプリケーションの機能性と対応範囲を広げることができます。


8.FLUTTER_TEST Libraries

Flutterアプリケーションのテストを支援するためのパッケージです。

flutter_testこのライブラリはpackage:testの上に構築されており、Flutter固有の機能とウィジェットをテストするための豊富なツールとAPIを提供します。
Flutter開発の品質を保証し、デバッグを容易にするために不可欠なライブラリです。
効果的なテスト戦略を実装することで、アプリケーションの堅牢性とメンテナンス性を向上させることが可能になります。


9.FLUTTER_DRIVER Libraries

Flutterアプリケーションの統合テストを自動化するためのツールです。このライブラリは、アプリケーションが実際のデバイスやエミュレータ上で実行されるときの挙動をテストすることを可能にします。主にパフォーマンステストやエンドツーエンドのユーザーストーリーテストに使用されます。

flutter_driverより複雑なユーザーインタラクションやアプリケーションの挙動をテストするための強力なツールであり、Flutterアプリケーションの品質を維持し向上させるために不可欠です。
driver_extension flutter_driverテストフレームワークの一部であり、テストドライバがアプリケーションと通信するための拡張機能です。この拡張機能を利用することで、アプリケーションはテストコマンドを受け取り、指定された操作を実行したり、必要なデータをテストドライバに送り返すことができます。

10.FLUTTER_LOCALIZATIONS Libraries

Flutterアプリケーションに多言語サポートを提供するためのパッケージです。このライブラリは、Flutterフレームワーク自体のローカリゼーション(地域化)に必要なリソースとクラスを含んでおり、アプリケーションを国際化する際に重要な役割を果たします。

flutter_localizationsFlutter開発者が簡単に多言語サポートをアプリケーションに組み込むための強力なツールであり、国際的なユーザーベースに対応するためには不可欠です。

11.FLUTTER_WEB_PLUGINS Libraries

FlutterのWebアプリケーションに特化したプラグイン管理とプラットフォームチャネルの実装を提供します。このライブラリにより、Flutterで開発されたウェブアプリケーションがブラウザ固有の機能や既存のJavaScriptライブラリとの統合が可能になります。

flutter_web_pluginsFlutterのWebアプリケーションに特化したプラグイン管理とプラットフォームチャネルの実装を提供します。このライブラリにより、Flutterで開発されたウェブアプリケーションがブラウザ固有の機能や既存のJavaScriptライブラリとの統合が可能になります。
url_strategyflutter_web_pluginsライブラリ内の一部で、FlutterウェブアプリケーションのURL戦略を定義および管理するためのAPIです。このAPIを使用すると、URLの表示と操作が容易になり、SEO(検索エンジン最適化)やユーザーのブックマーク動作に合わせたカスタマイズが可能です。

12.LEAK_TRACKER_FLUTTER_TESTING Libraries

Flutterアプリケーションのテストプロセス中にメモリリークを検出するために特化したツールです。このライブラリは、開発中のアプリケーションがリソースを適切に管理しているかどうかを確認することを目的としています。具体的には、ウィジェットやその他のオブジェクトが適切に破棄されているかどうかを追跡し、リークがある場合にそれを報告します。

leak_tracker_flutter_testing開発者がメモリリークを効果的に検出し、対応することを容易にするための重要なツールです。これにより、アプリケーションの全体的な品質とパフォーマンスが保証され、長期的なメンテナンスコストが削減されます。

13.ASYNC Libraries

Dartの標準非同期ライブラリである dart:async の機能を拡張するユーティリティを提供します。このライブラリには、非同期プログラミングをより効率的かつ柔軟に行うための追加機能が含まれています。

asyncDartの非同期プログラミングの機能を大幅に拡張し、より複雑なシナリオでの効率的なコードの書き方をサポートします。これにより、開発者は非同期コードの制御がより簡単になり、アプリケーションのパフォーマンスと信頼性が向上します。

14.BOOLEAN_SELECTOR Libraries

Dartでブール式を解析し、評価するための便利なツールを提供します。このライブラリを使用することで、特定の条件に基づいてコードの実行を制御する複雑な条件式を簡単に扱うことができます。

boolean_selector条件式の解析と評価を簡単にし、コードの汎用性と再利用性を高めることができます。特にテストや条件付きロジックが多用される場合に非常に役立ちます。

15.CHARACTERS Libraries

Dartでの文字列操作をUnicodeのグラフェムクラスタ(視覚的に単一の文字単位として認識される一連のコードポイント)を基準に行うためのツールを提供します。このライブラリを使用することで、多言語対応のアプリケーションにおいて、正確で予期せぬ挙動を防ぐ文字列操作を実現できます。

charactersグローバルなユーザーベースを持つアプリケーションの開発において、文字列操作の精度と信頼性を高めるための重要なツールです。これにより、文化的なニュアンスや言語的な特性を正しく扱うことができるようになります。

16.CLOCK Libraries

Dartプログラムで時間に基づく操作をより柔軟に扱うためのツールを提供します。このライブラリを使用することで、現実の時計やシステム時計に依存せずに時間を操作・テストすることが可能になります。特にテスト環境での時間の挙動を制御することが重要な場合に役立ちます。

clock特に時間に敏感なアプリケーションやテストを行う際に、時間操作をより制御しやすくするための強力なツールです。これにより、開発者は時間に依存する処理をより安全かつ一貫して扱うことができ、特定の時刻や時間の流れを自由に操作できるようになります。

17.COLLECTION Libraries

Dartの標準コレクションライブラリに追加して、より洗練されたデータ構造とユーティリティを提供するDartのライブラリです。このパッケージは、リスト、マップ、セットの操作を拡張し、特に複雑なコレクション操作を簡単に処理できるように設計されています。

collectionリスト操作、マップとセットの強化、マルチマップとマルチセット、ビジターパターンのサポート、追加のユーティリティ関数

以下は非推奨となっています。
代わりに collection.dart をインポートするようにとの注意が示されています。

algorithmsアルゴリズム関連の機能
equality等価性をチェックするためのツール
iterable_zip複数のイテラブルを同時にループするための機能
priority_queue優先度キューに関連する機能
wrappersオブジェクトに追加の機能

18.CRYPTO Libraries

Dart用の暗号化ユーティリティを提供するライブラリです。これには、ハッシュ関数、ハッシュメッセージ認証コード(HMAC)、および他の暗号化機構が含まれており、データのセキュリティを強化するために使用されます。

cryptoハッシュ関数、HMAC、デジタル署名、ランダムなバイトの生成

19.FAKE_ASYNC Libraries

Dartで時間に依存するコード、特に非同期操作をテストする際に、時間の流れを模擬(フェイク)するためのツールを提供します。このライブラリを使用することで、テスト実行中に時間を制御し、非同期操作が予想通りに動作するかを確認できます。

fake_async時間を操作できる強力なツールとして、非同期コードのテストを簡単かつ効率的に行うために非常に有用です。テスト中に時間を完全に制御することで、非同期処理の動作を確実に予測し、バグの特定と修正を容易にします。

20.FILE Libraries

Dartでファイルシステムの抽象化と操作を行うためのフレームワークです。このライブラリは、さまざまな種類のファイルシステムに対応するためのインターフェースと実装を提供し、プラットフォームに依存しない方法でファイル操作を行うことが可能になります。

chroot他の FileSystem を指定したパスを通じてビューとして提供するファイルシステムです。これにより、アプリケーションはそのパス以下のファイルシステムに対して隔離されたビューを持つことができ、セキュリティやテストの文脈で有用です。
fileFileSystem インターフェースの定義と、ファイルシステムを使用する際に必要とされるすべての型の抽象定義を含んでいます。これは、ファイル操作の基本的なフレームワークを提供し、具体的なファイルシステム実装の基盤となります。
localローカルファイルシステムの実装です。dart:io を使用しており、ブラウザでは使用できません。主にサーバーやコマンドラインベースのアプリケーションで利用され、物理的なディスク上のファイルにアクセスします。
memory完全にメモリ内で存在するファイルシステムの実装であり、内部表現はファイルシステム階層標準に基づいて緩く設計されています。テストや一時的なデータの保存に適しており、実際のファイル操作をエミュレートしつつ、ディスクへの書き込みは行いません。
ファイルシステム操作を抽象化し、プラットフォームに依存しない安全で再利用可能な方法でファイル操作を行うための強力なツールです。


21.INTEGRATION_TEST Libraries

Flutterアプリケーションの統合テストをサポートするためのフレームワークです。このライブラリは、Flutterのテストエコシステムの一部として、実際のデバイスやエミュレータ上でアプリケーションが期待通りに動作するかを検証するために使用されます。

common統合テストのための共通の機能やユーティリティを提供します。これには、テストの設定、結果の収集、およびテストデータの管理が含まれます。また、テストケース間で共有される機能やデータの定義が含まれることもあります。
integration_test統合テストの主要なエンジンを提供します。このモジュールを使用して、ウィジェットテストと同様のAPIを使いながら、フルアプリケーションの実行環境でテストを行います。テストはアプリケーションのUIとそのインタラクションをシミュレートし、エンドツーエンドのワークフローを検証することができます。
integration_test_driver統合テストのためのドライバーを提供します。このドライバーは、テスト実行のコーディネーションと、テスト結果の収集・報告を行います。また、Flutter Driver APIを使用してデバイスやエミュレータとの通信を管理し、テストコマンドの送受信を行います。
integration_test_driver_extendedintegration_test_driver の拡張版で、追加の機能やカスタマイズオプションを提供します。より複雑なテストシナリオや特定のカスタム要件に対応するための追加機能が含まれています。このモジュールは、大規模なアプリケーションや特殊なテストニーズに対応するために使われることが多いです。
Flutterアプリケーションの品質保証プロセスにおいて重要な役割を果たし、実際のデバイスやエミュレータ上でのアプリケーションの動作を確認するための信頼性の高い手段を提供します。


22.INTL Libraries

国際化と地域化(i18n and l10n)をサポートするためのDartのライブラリで、メッセージのフォーマット、日付や数値のフォーマットと解析、および双方向テキストの扱いなどを含んでいます。このライブラリは、アプリケーションを多言語対応させる際に重要な役割を果たします。

date_symbol_data_customカスタム方法で日付/時間のフォーマットを設定するAPIを提供します。
date_symbol_data_fileファイルシステム内のファイルからロケールデータを読み込むために必要です。このファイルと date_format.dart をインポートする必要があります。
date_symbol_data_http_requestWebサーバーへのHTTPリクエストを通じてロケールデータを読み込むために使用します。このファイルと date_format.dart をインポートする必要があります。
date_symbol_data_localすべてのロケールの日付/時間フォーマット記号です。
date_symbols大部分のロケールに対する日付/時間フォーマット記号を提供します。
date_time_patterns大部分のロケールに対する日付/時間フォーマットパターンです。
find_localeロケールを見つけるためのユーティリティ関数です。
intl国際化と地域化の主要なライブラリで、メッセージのフォーマット、日付や数値のフォーマットと解析、双方向テキストのサポートを含みます。
intl_defaultデフォルトの国際化設定を提供します。
intl_standaloneスタンドアロンで実行される際にのみ利用可能な国際化機能を提供します。このモジュールまたは intl_browser.dart のどちらか一方のみをインポートする必要があります。現時点で提供されている機能は、オペレーティングシステムのロケールを見つけることです。
localeLocale クラスへのアクセスを提供します。
message_formatユーザーに表示するための文字列を準備し、オプションの引数(変数/プレースホルダー)を含めることができます。言語によって文法が異なるため、引数が任意の順序で発生する必要があります。複数形や選択オプションを表す構文をサポートします。
message_lookup_by_libraryロケールサポート付きのメッセージ/複数形フォーマットライブラリです。ローカライズされたメッセージのバージョンを見つけるメカニズムに基づいて異なる実装があります。このバージョンでは、initializeMessages 呼び出しで設定されたプレフィックスを持つライブラリ(例: ‘messages_en_US’)にメッセージが含まれていることが期待されます。
number_symbolsすべてのロケールの数値フォーマット記号です。
number_symbols_dataすべてのロケールの日付/時間フォーマット記号です。
アプリケーションが世界中のユーザーに対応するために必要な多言語対応の実装を大幅に簡単にします。このライブラリを使用することで、異なる言語や文化のニュアンスに適応したユーザーエクスペリエンスを提供することが可能になります。


23.LEAK_TRACKER Libraries

アプリケーションでのメモリリークを検出し、分析するためのツールを提供します。このライブラリは特に開発ツールと連携して、リソースの不適切な管理やメモリの使用状況に関する洞察を得ることを目的としています。

devtools_integration開発者ツール(DevTools)が収集したリークデータを分析するために使用される部分です。このライブラリはDevToolsと連携して動作し、メモリリークの原因を特定するための詳細情報を提供します。
leak_trackerアプリケーション内の潜在的なメモリリークを追跡し、識別する主要な機能を持つモジュールです。このツールは、メモリの割り当てと解放を監視し、期待される挙動から逸脱するパターンを検出することでリークを特定します。

24.LEAK_TRACKER_TESTING Libraries

アプリケーションのテストフェーズにおいてメモリリークを特定し、追跡するために設計されたツールです。このライブラリはテスト環境でのリーク検出を自動化し、開発者がリークを効果的に識別し、修正することを支援します。

leak_tracker_testing自動リーク検出、リークレポート、統合テストサポート
特にリソース管理が重要な大規模なアプリケーションや、高い可用性が求められるシステムの開発において、非常に有効なツールです。メモリリークを事前に発見し対処することで、パフォーマンスの低下やシステムの不安定化を防ぎます。


25.MATCHER Libraries

Dartのテストフレームワークの中で使われる、テスト期待値(expectations)を指定するためのサポートを提供します。このライブラリを使用することで、単体テストにおけるアサーションを簡潔かつ表現豊かに記述できます。

expectテストケースにおける実際の値と期待される値を比較します。期待通りの結果でない場合、テストは失敗として報告されます。この関数は、値の一致、型チェック、例外の発生など、さまざまな条件をテストするために使われます。
matcherさまざまな種類のマッチャーオブジェクトを提供し、特定のテスト条件を表現します。例えば、数値が特定の範囲に含まれるか、コレクションが特定の要素を含むか、あるオブジェクトが特定の型であるかなど、詳細な検証が可能です。
Dartのテストエコシステムの重要な部分であり、テストケースをより読みやすく、書きやすく、そして強力にします。開発者はこのライブラリを使って、アプリケーションのロジックが正確に機能していることを保証し、さまざまな条件とシナリオでの振る舞いを検証することができます。


26.MATERIAL_COLOR_UTILITIES Libraries

色に関する高度なユーティリティとアルゴリズムを提供し、マテリアルデザインのガイドラインに沿った色の選定や調整を行うためのものです。このライブラリは、カラーパレットの生成、色の調和、コントラストの最適化など、広範な機能を含んでいます。

blend/blend色をブレンドし、新たな色合いを生成します。
contrast/contrast二つの色のコントラスト比を計算します。
dislike/dislike_analyzer特定の色に対する不快感や不適合を分析します。
dynamiccolor/dynamic_color動的に色を調整し、アプリケーションのテーマに合わせます。
dynamiccolor/dynamic_scheme動的なカラースキームを生成します。
dynamiccolor/material_dynamic_colorsマテリアルデザインのダイナミックカラーをサポートします。
dynamiccolor/src/contrast_curve
dynamiccolor/src/tone_delta_pair
dynamiccolor/variantカラーバリアントを生成します。
hct/cam16CAM16色空間を用いて色を解析します。
hct/hct色の色相、クロマ、トーンを計算します。
hct/src/hct_solver
hct/viewing_conditions
material_color_utilities
palettes/core_palette基本的なカラーパレットを提供します。
palettes/tonal_palette色相に基づいたトーナルパレットを生成します。
quantize/quantizer色を量子化してカラーパレットを生成します。
quantize/quantizer_celebi
quantize/quantizer_map
quantize/quantizer_wsmeans
quantize/quantizer_wu
quantize/src/point_provider
quantize/src/point_provider_lab
scheme/scheme様々なタイプのカラースキームを定義します。
scheme/scheme_content
scheme/scheme_expressive
scheme/scheme_fidelity
scheme/scheme_fruit_salad
scheme/scheme_monochrome
scheme/scheme_neutral
scheme/scheme_rainbow
scheme/scheme_tonal_spot
scheme/scheme_vibrant
score/score
temperature/temperature_cache
utils/color_utils色に関する一般的なユーティリティ関数を提供します。
utils/math_utils数学的計算のためのユーティリティ関数を提供します。
utils/string_utils
デザイナーや開発者が直感的で美しいUIを作成するための強力なツールです。カラーの科学的な理解に基づいて設計されており、ユーザーインターフェースの視覚的な魅力とアクセシビリティを同時に向上させることができます。


27.META Libraries

Dartプログラムのメタデータを定義し、特定のプログラム意図を表現するためのアノテーションを提供します。このライブラリは、静的解析だけでは推測できないプログラマの意図を明確化することで、より明確で安全なコードの記述を支援します。

dart2jsdart2js 関連のアノテーションは、dart compile js コマンドによって使用される Dart to JavaScript コンパイラにヒントを提供します。これにより、JavaScriptへのコンパイルプロセスが最適化され、特定の動作が強化されます。
metameta モジュールは、開発者が静的解析だけでは判断できないコードの意図を表現するために使用するアノテーションを含んでいます。例えば、特定のメソッドがオーバーライドされるべきでない、あるいは特定のクラスが直接インスタンス化されるべきでないことを示すために使用されます。
meta_metameta_meta モジュールは、他のアノテーションの使用意図を説明するメタアノテーションを提供します。これにより、アノテーション自体の設計と文書化が助けられ、アノテーションの正しい使用方法が明確になります。
Dartコードの品質を向上させるための重要なツールです。特に、大規模なプロジェクトや公開APIを持つアプリケーションの開発において、コードの意図を正確に伝え、誤用を防ぐことが可能になります。


28.PATH Libraries

Dartでファイルパスを操作するための包括的なクロスプラットフォームライブラリです。このライブラリは、さまざまなオペレーティングシステム上で一貫した方法でパスを処理するためのAPIを提供します。

pathパスの結合、パスの正規化、パスの分割、絶対パスの取得、パスの拡張子の操作
Dart開発者がファイルシステムを扱う上で直面する多くの課題を解決するための強力なツールです。特にファイルベースの操作を頻繁に行うアプリケーションや、複数のプラットフォームをサポートする必要がある場合に非常に有効です。


29.PLATFORM Libraries

Dartで実行されているプラットフォームに関する情報を提供するためのライブラリです。このライブラリを利用することで、アプリケーションは現在実行中のオペレーティングシステムやその他の環境情報に基づいて条件付きの動作を行うことができます。

platformOSの識別、実行環境の詳細、アーキテクチャ情報、ロケール情報
特にクロスプラットフォームアプリケーションの開発において重要な役割を果たします。異なるプラットフォーム間でアプリケーションが正しく機能するように、必要な環境ごとの調整を簡単に行うことができます。また、開発者はこのライブラリを使用して、実行環境に応じて最も効果的なリソースやアルゴリズムを選択することができます。


30.PROCESS Libraries

Dartで外部プロセスを起動し、管理するための機能を提供します。このライブラリを使用することで、Dartアプリケーションからシェルコマンドを実行したり、他のプログラムを起動してその出力を管理することができます。

processプロセスの起動、コマンド実行、プロセスの管理、非同期処理
システムレベルのタスクを実行する能力をDartアプリケーションに提供し、外部のプログラムやツールとの連携を容易にします。開発者はこのライブラリを使用して、プラットフォームに依存しない方法でプロセスを管理し、アプリケーションの機能を拡張することができます。


31.SOURCE_SPAN Libraries

Dartでソースコードの特定の部分を表すための機能を提供します。このライブラリを利用することで、エラー報告、デバッグ、コード解析ツールなどで、ソースコードの正確な位置を識別し、ユーザーに視覚的に理解しやすい情報を提供できます。

source_span位置情報の表現、エラーと警告の強化、リッチなテキスト報告
ソースコード内の特定の位置に関連付けられた情報を扱うすべてのツールやアプリケーションにとって非常に有用です。エラー診断からドキュメント生成まで、多岐にわたる開発タスクでの正確性とユーザーエクスペリエンスの向上に寄与します。


32.STACK_TRACE Libraries

Dartでスタックトレースをより詳細に操作し、整形するための機能を提供します。このライブラリを使用することで、エラー発生時のスタックトレースの解析や表示をカスタマイズでき、デバッグプロセスを効率化することができます。

stack_traceスタックトレースのキャプチャ、スタックトレースの解析、スタックトレースのフィルタリング
特にエラー発生時のトラブルシューティングを助ける強力なツールであり、開発者がプログラムのバグを効率的に見つけ出し、修正するプロセスを支援します。このライブラリの機能により、スタックトレースの情報がよりアクセスしやすく、解析しやすくなります。


33.STREAM_CHANNEL Libraries

Dartでの双方向の非同期データ通信を抽象化するためのツールを提供します。このライブラリは、ストリームとシンクを組み合わせたチャネルを通じて、データの送受信を簡単に行うことができます。

isolate_channelDartのアイソレート間でメッセージを送受信するためのストリームチャネルを提供します。アイソレートはDartの軽量スレッドであり、このチャネルを使用することで、異なるアイソレート間でのデータの非同期交換が容易になります。
stream_channelストリームとシンクを組み合わせて双方向の通信チャネルを形成するためのインターフェースと実装を提供します。これにより、Webソケットや他の双方向通信プロトコルを抽象化し、異なる環境間でのデータ通信を統一的に扱うことができます。
Dartでのアプリケーション開発において非常に有用なツールであり、データの双方向通信を簡単かつ効果的に実装するための強力なサポートを提供します。このライブラリの抽象化機能により、開発者は異なる通信メカニズムやプラットフォームの違いを意識することなく、データ通信を実装できます。


34.STRING_SCANNER Libraries

Dartで文字列をパースするためのツールを提供します。このライブラリを使用することで、文字列を一連のパターンや規則に基づいて効率的に解析できます。これは、複雑なテキストデータから特定の情報を抽出する際に特に有用です。

string_scannerパターンマッチング、エラー報告、位置の追跡、抽出と変換
文字列データを柔軟かつ強力に解析するための重要なツールです。このライブラリを活用することで、テキストベースのデータを効率的に操作し、アプリケーションの入力解析やデータ処理の自動化を実現できます。データ駆動型のアプリケーション開発において、その解析能力は開発者にとって非常に価値のあるものとなります。


35.SYNC_HTTP Libraries

Dartで同期的なHTTPリクエストを行うための機能を提供します。このライブラリは、通常の非同期HTTPリクエストとは異なり、リクエストが完了するまでプログラムの実行をブロックします。これにより、特定のシナリオでシンプルなコーディングが可能となりますが、同時にアプリケーションのレスポンス性が低下する可能性もあるため、使用には注意が必要です。

sync_http同期リクエスト、シンプルなコードフロー、エラーハンドリング
同期HTTPリクエストは、特定のシナリオを除いて推奨されない場合が多いです。Dartのようなイベント駆動型の環境では、同期的な処理がイベントループをブロックし、アプリケーションのレスポンス性が著しく低下する可能性があります。特に、ユーザーインターフェースを持つアプリケーションや、高いレスポンス性が求められるサービスでの使用は避けるべきです。


36.TERM_GLYPH Libraries

Dartでターミナルアプリケーションを開発する際に、UnicodeとASCII文字を使い分けるための機能を提供します。このライブラリは、ターミナルやコンソールがUnicodeをサポートしていない場合にフォールバックとしてASCII文字を使用することで、クロスプラットフォームの視覚的表現の一貫性を保ちます。

term_glyphUnicodeとASCIIの間での切り替え、視覚的一貫性の維持、簡単な統合
特にターミナルやコンソールアプリケーションの開発者にとって有用なツールであり、アプリケーションのユーザーインターフェースがさまざまな環境下でも一貫性を持って表示されるようにするための簡単な解決策を提供します。


37.TEST_API Libraries

Dartでテストを構築し、実行するためのフレームワークを提供します。各コンポーネントは、テストプロセスの異なる部分をサポートするために設計されています。

backendテストバックエンドとして機能し、テスト実行の管理やテスト結果の収集を行うコンポーネントです。テストケースのロード、実行、およびレポーティングのプロセスを担います。
hooksテストライフサイクルの特定の時点でカスタムロジックを実行するためのhooksを提供します。例えば、テスト前後に特定のセットアップやクリーンアップ処理を行う場合に使用します。
hooks_testinghooks自体の挙動をテストするためのツールやフレームワークを提供する可能性があります。これにより、開発者はフックが正しく機能することを確認できます。
scaffoldingテスト環境を構築するための支援ツールを提供します。これには、テストプロジェクトのテンプレート生成や、テストケースの初期構造のセットアップなどが含まれる可能性があります。

以下は非推奨です。

fakeテストで使用するためのモックやスタブのような偽の実装を提供します。
test_apiテストAPI自体に関するコンポーネント。
これらのコンポーネントを使用する場合は、代替手段や更新された方法についてドキュメントを参照することが重要です。


38.TYPED_DATA Libraries

Dartで効率的なデータ操作を支援するために設計されたツールとユーティリティを提供します。これには、固定サイズおよび可変サイズの型付きデータ構造が含まれます。特に、数値データを扱う際のパフォーマンスとメモリ効率を向上させることを目的としています。

typed_buffers可変サイズの型付きデータリストを提供します。これにより、開発者は静的型付けの利点を保持しつつ、データのサイズが動的に変更される場合に対応できます。例えば、バイト、整数、浮動小数点数など、異なる型のデータに対応するためのバッファが用意されています。
typed_datadart:typed_data ライブラリに関連するユーティリティや機能を提供します。これには、バイトバッファ、型付きリスト、型付きビューなど、固定サイズの型付きデータ構造の操作を支援するツールが含まれます。
データの整合性と効率を高めるために重要な役割を果たします。特にパフォーマンスが重要なアプリケーションや、リソース制約のある環境での開発において、その価値が顕著に表れます。


39.VECTOR_MATH Libraries

ゲーム、シミュレーション、レンダリングなどの用途で使用されるベクトル演算を提供するDartのライブラリです。このライブラリは、効率的な数学計算をサポートし、特に3Dグラフィックスや物理エンジンでの使用に最適化されています。

vector_mathゲーム、シミュレーション、レンダリングのためのベクトル演算を提供します。ベクトルの加算、減算、スカラー乗算、正規化、内積、外積などが含まれます。
vector_math_64vector_math と同様の機能を提供しますが、64ビット浮動小数点精度を使用します。これにより、より高精度の計算が求められるアプリケーションに適しています。
vector_math_geometryジオメトリ生成器(CubeGenerator、SphereGenerator、CylinderGeneratorなど)とフィルタ(BarycentricFilter、ColorFilter、InvertFilterなど)を含むライブラリです。これにより、3Dオブジェクトの生成や属性の変更が容易になります。
vector_math_listsベクトルのリストをメモリ効率的に扱うためのツールを提供します。これにより、大量のベクトルデータを処理する際のパフォーマンスが向上します。
vector_math_operationsFloat32List インスタンスに対するマトリックス演算を、Matrix44SIMDOperations は Float32x4List インスタンスに対するSIMD最適化された演算を提供します。これにより、マトリックスの変換や操作が高速に行えます。
数学的な操作と計算のための強力なツールセットを提供し、特にパフォーマンスが重要なアプリケーションにおいてその価値を発揮します。その高度な機能により、開発者は複雑な数学的問題を効率的に解決することができます。


以下は非推奨です。

hashベクトルやマトリックスオブジェクトのハッシュ関数を提供します。これにより、これらのオブジェクトを効率的にデータ構造に格納し、検索することが可能です。

40.VM_SERVICE Libraries

Dart VM (Virtual Machine) と通信するためのAPIを提供します。これにより、開発者はDartの仮想マシンの状態を検査したり、デバッグ操作を行ったりすることができます。主にIDEや開発ツールがVMのデバッグセッションを管理するために使用されます。

utilsvm_service APIを使用する際に役立つユーティリティ関数や補助的なツールを提供します。これには、データの整形やコマンドのラッピングなど、APIの操作を簡単にするための機能が含まれる可能性があります。
vm_serviceDart VMとの通信インターフェースを直接提供します。プログラムの実行を制御したり、メモリやスレッドの情報を取得したり、断点を設定するなど、デバッグに必要なさまざまな機能が含まれています。
vm_service_ioIO(入出力)機能に特化したvm_serviceの拡張です。これにより、ファイルシステムやネットワークを介したデータの読み書き、ストリームの管理など、IO操作に関連するVMの機能にアクセスできます。
Dart VMとのインタラクションを容易にし、開発者がアプリケーションのデバッグやパフォーマンス最適化を効率的に行うための強力なツールを提供します。これにより、より深いレベルでのプログラム解析が可能となり、開発プロセスの品質と効率が向上します。


41.WEBDRIVER Libraries

ブラウザ自動化のためのDartライブラリです。このライブラリを利用して、開発者はWebアプリケーションのテストや、自動化されたブラウジングタスクを実行できます。WebDriver APIに基づいており、さまざまなブラウザとのインタラクションを可能にします。

async_core非同期操作に特化したWebDriverのコア機能を提供します。非同期プログラミングモデルに従い、DartのFutureやStreamを利用してブラウザの操作を行います。
async_htmlHTML要素の非同期操作をサポートします。これには、要素の探索、属性の取得、イベントの発火などが含まれます。
async_ioIO操作(入出力)に特化した非同期サポートを提供します。ファイルやネットワークリソースへの非同期アクセスが可能です。
support/async非同期サポートモジュールで、テストやその他の自動化タスクを助ける追加機能を提供します。
support/firefox_profileFirefoxブラウザのプロファイルを管理するためのサポートモジュールです。カスタム設定や拡張機能の管理に使用します。
support/stdio_stepper標準入出力をステップバイステップで制御するためのサポートツールを提供します。
sync_core同期操作に特化したWebDriverのコア機能を提供します。直列的なコマンド実行が可能です。
sync_io同期IO操作をサポートするモジュールです。
ブラウザの自動化とWebアプリケーションテストに非常に強力なツールを提供し、多くの開発者にとって不可欠なリソースです。
core(非推奨)WebDriverの基本的な機能
io(非推奨)IO関連の機能
非推奨のコンポーネントを使用する際には、代替手段を検討することが重要です。


コメントを残す