アプリの初回起動時や新機能リリース時に、ユーザーへ使い方をわかりやすく伝えることはとても重要です。
- ボタンの意味が伝わらない
- 便利な機能が埋もれて使われない
- UIが複雑で直感的でない
こうした課題を解決するためにおすすめなのが、今回紹介する「showcaseview」というFlutterパッケージです。
showcaseviewとは?
「showcaseview」は、指定したUIコンポーネントにガイドを重ねて、ユーザーに操作方法を説明するためのパッケージです。
特徴:
- 任意のウィジェットに吹き出し説明(ツールチップ)を表示
- ステップ形式で案内可能(ツアー型オンボーディング)
- 操作は簡単、コーディングだけで実装可能
- 初回起動時のみ表示する制御も容易
アプリのUXを大きく向上させることができます。
インストール方法
まずはpubspec.yaml
に追加:
dependencies:
showcaseview: ^2.0.0 # 最新バージョンはpub.devで確認してください
その後、flutter pub get
を実行します。
基本の使い方
1. Showcaseを使うウィジェットにGlobalKeyを設定
final GlobalKey _one = GlobalKey();
final GlobalKey _two = GlobalKey();
2. ShowcaseViewで全体をラップ
ShowCaseWidget(
builder: Builder(
builder: (context) => MyHomePage(),
),
)
3. 対象ウィジェットをShowcaseで包む
Showcase(
key: _one,
description: 'ここをタップするとメニューが開きます',
child: Icon(Icons.menu),
),
4. ガイドを表示するタイミングで startShowCase を呼び出す
WidgetsBinding.instance.addPostFrameCallback((_) {
ShowCaseWidget.of(context).startShowCase([_one, _two]);
});
これだけで、対象ウィジェットにフォーカスを当てて、ガイドを表示することができます。
複数ステップのツアーガイド
順番に表示したい場合、複数のGlobalKeyをリストで渡せばOK。
ShowCaseWidget.of(context).startShowCase([
_one,
_two,
_three,
]);
吹き出しの方向や形状は自動で調整されますが、shapeBorder
やtargetPadding
でカスタマイズも可能です。
便利なカスタマイズポイント
title
: タイトル付きのガイドにshapeBorder
: 楕円・角丸などハイライト形状を変更disableAnimation
: アニメーション無効化targetPadding
: ハイライトの余白調整onComplete
: 最後まで終わったときのコールバック
ユーザーがガイドをすべて終えたかどうかを記録するために、shared_preferences
などと組み合わせて制御するのもおすすめです。
実践例:初回起動時だけガイドを表示する
bool isFirstLaunch = await prefs.getBool('is_first_launch') ?? true;
if (isFirstLaunch) {
ShowCaseWidget.of(context).startShowCase([_one, _two]);
await prefs.setBool('is_first_launch', false);
}
このようにすれば、初回のみツアーを実行するシンプルな導入が可能です。
まとめ
「showcaseview」はFlutterアプリにおいて、
- 初回オンボーディング
- 新機能の説明
- 特定機能への誘導
といった場面で非常に有効なパッケージです。
UIを丁寧に伝えることでユーザーのストレスを減らし、リテンションやアクティブ率の向上にも直結します。
UXを一段アップさせたい方、ぜひ一度「showcaseview」を導入してみてください。