How to generate unique id in Dart
Solution 1:
1. There is a UUID pub package:
http://pub.dartlang.org/packages/uuid
example usage:
import 'package:uuid/uuid.dart';
// Create uuid object
var uuid = Uuid();
// Generate a v1 (time-based) id
uuid.v1(); // -> '6c84fb90-12c4-11e1-840d-7b25c5ee775a'
// Generate a v4 (random) id
uuid.v4(); // -> '110ec58a-a0f2-4ac4-8393-c866d813b8d1'
// Generate a v5 (namespace-name-sha1-based) id
uuid.v5(uuid.NAMESPACE_URL, 'www.google.com'); // -> 'c74a196f-f19d-5ea9-bffd-a2742432fc9c'
2. This src has a dart GUID generator
https://github.com/MikeMitterer/AndroidIconGenerator.DART/blob/445884924/lib/src/model/communication/GUIDGen.dart
I'll not post the function src here directly as there is no apparent licence with it, but example usage is as follows:
final String uuid = GUIDGen.generate();
Solution 2:
In year 2020 you can do UniqueKey();
which is a built in class:
https://api.flutter.dev/flutter/widgets/UniqueKey-class.html
Note
A key that is only equal to itself.
This cannot be created with a const constructor because that implies that all instantiated keys would be the same instance and therefore not be unique.
Solution 3:
Besides from uuid, you can also try this to generate small unique keys:
https://pub.dev/packages/nanoid
They even have a collision calculator:
https://zelark.github.io/nano-id-cc/