【Flutter】ユーザーからのより良いフィードバックを受け取ろう
はじめに
普段私は、ユーザーから自分のアプリのフィードバックをいただく窓口はストアのレビューのみでした。
ストアレビューをいただくだけでも開発者としてはモチベーションが上がるものですが、
バグやユーザーの細かい要望に対応するため、より細かいフィードバックが欲しいものです。
そんなとき、アプリ内で手軽にフィードバックを送信することができるパッケージを紹介します。
feedback
アプリ内でフィードバックを送信するためのパッケージで、FlutterFavoriteにも選ばれています。
主な機能は、ユーザーがフィードバックを送信するためのモードが手軽に実装でき、
フィードバック文を書いたり、スクリーンショットを取得できます。
画面右のバーの"Draw"では画面にペイントすることができ、"Navigate"ではアプリを操作することができます。
使い方
まずはrunApp配下にBetterFeedbackを配置し、childとして自分のアプリを設定します。
import 'package:feedback/feedback.dart';
import 'package:flutter/material.dart';
void main() {
runApp(
BetterFeedback(
child: const MyApp(),
),
);
}
ボタン等を押した際の動きを実装します。
これだけでIconButton押下時にフィードバックのモードになります。すご!
IconButton(
icon: const Icon(Icons.feedback),
onPressed: () {
// これを書くだけ
BetterFeedback.of(context).show((UserFeedback feedback) {});
},
),
ユーザーのフィードバックを受け取る
ユーザーが入力したフィードバックはUserFeedbackオブジェクトとして渡され、
開発者がアクセスすることができます。
IconButton(
icon: const Icon(Icons.feedback),
onPressed: () {
// これを書くだけ
BetterFeedback.of(context).show((UserFeedback feedback) {
// フィードバックのテキスト
print(feedback.text);
// フィードバックのスクリーンショット(Unit8List型)
print(feedback.screenshot);
});
},
),
pubdevのfeedbackページでは、Firebaseやメールを利用して開発者がフィードバックを受け取ることを推奨しています。本記事は省略します🙏
IconButton(
icon: const Icon(Icons.feedback),
onPressed: () {
// これを書くだけ
BetterFeedback.of(context).show((UserFeedback feedback) {
// フィードバックのテキスト
print(feedback.text);
// フィードバックのスクリーンショット(Unit8List型)
print(feedback.screenshot);
/*
ここでFirebaseなどにフィードバックを送信する処理を書く
*/
});
},
),
おまけ
フィードバック送信後、通常の画面に戻った後にSnackBarでユーザーにフィードバックの感謝を付けてみました。😊
IconButton(
icon: const Icon(Icons.feedback),
onPressed: () {
// これを書くだけ
BetterFeedback.of(context).show((UserFeedback feedback) {
// フィードバックのテキスト
print(feedback.text);
// フィードバックのスクリーンショット(Unit8List型)
print(feedback.screenshot);
/*
ここでFirebaseなどにフィードバックを送信する処理を書く
*/
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(
content: Text(
'フィードバックを送信しました。ご報告ありがとうございます!',
),
),
);
});
},
),
まとめ
本記事のコードは以下リポジトリで閲覧できます。ご確認ください。
feedbackを利用することで、ユーザーの要望をより細かく知ることができるようです。
課題があるとすれば、フィードバックを送るための導線づくりが難しいという印象があります。
パッケージを導入するだけでなく、ユーザーにフィードバックを促す工夫が求められます。🤔
WebViewではスクリーンショットを利用できない等の注意点もあるので、
詳しくはpubdevページをご覧ください。
それでは🐮✋
Discussion