fancy_rating_bar 0.0.9

SDKflutter
Platformandroidioswindowslinuxmacos

A beautiful, highly customizable Flutter rating widget with stunning gradients, animations, and glassmorphic effects.

Fancy Rating Bar

pub package likes popularity

A beautiful, highly customizable Flutter rating dialog with stunning gradients, animations, and intelligent automatic rating logic. Perfect for collecting user feedback and app store ratings.

🚀 App Rating Flow

This flowchart describes the logic for when and how to show app rating prompts to users.

Flow Overview

🚀 START
    ↓
👥 Check: userSessions > threshold?
    ↓                    ↓
   ❌ NO               ✅ YES
    ↓                    ↓
🛑 END               ⭐ Show Rating Dialog
No Action                ↓
                    ⭐ Check: Rating > 3?
                         ↓           ↓
                       👎 NO       👍 YES
                         ↓           ↓
                   📝 Show         🏪 Ask User to Rate
                   Feedback Form    on App Store/Play Store
                         ↓           ↓
                   📤 Send to      📱 Check: User Rated?
                   FeedbackNest         ↓           ↓
                         ↓           ✅ YES       ❌ NO
                   ✅ END               ↓           ↓
                   Feedback         🙏 Show       ⏰ Increase threshold:
                   Collected        Thank You     x = x + showAgainThreshold
                                   Message            ↓
                                       ↓         📅 END
                                   📊 Send       Will Show Later
                                   Feedback to
                                   FeedbackNest
                                       ↓
                                   🎉 END
                                   Success

🎬 Demo Flow

Fancy Rating Bar Flow Demo

Complete rating dialog flow showing the smart routing: rating → review (for low ratings) or app store (for high ratings) → thank you

🎬 Themes

Fancy Rating Bar Flow Demo

💡 Pro Tip: Combine with FeedbackNest Core to automatically collect, analyze, and get insights from user ratings and reviews!

✨ Features

  • 6 Stunning Themes: Aurora, Sunset, Ocean, Forest, Midnight, Neon
  • 9 Rating Icon Types: Stars, hearts, thumbs, lightning, coffee, music, smile, award, gift
  • Smart Auto-Rating: Shows at the right time based on app usage
  • App Store Integration: Direct links to Play Store and App Store
  • Multi-Mode Support: Rating only, review only, or both
  • Emoji Rating: Alternative emoji-based rating system
  • Beautiful Animations: Smooth transitions and glassmorphic effects

🚀 Quick Start

Add dependency:

dependencies:
  fancy_rating_bar: ^0.0.8
  feedbacknest_core: ^0.0.6  # Optional: For analytics & insights

Basic usage:

import 'package:fancy_rating_bar/fancy_rating_bar.dart';
import 'package:feedbacknest_core/feedbacknest.dart'; // Optional

