もっと

FlutterでHomeWidgetとBack4Appを使用してホーム画面ウィジェットを作成する方法

30min

はじめに

ホーム画面のウィジェットを使用すると、ユーザーはアプリを開かずにデバイスのホーム画面からリアルタイム情報にアクセスできます。Flutterを使用すると、これらのウィジェットを作成するにはプラットフォーム固有のコードが必要です。しかし、home_widgetパッケージは、Dartコードを使用してFlutterアプリとホーム画面のウィジェット間でデータ交換を可能にすることで、このギャップを埋めます。

このチュートリアルでは、home_widgetパッケージを使用してFlutterでホーム画面ウィジェットを作成し、Parse Serverによって提供されるバックエンドサービスであるBack4Appと統合する方法を学びます。このチュートリアルの終わりには、Back4Appからのデータをホーム画面ウィジェットに表示するFlutterアプリが完成します。

前提条件

このチュートリアルを完了するには、次のものが必要です:

  • Flutter SDK があなたのマシンにインストールされていること。 公式のFlutterインストールガイド をあなたのオペレーティングシステムに従って確認してください。
  • FlutterとDartの基本的な知識。Flutterが初めての場合は、 Flutterドキュメント を確認して基本を理解してください。
  • IDEまたはテキストエディタ、例えばVisual Studio CodeやAndroid Studioなど。
  • Back4AppアカウントBack4App に無料アカウントを登録してください。
  • Flutter用のParse Server SDK をあなたのプロジェクトに追加してください。 Back4App Flutter SDKガイド を参照して設定方法を学ぶことができます。
  • プラットフォーム固有の設定 をAndroidおよびiOSのホーム画面ウィジェット用に行います。

ステップ1 – Flutterプロジェクトの設定

1.1. 新しいFlutterプロジェクトを作成する

ターミナルを開いて、次のコマンドを実行します:

Bash


プロジェクトディレクトリに移動します:

Bash


1.2. 依存関係を追加する

pubspec.yaml」を開いて、次の依存関係を追加します:

YAML


flutter pub get」を実行して、パッケージをインストールします。

ステップ2 – Back4Appの設定

2.1. 新しいBack4Appアプリケーションを作成する

  1. Back4Appダッシュボード」にログインします。
  2. 新しいアプリを作成」をクリックします。
  3. アプリケーションの名前を入力します。例: 「HomeWidgetApp」と入力し、「作成」をクリックします。

2.2. データモデルを設定する

  1. アプリケーションダッシュボードで、"Database"セクションに移動します。
  2. をクリックします"Create a class".
  3. モーダルで:
    • を選択します"Custom".
    • クラス名として"Message"を入力します。
    • をクリックします"Create class".

2.3. クラスにカラムを追加する

  1. "Message"クラスで、"+"をクリックして新しいカラムを追加します。
  2. 次のカラムを追加します:
    • title: タイプ String
    • content: タイプ String
  3. "Message"クラスにサンプルデータを追加します。例えば:

2.4. アプリケーションクレデンシャルを取得する

  1. に移動しますApp Settings > Security & Keys.
  2. あなたのApplication IDClient Keyをメモしてください。

ステップ 3 – Flutter アプリでの Parse の初期化

lib/main.dart」を開いて、次のように修正します:

Dart

  • 'YOUR_APPLICATION_ID'」と「'YOUR_CLIENT_KEY'」を実際の Back4App の資格情報に置き換えます。

ステップ 4 – Back4App からのデータ取得

新しいファイルを作成する lib/home_page.dart:

Dart


説明

  • メッセージクラス: メッセージデータを保持するシンプルなモデルクラスです。
  • fetchMessage(): Back4Appの Message クラスからデータを取得し、message 変数を更新します。
  • updateHomeWidget(): 取得したデータをホーム画面ウィジェットに保存し、HomeWidget.saveWidgetData を使用して更新をトリガーします。HomeWidget.updateWidget を使用します。
  • build(): メッセージデータとメッセージを更新するボタンを表示します。

ステップ5 – ホーム画面ウィジェットの設定

5.1. Androidのセットアップ

5.1.1. ウィジェットレイアウトの作成

新しいXMLレイアウトファイルを作成します android/app/src/main/res/layout/ という名前で home_widget.xml:

XML


5.1.2. ウィジェットプロバイダーの作成

新しいJavaクラスを作成します android/app/src/main/java/your/package/name/ という名前の HomeWidgetProvider.java:

Java


を置き換えます your.package.name 実際のパッケージ名に。

5.1.3. Android Manifestの更新

ウィジェットプロバイダーを追加します AndroidManifest.xml:

XML


5.1.4. ウィジェット情報XMLの作成

新しいXMLファイルを作成します android/app/src/main/res/xml/ という名前の home_widget_info.xml:

XML


5.2. iOSの設定

5.2.1. ウィジェット拡張を作成する

  1. FlutterプロジェクトをXcodeで開くには、ios/Runner.xcworkspaceを開きます。
  2. クリックします ファイル > 新規 > ターゲット.
  3. ウィジェット拡張」を選択し、「次へ」をクリックします。
  4. HomeWidget」を製品名として入力し、「構成インテントを含める」のチェックを外します。
  5. 完了」をクリックし、「スキームをアクティブにする」を選択します。

5.2.2. ウィジェットコードを更新する

HomeWidget」拡張で、「HomeWidget.swift」を開いて修正します:

Swift

  • YOUR_GROUP_ID」をあなたのアプリグループ識別子(例:group.com.example.homeWidgetApp)に置き換えます。

5.2.3. アプリグループの設定

  1. Xcodeでプロジェクトを選択し、「Signing & Capabilities」に移動します。
  2. App Groups」をメインアプリターゲットとウィジェット拡張の両方に追加します。
  3. 新しいアプリグループを作成します(例:group.com.example.homeWidgetApp)。
  4. 両方のターゲットが同じアプリグループを有効にしていることを確認します。

5.3. プラットフォーム固有の設定のためのFlutterコードの更新

あなたのupdateHomeWidget()メソッドの中でhome_page.dart、ウィジェット名を更新します:

Dart


ステップ6 – アプリの実行とウィジェットのテスト

6.1. アプリを実行する

ターミナルで、次のコマンドを実行します:

Bash


6.2. ウィジェットをホーム画面に追加する

Android

  1. ホーム画面を長押しして、"ウィジェット"を選択します。
  2. ウィジェットリストからアプリを見つけます。
  3. ウィジェットをホーム画面にドラッグ&ドロップします。

iOS

  1. ホーム画面を長押しして、ジグルモードに入ります。
  2. 左上隅の"+"ボタンをタップします。
  3. 名前でウィジェットを検索します。
  4. ウィジェットをホーム画面に追加します。

6.3. テストデータの更新

  • アプリの "メッセージを更新" ボタンをタップして、Back4Appから新しいデータを取得します。
  • ホーム画面のウィジェットは新しいデータで更新されるはずです。

結論

このチュートリアルでは、 home_widget パッケージを使用してFlutterでホーム画面ウィジェットを作成し、Back4Appと統合して動的データを表示する方法を学びました。これにより、ユーザーに最新の情報をホーム画面で提供し、エンゲージメントとユーザー体験を向上させることができます。

次のステップ

  • 動的データ: Back4Appのライブクエリを使用してリアルタイムデータの更新を実装します。
  • インタラクティビティ: ウィジェットにクリックアクションを追加して、アプリ内の特定のページを開きます。
  • カスタマイズ: ウィジェットをアプリのテーマやデザインに合わせてスタイルします。

追加リソース

コーディングを楽しんでください!