compareVersions function

int compareVersions(
  1. String a,
  2. String b
)

Compares two dotted version strings numerically, e.g. 6.10.0 > 6.3.3.

Implementation

int compareVersions(String a, String b) {
  final partsA = a.split('.').map(int.tryParse).toList();
  final partsB = b.split('.').map(int.tryParse).toList();
  final length = partsA.length > partsB.length ? partsA.length : partsB.length;
  for (var i = 0; i < length; i++) {
    final pa = i < partsA.length ? (partsA[i] ?? 0) : 0;
    final pb = i < partsB.length ? (partsB[i] ?? 0) : 0;
    if (pa != pb) return pa.compareTo(pb);
  }
  return 0;
}