// Initialize FeedbackNest (optional but recommended)
void main() {
  runApp(MyApp());
  Feedbacknest.init("your_api_key", userIdentifier: "user_123");
}
//
[Get Api Key →](https://feedbacknest.app)
[See more →](https://pub.dev/packages/feedbacknest_core)


// Show rating dialog
void _showRating() {
  FancyRatingBarParams params = FancyRatingBarParams(
    theme: RatingThemes.aurora,
    playStoreUrl: "https://play.google.com/store/apps/details?id=your.app.id",
    appStoreUrl: "https://apps.apple.com/app/your-app-id",
    testMode: true, // Remove in production
  );
  
  FancyRatingBar.of(context).handleAutomaticRating(
    params: params,
    onSubmit: (response) {
      // Option 1: Use FeedbackNest for automatic analytics
      Feedbacknest.submitRatingAndReview(
        rating: response.rating,
        review: response.message ?? response.type.name,
      );
      
      // Option 2: Handle manually
      print('Rating: ${response.rating}');
    },
  );
}

📊 Why Use FeedbackNest Core?

Get powerful insights from your user feedback:

  • 📈 Analytics Dashboard: Track rating trends, user sentiment, and feedback patterns
  • 🔍 AI-Powered Insights: Automatic categorization and sentiment analysis of reviews
  • 📱 Multi-Platform: Collect feedback from web, mobile, and desktop apps
  • ⚡ Real-time Alerts: Get notified of negative feedback to respond quickly
  • 📧 Export & Reporting: Generate reports for stakeholders and team analysis

📊 FeedbackNest Dashboard

FeedbackNest Analytics Dashboard

Comprehensive analytics dashboard showing ratings overview, user metrics, and detailed feedback tracking with average rating, total reviews, and positive/negative sentiment analysis

FeedbackNest User Profile Details

Deep user insights revealing install date, usage duration, session count, device information, and comprehensive engagement metrics for each user who provided feedback

What you get with FeedbackNest:

  • 📊 Real-time Dashboard: Average rating, total feedback count, positive/negative sentiment analysis
  • 👤 User Profiles: Track individual user journeys, app usage patterns, and engagement metrics
  • ⏱️ Usage Analytics: Install date, active days, total sessions, sessions per day
  • 📱 Device Intelligence: Platform, version, device model, and location data
  • 🎯 Smart Filtering: Sort and filter feedback by user, rating, platform, date, and more

Init Feedbacknest

Feedbacknest.init("your_api_key", userIdentifier: "user_123");

Log Rating And Review In Feedbacknest

// Simple integration - FeedbackNest handles the rest!
Feedbacknest.submitRatingAndReview(
  rating: response.rating,
  review: response.message ?? '',
);

Learn more about FeedbackNest → See more →

🎨 FancyRatingBarParams Configuration

Required Parameters

ParameterTypeDescription
themeRatingThemeRequired. Visual theme for the dialog

Automatic Rating Logic

ParameterTypeDefaultDescription
thresholdint3Number of handleAutomaticRating() function call before showing the dialog for the first time
showAgainThresholdint10Number handleAutomaticRating() after which to show dialog again if previously skipped
testModeboolfalseIf true, dialog shows every time (for development/testing)

Visual & Interaction

ParameterTypeDefaultDescription
ratingIconTypeRatingIconTypestarsType of rating icons: stars, hearts, thumbs, lightning, coffee, music, smile, award, gift
useEmojiRatingboolfalseUse emoji-based rating instead of icons
modeDialogModeratingDialog flow: rating, review, or both

Custom Text Content

ParameterTypeDefaultDescription
titleString'Rate Your Experience'Main title for rating step
subtitleString'How was your overall experience?'Subtitle for rating step
reviewTitleString'Tell us more!'Title for review step
reviewSubtitleString'Share your thoughts (optional)'Subtitle for review step
storeRatingTitleString'Show Some Love! ❤️'Title for store rating prompt
storeRatingSubtitleString'Help others discover our app...'Subtitle for store rating prompt
thankYouTitleString'Thank You for Rating Us! 🎉'Title for thank you screen
thankYouSubtitleString'We appreciate you taking...'Subtitle for thank you screen

App Store Integration

ParameterTypeDefaultDescription
playStoreUrlString''Google Play Store URL for your app
appStoreUrlString''Apple App Store URL for your app

Behavior Settings

ParameterTypeDefaultDescription
maxLengthint500Maximum characters allowed in review text
thankYouDurationint4Duration (seconds) to show thank you message

Available Themes

RatingThemes.aurora     // Purple and pink gradients
RatingThemes.sunset     // Orange and red gradients  
RatingThemes.ocean      // Blue and cyan gradients
RatingThemes.forest     // Green and emerald gradients
RatingThemes.midnight   // Dark and elegant gradients
RatingThemes.neon       // Vibrant neon gradients

Complete Example

FancyRatingBarParams params = FancyRatingBarParams(
  // Required
  theme: RatingThemes.neon,
  
  // Automatic Logic
  threshold: 5,              // Show after 5 app launches
  showAgainThreshold: 15,    // Show again after 15 launches if skipped
  testMode: false,           // Set to true for testing
  
  // Visual & Interaction
  ratingIconType: RatingIconType.hearts,
  useEmojiRating: false,
  mode: DialogMode.both,
  
  // Custom Text
  title: 'How do you like our app?',
  subtitle: 'Your feedback helps us improve',
  reviewTitle: 'Share Your Thoughts',
  reviewSubtitle: 'Tell us what you think',
  
  // Store URLs
  playStoreUrl: "https://play.google.com/store/apps/details?id=your.app.id",
  appStoreUrl: "https://apps.apple.com/app/your-app-id",
  
  // Behavior
  maxLength: 300,
  thankYouDuration: 3,
);

🔧 Usage Options

FancyRatingBar.of(context).handleAutomaticRating(
  params: params,
  onSubmit: (response) {
    Feedbacknest.submitRatingAndReview(
      rating: response.rating,
      review: response.message ?? response.type.name,
    );
  },
);

Manual Dialog

FancyRatingBar.of(context).showRatingDialog(params, (response) {
  print('Rating: ${response.rating}');
});

Response Types

  • ResponseType.rated - User rated
  • ResponseType.openedStoreToRate - Went to app store
  • ResponseType.skippedStoreRating - Skipped store rating
  • ResponseType.closedDialog - Closed without rating

🎯 Advanced Features

  • Smart Flow: High ratings (>3) → App Store, Low ratings → Review form
  • Automatic Logic: Remembers user preferences, handles thresholds
  • Store Integration: Detects when users return from app stores
  • Beautiful UI: Glassmorphic effects, smooth animations, responsive design

📱 Screenshots

Aurora Theme

Aurora Rating ViewAurora Review ViewAurora Success View

Sunset Theme

Sunset Rating ViewSunset Review ViewSunset Success View

Ocean Theme

Ocean Rating ViewOcean Review ViewOcean Success View

🔧 Troubleshooting

Dialog not showing?

  • Set testMode: true for testing
  • Check threshold settings
  • Verify store URLs are correct

Reset preferences for testing:

SharedPreferences prefs = await SharedPreferences.getInstance();
await prefs.clear();

🤝 Contributing

Contributions are welcome! Please raise an issue or submit a PR for bugs or feature requests.

📄 License

MIT License - see LICENSE file for details.