Flutterでpage_transitionを用いた画面遷移を作ってみよう!

flutter

はじめに

Flutterはその柔軟性と効率性で人気のあるクロスプラットフォーム開発フレームワークですが、その中でも一際注目される機能が「画面遷移」です。画面遷移はユーザー体験を向上させるための重要な要素であり、Flutterではそのカスタマイズが非常に容易です。今回の記事では、カスタムトランジションを用いた画面遷移の作り方を解説します。

Flutter/DartでのNavigatorを用いた画面遷移の具体的な使い方

Flutter/DartでのNavigatorを用いた画面遷移の具体的な使い方
はじめに Flutterでアプリを開発する際、1つの画面から別の画面への移動は避けて通れない重要なテーマです。今回の記事では、この「画面遷移」を実現するためのNavigatorについて深堀りします。具体的なコードとともに、Navigator...

1. ライブラリの導入

この記事では、カスタムトランジションを簡単に作るために、page_transitionというライブラリを使用します。このライブラリを使うと、様々なスタイルのトランジションを簡単に実装することができます。まずはこちらからライブラリをインストールしましょう。

 $ flutter pub add page_transition

コマンドを実行するとpubspec.yaml に次のような行が追加されます

dependencies:
  page_transition: ^2.0.9

2. 基本的な使用方法

まずは、基本的な使用方法を見ていきましょう。以下のようなコードで、右から左へのスライドトランジションを実装することができます。

Navigator.push(context, PageTransition(type: PageTransitionType.rightToLeft, child: SecondPage()));

ここでPageTransitionType.rightToLeftは、画面遷移の種類を指定しています。child:で遷移先の画面を指定します。

3. さまざまなトランジション

page_transitionライブラリでは、さまざまなトランジションを提供しています。例えば、下から上へのスライドトランジションは以下のようにして実装できます。

Navigator.push(context, PageTransition(type: PageTransitionType.bottomToTop, child: SecondPage()));

また、フェードインとアウトのトランジションは以下のようにします。

Navigator.push(context, PageTransition(type: PageTransitionType.fade, child: SecondPage()));

これら以外にも、page_transitionライブラリはさまざまなトランジションをサポートしています。詳しくは公式ドキュメンテーションをご覧ください。

4. routerの使用

ここでは、routerをつかってスイッチケースで新しいルートに移行できます。

まずはmain.dartを下記のようにonGenerateRouteを設定します

runApp(MaterialApp(
    title: 'Navigation Basics',
    home: FirstScreen(),
    onGenerateRoute: (settings) {
      switch (settings.name) {
        case '/second':
          return PageTransition(
              child: SecondScreen(), type: PageTransitionType.bottomToTop);
        default:
          return null;
      }
    },
  ));

このコードではonGenerateRouteで各パスがどのページに遷移するかどうかを設定できます

次は遷移する処理です

Navigator.pushNamed(context, '/second');

このコードでは/secondのパスに設定された画面に遷移します

まとめ

この記事では、Flutterを使った画面遷移と、その際のカスタムトランジションの作成方法を解説しました。page_transitionという強力なライブラリを使うことで、一見複雑に思える画面遷移も簡単に実装できることがわかったと思います。

ユーザー体験の向上には画面遷移が大いに関係しますので、ぜひ色々なトランジションを試してみて、ユーザーフレンドリーなアプリ作りに役立ててください。もちろん、トランジションだけではなく、その他のUI/UXに関する考え方も重要です。素晴らしいアプリケーション開発の一助となれば幸いです。