オフライン使用に対応したアプリを開発するベストプラクティス

この記事では、オフライン使用向けに構成されたアプリのユーザーに最適なエクスペリエンスを実現するための推奨事項を示します。

  • キャンバス アプリをオフラインで使用するように構成する場合は、アプリが データ ソース からデータを取得する方法を最適化する必要があります。 詳細はこちら: キャンバス アプリで最高のオフライン ユーザー エクスペリエンスを実現する方法
  • アプリがオフラインで機能するには、ネットワーク接続に依存せずに動作するために必要なすべてのアセット (リソースやデータなど) を最初にダウンロードする必要があります。 このプロセスは、アプリを初めて使用するときに実行される1回限りのセットアップ タスク です。 この初期ダウンロードの速度は、デバイスにダウンロードされるデータの量によって影響を受けます。これは、オフライン プロファイル設定と、アプリの 環境 内でユーザーが利用できるデータの量によって決まります。 シームレスな初期エクスペリエンスを実現するには、 オフライン アプリの展開を計画することをお勧めします

キャンバス アプリで最高のオフライン ユーザー エクスペリエンスを実現する方法

特定のシナリオで高速なユーザー エクスペリエンスを実現するには、次の推奨事項を使用します。

シナリオ 推奨されないアプローチ 推奨される方法
関連するテーブルの情報をギャラリーに表示します。 検索を使用してデータを取得します。 関連テーブルの列を含むビューを使用します。
多数のレコードを含むフィルター処理が可能なギャラリーを作成します。 Dataverse からレコードを読み込み、コレクションに保存します。 ギャラリーの項目をフィルター処理されたコレクションに設定します。 ギャラリーの項目を Dataverse でフィルター処理されたデータに直接設定します。
複数のレコードを更新します。 レコードをループし、個別にパッチを適用します。 すべての変更を含むコレクションに一括パッチを適用します。

モニターを使用してモバイル オフライン キャンバス アプリを診断する

モニターは、アプリの実行中にアプリで発生するすべての主要なアクティビティをログに記録することで、アプリが何をどのように実行するかについて詳細なビューを作成者に提供するツールです。 接続 モバイル アプリ セッションをモニター して、問題をより迅速に診断およびトラブルシューティングできます。

オフラインアプリの展開を計画する

重要

自動生成されたオフライン プロファイル (キャンバス アプリでのみ使用可能) を使用しており、最初の同期に時間がかかりすぎる場合は、次のベスト プラクティスを使用して手動のオフライン プロファイルを作成する必要があります。

オフライン アプリを3つのフェーズで開発して展開します。

メーカー向けのフェーズ 1、テスター向けのフェーズ 2、ユーザー向けのフェーズ 3 を示す図。

フェーズ1: 開発と反復

キャンバス アプリ用にモバイル オフラインを設定 するか モデル駆動型アプリ用にモバイル オフラインを設定 したら、テストと調整を開始します。 Power Apps モバイル または Field Service Mobile を使用して、オフライン時のアプリの動作を決定します。 Windowsの場合、モバイル デバイスを必要とせずに反復処理を実行できる Power Apps Windows用 アプリがMicrosoft Storeにあります。

このフェーズでは、テーブルを追加し、既存のテーブルにフィルターを適用して、 オフライン プロファイルを最適化 するためのガイドラインに従って、適切なデータがアプリにダウンロードされるようにします。

結果

データのダウンロード後にすべてのテーブルとフォームがオフラインで動作し、ダウンロード サイズが適切であることを確認します。

重要

モデル駆動型アプリのメタデータは、アプリの起動時に取得されます。 つまり、フォーム コンポーネントやビューなどのアプリ内のコンポーネントを変更した場合、プロファイルに変更を反映するにはアプリを再起動する必要があります。

フェーズ2: ユーザーとのテスト

