LoginSignup
9
0

More than 1 year has passed since last update.

【Flutter】複数あるデータで一意のIDを生成する方法(UUIDの使い方)

Last updated at Posted at 2022-03-13

はじめに

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してください。
qiita5.png

④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);
9
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
0