Package selection guidance compiled from public package information, community data, and project usage.
The fitness package is a Flutter plugin that enables access to step count data from native health platforms. On iOS, it integrates with HealthKit, and on Android, it connects to Google Fit. This allows developers to retrieve step count information in a cross-platform manner, simplifying health data integration into fitness or wellness applications. The plugin handles platform-specific setup and permissions automatically, providing a consistent API across devices.
Use cases
Tracking daily step counts
Building fitness dashboards
Integrating with health analytics
Enabling user activity goals
Supporting wellness apps
Key features
Cross-platform step count access
HealthKit (iOS) integration
Google Fit (Android) integration
Automatic permission handling
Simple API for step data retrieval
Suitable for
Fitness app developers
Wellness application creators
Health data integrators
Mobile developers targeting both iOS and Android
Considerations
Requires user permission on both platforms
Needs proper configuration in iOS and Android manifests
Limited to step count (not other health metrics)
Depends on user having HealthKit or Google Fit enabled
May require background execution setup for continuous tracking
Original README
Original README snapshot from the linked source repository. Visit the repository for the latest content.
Fitness
Flutter plugin for reading step count data. Wraps HealthKit on iOS and GoogleFit on Android.
Enable HealthKit and add NSHealthShareUsageDescription key to the Info.plist file.
Usage
Fitness.hasPermission
Check if the user has previously granted the necessary data access.
Note:
Quite rightly so, Apple deems even the information as to whether a user accepted or denied the read permission for HealthKit as sensitive information.
For this reason, HealthKit does not have a clear way to check permissions.
As a workaround, it checks whether you can read data within the last month or not to see if you actually have read access.
void_hasPermission() async {
final result = awaitFitness.hasPermission();
}
Fitness.requestPermission
Initiate the authorization flow.
Android: Request OAuth permission and request permission to read step count history from Google Fit. It also creates a subscription to synchronize step count data.
iOS: Request permission to read step count history from Health Kit. Since it returns whether the request for HKHealthStore.requestAuthorization was successful or not, it is recommended to use Fitness.hasPermission in the case of iOS to check if there is permission again.
void_requestPermission() async {
final result = awaitFitness.requestPermission();
}
Fitness.revokePermission
Android: All OAuth permissions granted to Googlt Fit are revoked and all subscriptions created in the app are removed.
iOS: Feature is not supported, so it always returns true.
void_revokePermission() async {
final result = awaitFitness.revokePermission();
}
Fitness.read
Requests user's step data with Google Fit or Health Kit.
When requested without any arguments, the daily step count is requested by default.
Parameters
timeRange
defaults: from 00:00:00 to 23:59:59
type: TimeRange [class]
bucketByTime
defaults: 1
type: int
timeUnit
defaults: TimeUnit.day
type: TimeUnit [enum]
// Request data for the last 7 days.void_read() async {
final now = DateTime.now();
final results = awaitFitness.read(
timeRange: TimeRange(
start: now.subtract(constDuration(days: 7)),
end: now,
),
bucketByTime: 1,
timeUnit: TimeUnit.days,
);
}