track 1.1.3 copy "track: ^1.1.3" to clipboard
track: ^1.1.3 copied to clipboard

Easily track streaks, counters, history, and records. Effortless persistent trackers with no manual timers or storage, just define and go.

example/example.dart

import 'package:flutter/widgets.dart';
import 'package:track/track.dart';

Future<void> main() async {
  // โœ… Create a daily streak tracker
  final streak = StreakTracker(
    'daily_exercise',
    period: TimePeriod.daily,
    recordsHistory: 3,
  );

  // โšก Bump the streak (mark today as completed)
  await streak.bump();
  debugPrint('Streak bumped!');

  // ๐Ÿ“Š Get the current streak count
  final current = await streak.currentStreak();
  debugPrint('Current streak: $current');

  // โ“ Check if the streak is broken
  final isBroken = await streak.isStreakBroken();
  debugPrint('Is streak broken? $isBroken');

  // ๐Ÿ“… Check when the streak will break next
  final nextReset = await streak.nextResetTime();
  debugPrint('Next reset time: $nextReset');

  // ๐Ÿ“ˆ Get percent of time remaining before streak breaks
  final percentLeft = await streak.percentRemaining();
  debugPrint(
      'Percent of time remaining: ${(percentLeft! * 100).toStringAsFixed(2)}%');

  // โฑ Check how long ago the last bump happened
  final age = await streak.streakAge();
  debugPrint('Time since last bump: ${age?.inHours} hours');

  // ๐Ÿ† Get best streak ever
  final best = await streak.records.getBestRecord();
  debugPrint('Best streak ever: $best');

  // ๐Ÿงฏ Reset the streak
  await streak.reset();
  debugPrint('Streak reset!');

  // ๐Ÿงช Debug helpers
  final hasData = await streak.hasState();
  debugPrint('Has saved state? $hasData');

  await streak.clear();
  debugPrint('State cleared!');
}
12
likes
160
points
83
downloads

Publisher

verified publisherjozz.biz

Weekly Downloads

Easily track streaks, counters, history, and records. Effortless persistent trackers with no manual timers or storage, just define and go.

Repository (GitHub)
View/report issues

Topics

#streaks #counters #history #persistence #records

Documentation

API reference

License

MIT (license)

Dependencies

equatable, flutter, prf, synchronized

More

Packages that depend on track