導入

完了

第一印象は重要です。 アプリ ユーザーが受ける第一印象とは、アプリが最初の画面を表示したり、進行状況インジケーターなどの他の視覚的なフィードバックにかかる時間の長さです。 起動中に、アプリは最初の画面での表示を準備するためにいくつかのステップを実行します: 認証、メタデータの取得、OnStart 処理、画面表示。

認証、メタデータの取得、OnStart 処理、画面表示の起動プロセスのステップを示すフロー ダイアグラムのスクリーンショット。

  • 認証 - アプリに対して構成された接続を求めるすべての認証プロンプトを処理します。 実際に使用していないコネクタを削除することで、プロンプトの数を削減し、プロセスを迅速化できます。

  • メタデータの取得 - アプリが実行される Microsoft Power Apps プラットフォームのバージョン、およびアプリがデータを取得する必要のあるソースなどのメタデータを取得します。

  • OnStart 処理 - OnStart プロパティで設定した式を評価します。 この処理のパフォーマンスを合理化すると、アプリの読み込み時間の改善に直接的な影響を与えます。

  • 画面表示 - 最初の画面が準備され、ユーザーに表示されます。 指定した OnVisible の式が最初に実装されます。 式を最適化し、画面のコントロールの数を最小限に抑えることにより、読み込み時間を向上できます。

このモジュールでは、アプリの読み込み時間を評価し、改善のための戦略を特定する方法を説明します。

アプリの読み込み時間の評価

アプリの読み込み時間を評価する際に、最初に実行すると良いのは、アプリの読み込みにかかる時間のベースラインを設定することです。 アプリケーションの起動からユーザーがアプリを使用可能になると思われるタイミングまでの起動時間を測定することで、このタスクを実行できます。 ストップウォッチを使用して、アプリの起動からユーザーがアプリを使用可能になると思われるタイミングまでを測定します。 測定および読み込み時間中のパフォーマンスの詳細の確認のためのツールは、このモジュールの後半で説明します。 各アプリの更新を使用して新しい評価を実施し、新しいバージョンと以前のベースラインを比較して、読み込み時間の有意な増加を識別することをお勧めします。

起動時間を測定すると、実際のタイミングを把握するのに役立ちます。ただし、アプリのパフォーマンスに対するユーザーの認識を観察し、確認することを検討してください。 アプリが数秒で読み込まれることもありますが、ユーザーはそれより長いと認識する可能性があります。ユーザーがアプリをもう使用できるようになったと考えないことがその理由です。 たとえば、最初の画面を表示した後にアプリがデータの読み込みと情報の更新を続行する場合、ユーザーが既にデータを操作していても、このような状況が発生する可能性があります。 これら 2 つの問題では解決へのアプローチが異なります。 読み込み時間を改善しようとする場合は、通常、アプリで時間がかかっている場所を示す必須データを取得します。 ユーザーの認識を改善する場合は、アプリを使用するユーザーを観察して、ユーザーのアプリの使用方法とその認識を向上するための変更内容を把握します。 操作を開始するテキスト プロンプトを追加したり、最新のレコードを保持して再読み込みするように開始画面を変更したりするなど、小さな変更が認識を改善するのに役立ちます。

通常、アプリの OnStart プロパティまたは最初の画面の OnVisible プロパティを表示すると、アプリの速度を下げているコンポーネントが見つかります。 これらのプロパティで実行される作業を最適化または延期することで、読み込み時間を迅速化できます。 これらのテクニックのいくつかは、このモジュールで後半で説明します。

アプリの分析をメーカー ポータルから表示する場合は、最初の画面までの時間の分析および接続設定のない最初の画面までの時間の分析が含まれます。

アプリ分析の「最初の画面までの時間」および「接続設定のない最初の画面までの時間」の設定のスクリーンショット。

このデータは直近の 30 日間分が表示され、アプリのパフォーマンスの概要を提供する際に役立ちます。

