compareVersions function

int compareVersions(
  1. String version1,
  2. String version2
)

Compare two version strings.

Returns:

  • A negative number if version1 is older than version2
  • Zero if version1 is equal to version2
  • A positive number if version1 is newer than version2

Example:

compareVersions('1.2.3', '1.2.4') // returns -1
compareVersions('1.2.3', '1.2.3') // returns 0
compareVersions('1.2.4', '1.2.3') // returns 1

Implementation

int compareVersions(String version1, String version2) {
  final parts1 = version1.split('.');
  final parts2 = version2.split('.');

  for (var i = 0; i < parts1.length || i < parts2.length; i++) {
    final part1 = i < parts1.length ? int.tryParse(parts1[i]) ?? 0 : 0;
    final part2 = i < parts2.length ? int.tryParse(parts2[i]) ?? 0 : 0;

    if (part1 != part2) {
      return part1 - part2;
    }
  }

  return 0;
}