次の方法で共有


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

この記事では、オフラインで使用するように構成されたアプリのユーザーに最適なエクスペリエンスを作成する方法に関する推奨事項を示します。

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

キャンバス アプリで最適なオフライン ユーザー エクスペリエンスを作成する方法

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

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

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

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

オフライン アプリのロールアウトを計画する

Important

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

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

メーカーのフェーズ 1、テスト担当者向けのフェーズ 2、およびユーザーのフェーズ 3 を示す図。

フェーズ 1: 開発と反復処理

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

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

結果

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

Important

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

フェーズ 2: ユーザーによるテスト

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

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

結果

オフライン プロファイルが実際のユース ケースにスケーリングされることを確認します。 そうでない場合は、 オフライン プロファイルを最適化します

フェーズ 3: ロールアウトする

組織の残りの部分にアプリをデプロイします。

結果

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

ユーザーが必要とするデータをお見逃しなく

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

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

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

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

    Important

    ユーザーがタイムライン コントロールに 4 MB を超えるファイルをアップロードすると、データのダウンロードが遅くなる可能性があります。 ユーザーが 4 MB を超えるファイルをアップロードする必要がある場合は、パフォーマンスを向上させるために、タイムラインの代わりに Field Service または Files/Images のクイック ノート コントロールを使用します。

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

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

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

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

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

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

  • モバイル オフラインでは、フィールド レベルのセキュリティと フィールド共有を除き、モバイル アプリのセキュリティ モデルと階層型セキュリティ モデルが優先されます。

こちらも参照ください