Power Apps レビュー ツール は、アプリケーションを評価するためのもう 1 つのオプションです。 このオープンソース ツールは、Microsoft Dataverse 環境にインポートできるソリューションとしてパッケージ化されています。 ツールをインポートすると、このツールを使用して、環境内のアプリを評価できます。 評価用の .msapp ファイルをアップロードすることもできます。 自動レビューでは、ベスト プラクティスのカスタマイズ可能なチェックリストに対してアプリを検査できます。また、アプリの起動時間や一般的なパフォーマンスに影響する可能性がある多くの一般的な問題を特定できます。 自動レビューが完了すると、アプリが正常に機能している部分、および改善の余地がある部分でのアクション可能な項目を示すリストを表示できます。

Power Apps レビュー ツールによって生成されたコード レビュー チェックリストのスクリーンショット。

アプリでの結果の表示に加えて、結果をメールで送信することもできます。これは、アプリの開発者ではない場合に役立ちます。

起動時間に影響を与える可能性があることをツールが検査できる一般的なルールを次に示します。

  • Concurrent 関数の使用 - 並行処理独立データ要求に対して Concurrent 関数の使用を検討します。

  • アプリ設定フラグ - アプリ設定をレビューします。 [遅延読み込み] と [明示的な列の選択] がオンになっていることを確認します。

  • 委任 - ClearCollect および Filter 操作が委任可能であることを確認します。

  • 資産の最適化 - 埋め込み資産の圧縮/サイズの最適化をレビューします。

  • データ読み込み戦略 - OnStart および OnVisible データ読み込み戦略をレビューします。 OnStart でのデータ呼び出しを回避します。 可能な場合は OnVisible に移動します。 重要なデータ呼び出しのみが、ホーム画面の最初の読み込み時に UI によってユーザー操作をブロックすることを確認します。

  • 画面間の依存関係 - 繰り返す UI 要素がコンポーネント (メニュー、ヘッダー、フッターなど) にカプセル化されている必要があります。

アプリの設定のレビュー

アプリ設定は、アプリのパフォーマンスに大きな影響を与える可能性があります。したがって、各アプリの更新で、アプリの設定と有効な状態を確実にレビューします。 古いアプリでは、新しいオプションが既存のアプリを壊さないよう、最新のアプリ設定オプションが自動的に有効化されていない可能性があります。 また、問題の解決を試みるために設定を有効化した後、完了後に設定をオフにし忘れた可能性があります。 そのシナリオの例としては、公開されたアプリのデバッグ オプションがあります。 このオプションを有効にすると、公開されたアプリのトラブルシューティングのためにアプリ モニターを使用する際に表示されるデバック情報を詳細に表示できます。 このオプションを有効にすると、パフォーマンスが低下する可能性があるため、運用環境での使用ではオンのままにしないでください。

全般オプションが強調表示された「公開されたアプリのデバッグ」画面のスクリーンショット。

検討すべきもう 1 つの設定は、データ行の制限です。 この設定により、委任がサポートされていない場合にサーバーベースの接続から取得される最大行数が決定されます。 既定では、この値は500ですが、1 から 2,000 までの値を指定できます。 アプリで 委任の問題 を回避するには、この値を増やすことが一般的です。 この値を増やすことで、開発環境のデータセットの数が運用環境よりも大幅に少ない場合に、予期しない問題が発生する可能性があります。 たとえば、データ行の制限を 2,000 に設定すると、データ行の制限の次の式は開発環境において少数の行のみを事前に読み込む可能性があります。

ClearCollect(colDesks,Desks)

運用環境では同じアプリが完全に入力済みのデータセットにより、2,000 行すべてを取得できます。 その結果、運用環境でのアプリの読み込み速度は開発環境よりもはるかに遅くなります。 多くの場合、委任の警告を排除する作業は、この値を増やすよりも優れた方法です。

