はじめに
Flutterでアプリ開発をしていて、
例えば、ユーザー情報やユーザが作成したデータなど、
データを管理する必要が多々あると思います。
保存したデータを削除、更新、引用など利用する場面で、
重複しない一意のIDを生成する必要がありました。
上記を解決する一つの方法を記事にしたいと思います。
今回は、uuidというパッケージを使いますので、
uuidの使い方を知りたい人にも役立つはずです。
目次
①手っ取り早く使い人に向けて
下記が使用例ですので、手っ取り早く使いたい人はどうぞ。
import 'package:uuid/uuid.dart';
// 管理するデータのクラス
class UserData {
String id = '';
String name = '';
UserData(this.id, this.name);
}
// データの管理クラス
class UserDataRepsitory {
List<UserData> userDataList = [];
void add(String name) {
var uuid = Uuid();
// IDを生成する
var newId = uuid.v4();
// IDに被りがなくなるまで、ループ
while (userDataList.any((userData) => userData.id == newId)) {
// 被りがあるので、IDを再生成する
newId = uuid.v4();
}
// ユーザデータ新規作成
var newData = UserData(newId, name);
// ユーザデータを追加
userDataList.add(newData);
}
}
②uuidとは
パッケージで、下記のような文字列を生成してくれます。
「110ec58a-a0f2-4ac4-8393-c866d813b8d1」
③uuidを使う準備
pubspec.yamlに「uuid: ^2.2.2」を追加して、pub getしてください。
④uuidの使い方
パッケージをimport。
import 'package:uuid/uuid.dart';
IDの生成方法は下記です。
uuidには、v4というメソッド以外にも、時間ベースでIDを生成するv1などがありますが、
とりあえずv4を使用しておけばいいと思います。
var uuid = Uuid();
// IDを生成する
var newId = uuid.v4();
⑤uuidを使って一意のIDを生成する方法
// IDのリスト
List<String> idList = [];
// IDを生成
var uuid = Uuid();
var newId = uuid.v4();
// IDに被りがなくなるまで、ループ
while (idList.any((id) => id == newId)) {
// 被りがあるので、IDを再生成する
newId = uuid.v4();
}
// IDを追加
idList.add(newId);