App Feedback

Open Source Love Hits GitHub last commit GitHub code size in bytes GitHub stars GitHub forks

pub package Likes Popularity Pub points

A Flutter package for getting app feedback from users. It provides the utility to display feedback form depending upon the requirement. Feedback form can be displayed instantly at any time or after certain period of time.

Download Demo App GitHub All Releases

How to use this package

1. Add library to pubspec.yml

dependencies:
  app_feedback: ^0.0.2

2. Import library in dart file.

import 'package:app_feedback/app_feedback.dart';

3. Create a instance of AppFeedback

AppFeedback feedbackForm = AppFeedback.instance;

4. Initialize the app feedback (Ony if you want to ask user for his feedback periodically)

 @override
  void initState() {
    /// `duration` is set to 10 seconds for testing purpose.
    /// Change this duration on the basis of how often you want to ask user for his feedback.
    /// For example duration can be 15 days, 1 or 2 month etc.
    feedbackForm.init(FeedbackConfig(duration: Duration(seconds: 10)));
    super.initState();
  }

5. Create a method which will launch the feedback form

 void tryDisplay() {
    feedbackForm.tryDisplay(context, onSubmit: (UserFeedback feedback) {
      print(feedback);
    });
  }

6. Create a button to call tryDisplay method.

TextButton(
    onPressed: tryDisplay,
    child: Text("Try Display Form")
 ),

Note

  1. feedbackForm will only be displayed once provided duration in step 3 has passed.
  2. Once feedbackForm is displayed then it won't be displayed until the next cycle of the duration is completed.
  3. The config data provided in first time initialization of feedbackForm is stored in local cache and other initialization data will be ignored.

7. Clear old configuration

Invoke clearConfig method only if there is a need to clear the old config values otherwise ignore this.

  void clearConfig() async {
    await feedbackForm.clearConfig();
 }

Note

  1. After clearing the configuration it won't be display the feedback form ever until new initialization.
  2. Clear configuration form doesn't mean reset the duration cycle. It just removes the all configuration from the cache.
  3. To reset duration and other configuration do call the feedbackForm.init() method with new config values.

Display instant feedbackForm

If there is a need to display feedbackForm instantly on any time then invoke feedbackForm.display method. By calling this method won't reset the duration cycle provided in above step 3. To invoke below method there is no need to initialize the feedbackForm.

void launchAppFeedback() {
    feedbackForm.display(context,
        option: Option(
          maxRating: 10,
          ratingButtonTheme: RatingButtonThemeData.defaultTheme,
        ), onSubmit: (feedback) {
      print(feedback);
    });
  }
Feedback formCustomised Rating buttonCustomised Rating button
Hidden feedback fieldCustomised feedback formCustomised feedback form

Other Flutter packages

NameStarsPub
Filter ListGitHub starspub package
Empty widgetGitHub starspub package
Add ThumbnailGitHub starspub package
Country ProviderGitHub starspub package

Pull Requests

I welcome and encourage all pull requests. It usually will take me within 24-48 hours to respond to any issue or request.

Created & Maintained By

Sonu Sharma (Twitter) (Youtube) (Insta) Twitter Follow

If you found this project helpful or you learned something from the source code and want to thank me, consider buying me a cup of :coffee:

Visitors Count

Loading

Libraries

app_feedback