More
FlutterのバックエンドとしてBack4appを使用したパターンマッチングの理解
9 分
はじめに パターンマッチングは、dart 3で導入された強力な機能で、開発者がアプリケーション内の特定のデータ構造を簡単に特定し、抽出できるようにします。kotlin、swift、またはjavascriptのような言語に経験がある場合、パターンマッチングにすでに慣れているかもしれません。しかし、dartでこの概念に初めて触れる場合、このチュートリアルはあなたがそれに慣れるのを助けます。パターンマッチングと、それをflutterアプリでどのように使用するかを、back4appをバックエンドとして統合し、データを管理および保存する実用的な例を通じて探ります。 前提条件 始める前に、次のものを用意してください back4appアカウント。 back4app com https //www back4app com で無料アカウントにサインアップしてください。 ローカルマシンにflutter開発環境をセットアップしてください。まだセットアップしていない場合は、 flutterインストールガイド https //flutter dev/docs/get started/install を参照してください。 dart、flutterウィジェット、およびバックエンドサービスとしてのback4appの基本的な知識。 ステップ1 – back4appバックエンドの設定 back4appプロジェクトを作成する back4appアカウント https //www back4app com/ にログインし、新しいプロジェクトを作成します。 parseクラスを作成する このチュートリアルでは、ユーザー情報を保存するために「 userdata 」というparseクラスを作成します。 username (string) ユーザーのユーザー名。 age (number) ユーザーの年齢。 preferences (json) ユーザーの設定を保存するjsonオブジェクト。 back4appの認証情報を取得する プロジェクト設定に移動して、flutterアプリをback4appに接続するために必要なアプリケーションidとクライアントキーを取得します。 ステップ 2 – flutter プロジェクトの設定 新しい flutter プロジェクトを作成 ターミナルまたはコマンドプロンプトを開き、次のコマンドを実行します flutter create pattern matching example 依存関係を追加 pubspec yaml を開き、次の依存関係を追加します dependencies flutter sdk flutter parse server sdk flutter latest version 次のコマンドを実行して flutter pub get これらの依存関係をインストールします。 アプリでparseを初期化する lib/main dart , parse sdkを初期化します import 'package\ flutter/material dart'; import 'package\ parse server sdk flutter/parse server sdk flutter dart'; void main() async { widgetsflutterbinding ensureinitialized(); const keyapplicationid = 'your back4app app id'; const keyclientkey = 'your back4app client key'; const keyparseserverurl = 'https //parseapi back4app com'; await parse() initialize(keyapplicationid, keyparseserverurl, clientkey keyclientkey, autosendsessionid true); runapp(myapp()); } class myapp extends statelesswidget { @override widget build(buildcontext context) { return materialapp( home patternmatchingscreen(), ); } } 「 'your back4app app id' 」と 'your back4app client key' 」を実際のback4appの資格情報に置き換えてください。 ステップ 3 – パターンマッチングの実装 patternmatchingscreen ウィジェットを作成する lib/main dart , ユーザーデータを取得して処理することでパターンマッチングを示す新しいウィジェットを作成します class patternmatchingscreen extends statefulwidget { @override patternmatchingscreenstate createstate() => patternmatchingscreenstate(); } class patternmatchingscreenstate extends state\<patternmatchingscreen> { string message = 'fetching data '; @override void initstate() { super initstate(); fetchandmatchdata(); } future\<void> fetchandmatchdata() async { final query = querybuilder\<parseobject>(parseobject('userdata')); final response = await query query(); if (response success && response results != null) { for (var result in response results!) { // using pattern matching to destructure and validate data if (result is parseobject) { final userdata = { 'username' result get\<string>('username'), 'age' result get\<int>('age'), 'preferences' result get\<map\<string, dynamic>>('preferences') }; switch (userdata) { case { 'username' string name, 'age' int age when age >= 18, 'preferences' {'theme' string theme} } setstate(() { message = 'welcome, $name! you are $age years old and prefer the $theme theme '; }); break; default setstate(() { message = 'data does not match the required pattern '; }); break; } } } } else { setstate(() { message = 'failed to retrieve data '; }); } } @override widget build(buildcontext context) { return scaffold( appbar appbar(title text('pattern matching example')), body center(child text( message)), ); } } このコードはback4appからユーザーデータを取得し、パターンマッチングを適用してデータを検証および分解し、マッチしたデータに基づいてパーソナライズされたメッセージを表示します。 ステップ4 – アプリの実行 アプリを実行する には flutter run を使用します。取得したデータに基づいて画面にメッセージが表示されるはずです。 back4appでデータを確認する には、back4appダッシュボードにログインして userdata クラスを確認します。異なるパターンがどのようにマッチするか、アプリがどのように応答するかを確認するためにデータを調整できます。 結論 このチュートリアルでは、dartにおけるパターンマッチングの概念と、それがflutterアプリ内でどのように適用できるかを探りました。back4appをバックエンドとして統合することで、パターンマッチングを使用してデータを取得および処理する実用的な例を示しました。このアプローチにより、データを効率的に検証および分解でき、flutterアプリをより堅牢で保守しやすくすることができます。 dartのパターンに関する詳細情報は、 dartのドキュメント https //dart dev をご覧ください。また、バックエンド統合のヒントについては、 back4appのドキュメント https //www back4app com/docs をチェックしてください。コーディングを楽しんでください!