古いアプリでは、App.OnStart の Navigate 関数を有効にする設定が有効になっている場合があります。 この設定を使用すると、App.OnStart プロパティの Navigate() 関数を使用できますが、App.OnStart のすべての式が評価されるまで、最初の画面が表示されなくなります。 最近のアプリでは、このアプローチは許可されていません。そのため、代わりに App.StartScreen プロパティを使用する必要があります。 OnStart プロパティと StartScreen プロパティについては、このモジュールの後半で説明します。 アプリでこの設定が有効になっている場合は、新しいアプローチへの更新と設定の無効化を検討することで、読み込み時間が短縮されます。

前述の設定に加えて、今後追加予定の機能カテゴリにはレビューが必要な設定がさらにあります。 このカテゴリには、プレビュー試験段階廃止済みの 3 つのセクションがあります。

新しい設定は、試験段階として始まり、成熟するに従ってプレビューになります。 試験段階の機能によって、新しい機能を試すことができますが、運用環境でのアプリ向けのものではありません。 これらの機能は既定で無効になっているため、有効にする必要があります。 アプリのパフォーマンス改善に対して多額の投資が行われていますので、今後追加予定の機能のこの領域を引き続き見守ってください。

通常、プレビュー セクションの設定は、新しいアプリに対して既定で有効になっています。 これらの機能は、すべてのアプリに対して有効な状態が標準設定となる前のテストの最終段階にあります。 既存のアプリに対して、これらの設定を使用する場合は、有効化を選択する必要があります。 場合によっては、選択によって式の使用に若干の変更が必要となる可能性があります。

パフォーマンスの問題に取り組む場合は、今後追加予定の機能のいくつかをテストすることで、これらの機能が課題に対応するかどうかのインサイトが得られる可能性があります。 この場合は、機能が成熟するのを待つことが、ベネフィットなしに再調整を行うことへの代替策となる可能性があります。

制限と調整

各コネクタには、取得されたデータおよび調整に関して独自の制限を設定できます。 また、サービス保護制限 は、プラットフォーム レベルで設定されています。 アプリで使用するコネクタに対して、これらの制限を確実に認識します。 起動時にこれらの制限が発生したアプリでは、アプリの読み込み速度の低下を示している可能性があります。

読み込み画像の使用

長い操作中にアプリで読み込み画像または進行状況インジケーターを使用することで、ユーザーの認識を改善できます。

長い読み込み操作を示す回転する円の読み込みメッセージを表示するアニメーション GIF のスクリーンショット。

アプリの読み込み中に読み込み画像を使用する最も簡単な方法は、回転する画像を含むコンポーネントを使用することです。 Power Apps のツールである GitHub リポジトリ には、事前にビルドされた画像があります。 このコンポーネントをインポートして、最初の画面でその他のコントロールの上部に配置できます。 その後、変数を使用してコンポーネントの可視性をコントロールできます。 次の図は、showLoader 変数の値に対して表示されるプロパティの設定例を示しています。

showLoader 変数に設定されたプリロード コントロールの Visible プロパティのスクリーンショット。

その後、App.OnStart でデータを読み込む前に読み込み画像を有効にしてから、データが読み込まれた後で画像を無効にできます。

Set(showLoader, true);

ClearCollect(colDesks, Desks);

ClearCollect(colDeskFeatures, 'Desk Features');

Set(showLoader, false);

Set(showLoader, true); ClearCollect(colDesks, Desks); ClearCollect(colDeskFeatures,'Desk Features'); Set(showLoader, false) に設定された App.OnStart プロパティのスクリーンショット。

読み込み画像を使用してもアプリケーションの速度は向上しませんが、視覚的なフィードバックが提供されるため、バックグラウンドでアプリが機能しているとユーザーの理解するのに役立ちます。

このモジュールの残りの部分では、アプリの読み込みパフォーマンスを特定および改善するための他のテクニックを紹介します。