モバイル アプリをカスタマイズする際のパフォーマンスに関する考慮事項
Dynamics 365 Field Service モバイル アプリの基礎はモデル駆動型アプリです。 したがって、一般的な 高性能アプリのガイドラインとベスト プラクティス および モデル駆動型アプリのパフォーマンスに関する考慮事項 も適用されます。
本番コードから Console.log を削除します
コンソールにデータを記録すると、コンソールが項目のクリーンアップを妨げるため、メモリの負荷が高まる可能性があります。 また、エンドユーザーが監視できる機密データが意図せずに印刷されてしまう可能性があるため、本番環境ではコンソールでデータのログを取らないことをお勧めします。 これには、console.log
、console.warn
、console.error
が含まれます。
QuickNotes を使用していない場合は、QuickNotes WebResource を削除します
QuickNotes コントロール バンドルは、Field Service 内に、PCF コントロールと Web リソースの 2 つ存在します。 QuickNotesコントロール (またはその他のコントロール) を使用しない場合は、フォームのプロパティの Web リソースからコントロールの bundle.js
(が存在する場合) を削除します。 これにより、不要なときに制御コードをダウンロードできなくなります。
このバンドルを削除するには、予約可能なリソースの予約エンティティの予約フォームと作業指示フォームでフォームのプロパティを開き、イベントタブから cc_MscrmControls.FieldControls.QuickNotesControl/bundle.js
の項目を削除します。
PCF コントロールの Office UI インポートを最小化する
インタラクティブな UI コンポーネントに @fluentui/react
ライブラリを使用している場合、インポートの定義に基づいて、意図した以上のモジュールをインポートすることができます。 コンポーネントをインポートするパスを明確にすることで、コンポーネントのサイズを大幅に小さくすることができます (結果的にダウンロードするデータの量を削減できます)。
例 :
import { Button } from '@fluentui/react'
should be written as:
import { Button } from '@fluentui/react/lib/Button';
接続されたフォームを使用して、さまざまなエンティティ間のナビゲーションを最小限に抑えます
Field Service では、フォーム上でさまざまなテーブルのデータを使用できます。 ナビゲーションのアクションが少ないほど、読み込み時間が短くなります。 フォーム コンポーネントは、簡易検索ナビゲーションを使用したシナリオと比較して、ナビゲーション時のピークメモリ値が低くなります。
詳細については、予約と作業指示書フォームの編集 を参照してください。
アプリから未使用のコントロールを削除する
アプリ ユーザーがモバイル アプリで特定のコントロールを使用していない場合は、メモリ使用量を減らすためにそれらを削除することを検討してください。 フォームに不要なコントロールがあると、アプリのメモリ消費量が増加し、パフォーマンスが低下します。 たとえば、タイムライン コントロールは、既定でいくつかのテーブルとフォームに含まれています。 シナリオがタイムラインを活用していない場合は、メモリ消費を減らすためにタイムラインを削除することを検討してください。