Search packages, repositories and app categories

Package detailsv0.3.1

flutter_guid

Emulates C# Guid. Generate new UUIDs, add variables of type Guid to classes.

AndroidiOSWebmacOSWindowsLinux
30-day downloads
3.2K
Likes
20
Pub points
135

Install package

flutter pub add flutter_guid

Package Overview

Package selection guidance compiled from public package information, community data, and project usage.

flutter_guid is a Dart package that emulates C# Guid functionality, enabling developers to generate and manage UUIDs (Universally Unique Identifiers) within Flutter applications. It provides a Guid class for creating new unique identifiers and allows adding Guid-typed variables to custom classes. The package supports all major platforms including Android, iOS, Web, macOS, Windows, and Linux, making it ideal for cross-platform apps requiring consistent identifier generation. It's particularly useful in scenarios involving data synchronization, session tracking, or database key management where uniqueness and reliability are critical.

Use cases

  • Generating unique IDs for database records
  • Tracking user sessions across devices
  • Synchronizing data between clients
  • Creating secure tokens
  • Managing entity identifiers in state management

Key features

  • Cross-platform UUID generation
  • C# Guid-like API design
  • Support for Guid type in custom classes
  • Immutable and serializable Guid objects
  • Easy integration via pub.dev

Suitable for

  • Apps needing globally unique identifiers
  • Backend-integrated Flutter apps
  • Data-heavy applications with sync requirements
  • Developers familiar with C# Guid patterns
  • Projects requiring consistent ID generation across platforms

Considerations

  • Requires understanding of UUID standards
  • Not suitable for cryptographic key generation
  • May add minor overhead for simple use cases
  • Limited to identifier generation, not encryption or hashing

Original README

Original README snapshot from the linked source repository. Visit the repository for the latest content.

flutter_guid

A flutter package that emulates the C# type Guid. Use this package to:

  1. Generate new UUIDs.
  2. Add variables of type Guid to your classes.
  3. Compare two 'Guid' variables safely against each other.
  4. Guarantee validity of data when working with UUID values.

Getting Started

Installing

Install from https://pub.dev/packages/flutter_guid#-installing-tab- , "flutter_guid's installation page on pub.dev"

Usage
Add to your class.
import 'package:flutter_guid/flutter_guid.dart';

class Employee{
  final Guid id;
  final Guid departmentId;

  Employee({this.id, this.departmentId});
}
Initialize Guid values

// initialize a guid from a string
final accountsDepartmentId = new Guid("41e879aa-859c-4bda-b77b-37b7e07c6674");

 // Generate a guid on the fly (Uses the superb package 'https://pub.dev/packages/uuid').
final employeeId = Guid.newGuid;

Compare Guids
// initialize a guid from a lowercase string
final accountsDepartmentIdLowerCase = new Guid("41e879aa-859c-4bda-b77b-37b7e07c6674");

// initialize a guid with same string, but UPPERCASE
final accountsDepartmentIdUpperCase = new Guid("41E879AA-859C-4BDA-B77B-37B7E07C6674");

// performs case-insensitive comparison and evaluates to 'true'
final equal = accountsDepartmentIdUpperCase == accountsDepartmentIdLowerCase;

Getting the UUID value contained in the GUID
final Guid accountsDepartmentIdLowerCase = new Guid("41e879aa-859c-4bda-b77b-37b7e07c6674");

// this works.
String uuidString = accountsDepartmentIdLowerCase.value;

// this also works.
uuidString = accountsDepartmentIdLowerCase.toString();

Testing

Basic Testing

Clone the repo and run flutter test

Testing With Coverage Information (Linux only)
  1. Ensure you have lcov installed and setup on your system (http://ltp.sourceforge.net/coverage/lcov.php).
  2. Ensure the run-tests script in the project root is executable (chmod +x ./run-tests.sh).
  3. Execute the run-tests script in the project root ./run-tests.sh.
  4. Navigate into directory ./coverage/html/ (relative to project root).
  5. Open index.html to view coverage information.
Coverage Information On Other Systems

It is unlikely that I'll be porting the run-tests.sh script to other systems, my reason mostly being that I don't frequently use any other OS and would not want to pick a sub-optimal tool for coverage generation (also laziness probably is a factor).

Anyhow, it should be fairly straight-forward to do the porting if you so wish.

The run-tests.sh consists of all of two lines:

  1. flutter test --coverage
  2. genhtml ./coverage/lcov.info -o ./coverage/html

The first line is platform independent and generates the file ./coverage/lcov.info (again relative to project root). On Linux, we can consume the coverage info contained in this file via the lcov tool. On Windows and other platforms, there exists also tools that would be able to similarly consume the coverage information and produce human friendly output.

In essense, port the script to desired platform by

  1. Keeping the first line 'as is'.
  2. Finding a tool to process the ./coverage/lcov.info file.
  3. Profit!

Categories

Dependencies

Dependency list 2 items

Source repository

Projects using this package

No data available yet.