数人のユーザーに、実際のデータでアプリをテストするように依頼します。 オフライン プロファイルが、さまざまなタイプのユーザーに対応し、さまざまなストレージ容量を持つデバイスで動作することを確認します。 各ユーザーの デバイス ステータス ページ (モデル駆動型アプリではすぐに使用可能) を確認します。 詳細については、「 オフライン テンプレートとオフライン ステータス アイコンの使用」を参照してください。 オフラインプロファイルのフィルターを調整して、ダウンロードされるデータ量を調整します。

ダウンロードが成功した後のモバイル アプリのオフライン ステータス ページのスクリーンショット。

結果

オフライン プロファイルが実際の使用ケースに合わせて拡張できることを確認します。 そうでない場合は、 オフライン プロファイルを最適化します

フェーズ 3: 展開

アプリを組織の他の部分に展開します。

結果

ロールアウト内の各クラスのユーザーが正常に同期し、オフラインで作業できることを確認します。

ユーザーが必要とするデータを見逃さない

ユーザーが必要なすべてのデータを持っているかどうかをテストします。 アプリがオンラインのときと、オフラインのときに利用できるデータを比較します。 デバイスを機内モードにした状態で、ビューとフォームがオンラインの Web ブラウザと同じデータが表示されることを確認します。 違いがある場合は、ビューのフィルターを調整するか、オフライン プロファイルのフィルターを調整してください。

  • ビジネス プロセス フロー: フォームに ビジネス プロセス フロー が含まれている場合は、必ず ビジネス プロセス フロー テーブルを追加してください。 詳細については、 サポートされている機能 を参照してください。

  • ファイルと画像: オフライン プロファイルにファイルと画像が含まれている場合は、それらのテーブルを追加します。 詳細については、「 オフラインのモデル駆動型アプリでファイルと画像を構成する 」または「 オフラインのキャンバス アプリでファイルと画像を構成する」を参照してください。 カスタム フィルターを使用して、重要なファイルのダウンロードを制限します。

  • タイムライン: タイムライン コントロール (モデル駆動型アプリのみ) のメモをオフラインで使用できるようにするには、 Notes テーブルと Users テーブルをオフライン プロファイルに追加します。 ユーザーが画像や動画をアップロードするとメモのサイズが大きくなる可能性があるため、ダウンロード時間を制限するために、 メモ テーブルにカスタム フィルターを適用します。

    重要

    4 MB 以上のファイルをタイムライン コントロールにアップロードした場合、データのダウンロードが遅くなる場合があります。 ユーザーが 4 MB 以上のファイルをアップロードする必要がある場合、タイムラインの代わりに Field Service または ファイル/画像 のクイック メモ コントロールを使用すると、パフォーマンスが向上します。

モバイルオフライン同期に関するヒント

  • モバイル デバイスとのモバイル オフライン同期は定期的に行われます。 同期サイクルは、Azure ネットワークの待ち時間、同期に設定されたデータ量、モバイル ネットワークの速度に応じて、数分の間継続することができます。 ユーザーは同期中でもモバイル アプリを引き続き使用できます。

  • 初期メタデータのダウンロードにかかる時間は、オフラインで構成されたアプリ モジュール内のテーブルの合計数によって決まります。 エンドユーザーのエクスペリエンスを最適化するために必要なテーブルとアプリ モジュールのみをオフライン用に構成するようにしてください。

  • オフラインで作業するビューが、オフライン使用用に構成されていないテーブルを参照していないことを確認します。 たとえば、 アカウント がオフライン プロファイル内にあると仮定すると、 連絡先 がプロファイル内にない場合に主な連絡先を参照する アカウント ビューは使用できません。

  • ユーザーのセキュリティ特権に対する変更は次の同期サイクル中に更新されます。 それまでは、ユーザーは以前のセキュリティ権限に従ってデータにアクセスし続けることができますが、行った変更は、サーバーへの同期中に検証されます。 行を変更する権限がない場合は、エラーが通知され、行の作成、更新、削除は行われません。

  • 行を表示する権限に対する変更は、次の同期サイクルまでモバイル デバイスでは有効になりません。

  • Mobile Offlineは、 フィールド レベルのセキュリティとフィールドの共有 を除き、モバイル アプリのセキュリティ モデルと階層型セキュリティ モデルを尊重します。

参照