Future<List<Map<String, dynamic>>> getWeeklySteps() async {
final now = DateTime.now();
final weeklySteps = <Map<String, dynamic>>[];
for (int i = 6; i >= 0; i--) {
final day = now.subtract(Duration(days: i));
final dayStart = DateTime(day.year, day.month, day.day);
final dayEnd = dayStart.add(Duration(days: 1));
final steps = await health.getTotalStepsInInterval(dayStart, dayEnd);
weeklySteps.add({
'date': dayStart,
'dayName': _getDayName(dayStart.weekday),
'steps': steps ?? 0,
});
}
return weeklySteps;
}
String _getDayName(int weekday) {
const days = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];
return days[weekday - 1];
}
// Usage
final weekData = await getWeeklySteps();
for (var day in weekData) {
print('${day['dayName']}: ${day['steps']} steps');
}