Dartのランタイムに便利な関数と拡張機能を提供するライブラリです。非同期処理、コレクション操作、型判定、プラットフォーム判定などの機能を提供し、Dartコードの記述を簡潔にします。

Features

  • 便利な関数群: Future操作、型判定、プラットフォーム判定
  • Iterable拡張機能: 重複排除、Map変換
  • Map操作ユーティリティ: 再帰的なマージ機能
  • スタックトレース操作: ファイル名取得
  • コレクション構築関数: Map、List、Set構築のビルダー

Getting started

pubspec.yamlに以下を追加してください:

dependencies:
  armyknife_dartx: ^1.0.0

Usage

便利な関数群

import 'package:armyknife_dartx/armyknife_dartx.dart';

// Future.delayedの糖衣構文
await delayed(Duration(milliseconds: 100));

// 実行ループ1イテレーションをスキップ
await nop();

// 型の一致を確認
if (typeEquals<String, String>()) {
  print('同じ型です');
}

// Webプラットフォームかどうかの判定
if (kIsWebCompat) {
  print('Webプラットフォームです');
}

Iterable拡張機能

// 重複を排除
final unique = [1, 2, 2, 3, 3, 4].distinctUnique();
print(unique); // [1, 2, 3, 4]

// MapEntryのIterableをMapに変換
final entries = [
  MapEntry('a', 1),
  MapEntry('b', 2),
];
final map = entries.toMap();
print(map); // {a: 1, b: 2}

Map操作ユーティリティ

// 2つのMapを再帰的にマージ
final merged = MapX.merge(
  {'a': 1, 'b': {'c': 2}},
  {'b': {'d': 3}, 'e': 4},
);
print(merged); // {a: 1, b: {c: 2, d: 3}, e: 4}

コレクション構築関数

// Map構築
final map = buildMap<String, int>((map) {
  map['a'] = 1;
  map['b'] = 2;
});

// List構築
final list = buildList<String>((list) {
  list.add('item1');
  list.add('item2');
});

// Set構築
final set = buildSet<int>((set) {
  set.add(1);
  set.add(2);
});

Additional information

このライブラリは Flutter Army Knife プロジェクトの一部です。

Libraries

armyknife_dartx