smart_review_dialog 0.0.1 copy "smart_review_dialog: ^0.0.1" to clipboard
smart_review_dialog: ^0.0.1 copied to clipboard

Intelligent 2-step in-app review dialog for Flutter with sentiment routing, store review redirect, internal feedback capture, and frequency capping.

smart_review_dialog #

pub package Pub Points License: MIT Likes

An intelligent, 2-step sentiment rating funnel for Flutter that protects public App Store and Google Play ratings while intercepting user dissatisfaction before it hurts your reputation.


🌟 Overview & Hook #

Asking every user to review your app blindly on public stores often invites 1-star ratings from upset users and hurts your algorithmic visibility.

smart_review_dialog solves this with an intelligent sentiment routing funnel:

  1. Step 1 (Internal Sentiment Check): Presents a clean, delightful rating prompt (stars, mood emojis, or thumbs).
  2. Step 2A (Positive Sentiment - 4 or 5 stars): Celebrates with a colorful particle confetti explosion and immediately guides happy users to leave a 5-star public store review.
  3. Step 2B (Critical Sentiment - 1 to 3 stars): Seamlessly diverts upset users into a private internal feedback form (with issue description and optional contact email), preserving your store rating while capturing valuable bug reports and product critiques.

✨ Features #

  • πŸ›‘οΈ 2-Step Reputation Shield: Automatically filters positive vs. critical sentiment with configurable rating thresholds.
  • πŸŽ‰ Celebratory Confetti Engine: Built-in lightweight particle physics burst upon high ratings with zero external dependencies.
  • πŸ“± Store Review Routing: Directs positive reviewers to App Store / Google Play review prompts with custom redirect triggers.
  • πŸ“ Graceful Negative Interception: Captures text feedback and optional follow-up email directly in-app.
  • ⏱️ Smart Frequency Capping: Throttles dialog prompts by minimum days, key action thresholds, or permanent opt-out once rated.
  • 🎨 Multiple Rating Styles: Choose between interactive animated Stars, Mood Emojis (😑 to 🀩), or Thumbs Up/Down.
  • πŸŒ™ Modern Design & Theming: Supports frosted glass backdrop blur (BackdropFilter), dark theme preset, rounded corners, and custom styling.

πŸš€ Installation #

Add the dependency to your pubspec.yaml:

flutter pub add smart_review_dialog

Or manually:

dependencies:
  smart_review_dialog: ^0.0.1

Then import:

import 'package:smart_review_dialog/smart_review_dialog.dart';

⚑ Quick Start #

Trigger the smart review dialog in under 15 lines of code:

SmartReviewDialog.show(
  context,
  onPositiveRating: (rating) {
    // Trigger in_app_review or launch store URL
  },
  onFeedbackSubmitted: (rating, feedback, email) {
    // Send feedback to your backend API or Slack webhook
  },
);

πŸ“– Advanced Usage & Examples #

1. Mood Emojis with Custom Theming #

SmartReviewDialog.show(
  context,
  ratingStyle: RatingStyle.emojis,
  theme: const SmartReviewTheme(
    promptTitle: 'How is your mood today?',
    promptSubtitle: 'Pick the emoji that best reflects your experience.',
    primaryColor: Color(0xFF10B981),
  ),
  onPositiveRating: (rating) => print('Positive: $rating'),
  onFeedbackSubmitted: (rating, feedback, email) => print('Feedback: $feedback'),
);

2. Frequency Capping with Persistent Storage #

final frequencyManager = FrequencyManager(
  storage: MySharedPreferencesStorage(), // implements ReviewStorageDelegate
  rules: const ReviewFrequencyRules(
    minDaysBetweenPrompts: 14,
    minActionCount: 3,
    neverAskAgainIfRated: true,
  ),
);

// Call this on a critical app action (e.g., booking complete, order delivered):
await frequencyManager.recordAction();

if (await frequencyManager.shouldShowDialog()) {
  await frequencyManager.recordPromptShown();
  SmartReviewDialog.show(
    context,
    onPositiveRating: (_) => frequencyManager.recordRatingCompleted(),
    onFeedbackSubmitted: (_, __, ___) => frequencyManager.recordRatingCompleted(),
  );
}

πŸ› οΈ Properties Table #

Property Type Default Description
sentimentConfig SentimentConfig SentimentConfig(positiveThreshold: 4) Threshold determining positive vs. critical sentiment routing.
theme SmartReviewTheme SmartReviewTheme() Visual colors, titles, padding, backdrop blur, and text configurations.
ratingStyle RatingStyle RatingStyle.stars Visual rating representation (stars, emojis, thumbs).
customRatingBuilder Widget Function(...) null Optional custom builder for fully customized rating selectors.
onPositiveRating ValueChanged<int>? null Invoked when the user picks a rating $\ge$ threshold.
onStoreRedirect VoidCallback? null Invoked when the user taps the public store button in step 2A.
onFeedbackSubmitted Function(int, String, String?)? null Invoked when the user submits private feedback in step 2B.
onDismissed VoidCallback? null Invoked when the dialog is dismissed or rejected.
barrierDismissible bool true Whether tapping outside the dialog closes the modal.

🎬 Preview & Demo #

+-------------------------------------------------------------+
|                      [ smart_review_dialog ]                |
|                                                             |
|   Step 1: In-App Rating        Step 2A: 5-Star Confetti     |
|   +-----------------------+    +-----------------------+    |
|   |  Enjoying our App?    |    |  πŸŽ‰ Thank You! πŸŽ‰     |    |
|   |   ⭐ ⭐ ⭐ ⭐ ⭐     | -> |  [ Rate on Store ]    |    |
|   |     [Maybe Later]     |    |     [Maybe Later]     |    |
|   +-----------------------+    +-----------------------+    |
|                                                             |
|                                Step 2B: Internal Feedback   |
|                                +-----------------------+    |
|                                |  Help Us Improve πŸ’¬   |    |
|                                |  [Describe issue...]  |    |
|                                |  [Send Feedback]      |    |
|                                +-----------------------+    |
+-------------------------------------------------------------+

🀝 Contributing #

Contributions, issues, and feature requests are welcome! Feel free to open an issue or pull request on GitHub.


πŸ“„ License #

This project is licensed under the MIT License - see the LICENSE file for details.


πŸ‘¨β€πŸ’» Author #

Developed with ❀️ by Shahzain Baloch (BalochCodes).

0
likes
160
points
348
downloads

Documentation

API reference

Publisher

verified publisherbalochcodes.com

Weekly Downloads

Intelligent 2-step in-app review dialog for Flutter with sentiment routing, store review redirect, internal feedback capture, and frequency capping.

Repository (GitHub)
View/report issues

Topics

#review #in-app-review #feedback #rating #dialog

License

MIT (license)

Dependencies

flutter

More

Packages that depend on smart_review_dialog