flutter_vibrate 1.4.0 copy "flutter_vibrate: ^1.4.0" to clipboard
flutter_vibrate: ^1.4.0 copied to clipboard

A Haptic Feedback and Vibration plugin.

Flutter Vibrate #

Pub Version

A Flutter plugin to provide haptic feedback on iOS and Android. This package unifies the haptic feedback APIs, allowing for consistent vibration patterns and feedback types across both platforms.

Platform Support
Android
iOS
macOS
Web
Linux
Windows

Features #

  • Device Vibration: Trigger standard vibrations or custom patterns (Android).
  • Haptic Feedback: Access platform-specific haptic feedback constants (Impact, Selection, Success, Warning, Error, etc.).
  • Type Safety: Built with Pigeon for type-safe communication between Flutter and native platforms.
  • Modern Android Support: Uses View.performHapticFeedback for broad compatibility and adheres to modern Android haptic standards.
  • iOS Haptics: Uses UIImpactFeedbackGenerator and UINotificationFeedbackGenerator for rich haptic experiences on iOS 10+.

Getting Started #

Installation #

Add flutter_vibrate to your pubspec.yaml:

dependencies:
  flutter_vibrate: ^1.4.0

Android Setup #

Add the vibration permission to your AndroidManifest.xml (android/app/src/main/AndroidManifest.xml):

<manifest xmlns:android="http://schemas.android.com/apk/res/android">
    <uses-permission android:name="android.permission.VIBRATE"/>
</manifest>

Note: While vibrate() requires this permission, many haptic feedback types (like selection, impact) may work without it on some Android versions using the View-based API. However, it is recommended to include it for full functionality.

iOS Setup #

No additional configuration is required. The plugin uses AudioServicesPlaySystemSound and UIFeedbackGenerator which are available by default.

Usage #

Import the package:

import 'package:flutter_vibrate/flutter_vibrate.dart';

Basic Vibration #

Check for device capabilities and vibrate:

// Check if the device can vibrate
bool canVibrate = await Vibrate.canVibrate;

if (canVibrate) {
  // Vibrate for 500ms
  Vibrate.vibrate();
}

Vibration Patterns #

You can create custom patterns by specifying a list of pauses. The pattern alternates between vibrating and pausing.

Android: Supports custom patterns with variable pauses.

iOS: The OS does not support fine-grained custom patterns. This method will vibrate once for each interval in the list.

final Iterable<Duration> pauses = const [
    Duration(milliseconds: 500), // Vibrate
    Duration(milliseconds: 1000), // Wait
    Duration(milliseconds: 500), // Vibrate
];

Vibrate.vibrateWithPauses(pauses);

Haptic Feedback #

Trigger specific haptic feedback types to enhance user interaction:

// Impact (light collision)
Vibrate.feedback(FeedbackType.impact);

// Selection (scroll tick)
Vibrate.feedback(FeedbackType.selection);

// Success (task completion)
Vibrate.feedback(FeedbackType.success);

// Warning (potential issue)
Vibrate.feedback(FeedbackType.warning);

// Error (task failure)
Vibrate.feedback(FeedbackType.error);

// Heavy Impact
Vibrate.feedback(FeedbackType.heavy);

// Medium Impact
Vibrate.feedback(FeedbackType.medium);

// Light Impact
Vibrate.feedback(FeedbackType.light);

Contributing #

Contributions are welcome! If you find a bug or want to add a feature, please file an issue or submit a pull request.

200
likes
150
points
24.4k
downloads

Publisher

unverified uploader

Weekly Downloads

A Haptic Feedback and Vibration plugin.

Repository (GitHub)
View/report issues

Documentation

API reference

License

Apache-2.0 (license)

Dependencies

flutter

More

Packages that depend on flutter_vibrate

Packages that implement flutter_vibrate