概要
Reflectable はコード生成を通じて Dart でリフレクション機能を提供し、実行時における型、フィールド、メソッド、コンストラクタの検査および操作を可能にします。Flutter では組み込みのリフレクションが制限されているため、これに頼るのではなく、「機能」を使用して特定のクラスに対してどのリフレクション操作がサポートされるかを明確に定義しています。このアプローチにより、Android、iOS、Web、macOS、Windows、Linux などのプラットフォーム間でのパフォーマンスと互換性が保証されます。ツリー・シェーキングやパフォーマンスを損なわず、動的な振る舞いが必要なフレームワークやライブラリに最適です。
用途
- 動的シリアライズ/デシリアライズ
- 実行時型検査
- 汎用フレームワーク開発
- API用のコード生成
- プラグインおよびライブラリの拡張性
主な機能
- コード生成されたリフレクション
- 能力ベースの操作制御
- クロスプラットフォーム対応
- 最小の実行時オーバーヘッド
- build_runner との統合
- フィールド、メソッド、コンストラクタをサポートしています
適している対象
- フレームワーク開発者
- ライブラリ作成者
- 動的型処理を必要とするツール
- コード生成を使用するアプリ
- パフォーマンスに敏感なアプリケーション
注意事項
- build_runner およびコード生成が必要です
- 明示的に宣言された機能に限定される
- 実行時のみのリフレクションには適していません
- reflectable アノテーションの慎重な設定が必要です
- ビルド時間をわずかに増加させる可能性があります