مقدمة

مكتمل

تكتسب الانطباعات الأولى أهمية خاصة. الانطباع الأول الذي يكوّنه مستخدمو التطبيق هو المدة الزمنية التي يحتاج إليها التطبيق لعرض الشاشة الأولى أو لتقديم تعليقات مرئية أخرى، مثل مؤشرات التقدم. أثناء بدء التشغيل، ينفذ تطبيقك عدة خطوات فِي إطار الإعداد لتقديم الشاشة الأولى: المصادقة والحصول على بيانات التعريف ومعالجة OnStart وعرض الشاشات.

لقطة شاشة لرسم تخطيطي انسيابي يوضح الخطوات فِي عملية بدء التشغيل وهي المصادقة والحصول على بيانات التعريف ومعالجة OnStart وعرض الشاشات.‬

  • المصادقة - تعالج هذه الخطوات جميع مطالبات المصادقة للاتصالات التي تم تكوينها للتطبيق. قد تؤدي إزالة الموصلات غير المستخدمة إلى تقليل عدد المطالبات وتسريع العملية.

  • الحصول على بيانات التعريف - تقوم هذه الخطوة باسترداد البيانات الوصفية، مثل إصدار النظام الأساسي Microsoft Power Apps الذي يعمل عليه التطبيق والمصادر التي يجب أن يسترد البيانات منها.

  • معالجة OnStart - تقيّم هذه الخطوة المعادلات التي قمت بإعدادها فِي خاصية OnStart. يؤدي تبسيط أداء هذه المعالجة إلى التأثير بشكل مباشر ​​على تحسين وقت تحميل التطبيق.

  • عرض الشاشات - يتم إعداد الشاشة الأولى وتقديمها للمستخدم. يتم تنفيذ معادلات OnVisible محددة أولاً. يؤدي تحسين المعادلات وتقليل عدد عناصر التحكم على الشاشة إلى تحسين وقت التحميل.

تشرح هذه الوحدة النمطية كيف يمكنك تقييم وقت تحميل تطبيقك وتحديد استراتيجيات التحسين.

تقييم وقت تحميل تطبيقك

عندما تقوم بتقييم وقت تحميل التطبيق، فإن أفضل مكان للبدء هو إنشاء خط أساس للمدة التي يستغرقها تحميل تطبيقك. ويمكنك إنجاز هذه الهامة عن طريق قياس وقت بدء التشغيل اعتباراً من بدء تشغيل التطبيق وصولاً إلى الوقت الذي تعتقد فيه أن لديك تطبيقاً قابلاً للاستخدام. استخدم ساعة توقيت لقياس الوقت اعتباراً من وقت بدء تشغيل التطبيق وصولاً إلى الوقت الذي تعتقد فيه أنه بإمكان أحد الأشخاص بدء استخدامه. تتم مناقشة الأدوات التي يمكنك استخدامها لقياس تفاصيل الأداء والتعمق فيها أثناء وقت التحميل لاحقاً هذه الوحدة النمطية. من المستحسن إجراء تقييم جديد مع كل تحديث للتطبيق بحيث يمكنك مقارنة الإصدار الجديد بخط الأساس السابق ثم تحديد الزيادات الملحوظة فِي وقت التحميل.

يساعدك قياس وقت بدء التشغيل فِي الحصول على توقيتات فعلية؛ ومع ذلك، يجب أن تفكر فِي مراقبة المستخدمين وسؤالهم عن تصورهم لأداء التطبيق. في بعض الأحيان، قد تحصل على تطبيق يتم تحميله فِي غضون ثوانٍ قليلة، ولكن قد يلاحظ المستخدمون أن هذا الوقت أطول بكثير لأنهم لا يعتبرون التطبيق قابلاً للاستخدام حتى الآن. على سبيل المثال، قد تحدث هذه الحالة لأن التطبيق، بعد عرض الشاشة الأولى، يستمر فِي تحميل البيانات وتحديث المعلومات على الرغم من تفاعل المستخدمين معه بالفعل. تختلف الأساليب المتبعة لحل هاتين المشكلتين. إذا كنت تحاول تحسين وقت التحميل، فيمكنك عادةً الحصول على بيانات إلزامية تشير إلى المكان حيث يمضي التطبيق الكثير من الوقت. وإذا كنت تحاول تحسين ادراك المستخدم، فأنت بحاجة إلى مراقبة الشخص الذي يستخدم التطبيق لفهم كيفية استخدامه له والتغييرات التي قد تحسن إدراكه. بإمكان التغييرات البسيطة أن تساعد على تحسين الإدراك، مثل إضافة مطالبات نصية لبدء التفاعل أو تغيير شاشة بدء التشغيل للاستمرار وإعادة تحميل السجلات الأحدث.

بشكل عام، سوف تكتشف المكونات التي تبطئ أداء التطبيق من خلال عرض خاصية OnStart التابعة للتطبيق أو خاصية OnVisible للشاشة الأولى. من خلال تحسين العمل الذي يتم تنفيذه فِي هذه الخصائص أو تأجيله، يمكنك تسريع وقت التحميل. سيتم شرح بعض هذه الأساليب لاحقاً فِي هذه الوحدة النمطية.

إذا عرضت تحليلات لتطبيقك من maker portal، فستتضمن تحليلات الوقت إلى الشاشة الأولى‬ والوقت إلى الشاشة الأولى بدون إعداد الاتصال‬.

لقطة شاشة لتحليلات التطبيق

يتم توفير البيانات لآخر 30 يوماً الماضية وبإمكانها أن تكون مفيدة فِي توفير ملخص لأداء تطبيقك.

تشكّل أداة المراجعة فِي Power Apps خياراً آخر لتقييم التطبيقات. تم تجميع هذه الأداة مفتوحة المصدر كحل يمكنك استيراده إلى بيئتك فِي Microsoft Dataverse. وبعد استيراد الأداة، يمكنك استخدامها لتقييم التطبيقات فِي بيئتك. يمكنك تحميل ملفات .msapp أيضاً لتقييمها. بإمكان المراجعة التلقائية أن تتحقق من تطبيقك مقابل قائمة تحقق قابلة للتخصيص تتضمن أفضل الممارسات، ويمكنها أن تتعرّف على مشاكل شائعة كثيرة يمكنها التأثير على وقت بدء تشغيل التطبيق والأداء العام لتطبيقاتك. بعد اكتمال المراجعة التلقائية، يمكنك عرض قائمة تُظهر الأماكن التي يتميز فيها تطبيقك بأداء جيد والعناصر القابلة للتنفيذ حيث يمكن تحسينه.

لقطة شاشة لقائمة التحقق الخاصة بمراجعة التعليمات البرمجية التي تقوم أداة المراجعة فِي Power Apps بإنشائها.

بالإضافة إلى عرض النتائج فِي التطبيق، يمكنك إرسال النتائج بالبريد الإلكتروني، وقد يكون هذا مفيداً إذا لم تكن أنت منشئ التطبيق.

تتضمن القواعد الشائعة التي تستطيع الأداة التحقق منها والتي يمكنها التأثير على وقت بدء التشغيل:

  • استخدام الدالة Concurrent - يمكنك استخدام الدالة Concurrent لطلبات البيانات المستقلة المتوازية.

  • علامات إعدادات التطبيق - راجع إعدادات التطبيق. تأكد من تشغيل التحميل المؤجل وتحديد الأعمدة الصريح.

  • التفويض - تأكد من أنه يمكن تفويض العمليتين ClearCollect وFilter.

  • تحسين الأصول - مراجعة ضغط الأصول المضمنة/تحسين حجم الأصول.

  • استراتيجية تحميل البيانات - راجع استراتيجية تحميل البيانات OnStart وOnVisible. تجنب استدعاءات البيانات فِي OnStart. انتقل إلى OnVisible متى أمكن. تأكد من أن استدعاءات البيانات الهامة فقط تمنع تفاعل المستخدم مع واجهة المستخدم أثناء التحميل الأولي للشاشة الرئيسية.

  • التبعيات عبر الشاشة - تأكد من أن عناصر واجهة المستخدم المتكررة مغلفة فِي المكونات (على سبيل المثال، القوائم والرأس والتذييل).

مراجعة إعدادات تطبيقك

بإمكان إعدادات التطبيق أن تكون ذات تأثير كبير على أداء التطبيق؛ وبالتالي، تأكد من مراجعة إعدادات التطبيق وحالة تمكينها مع كل تحديث للتطبيق. قد لا تكون أحدث خيارات إعدادات التطبيق ممكّنة بشكل تلقائي فِي التطبيقات القديمة للتأكد من أن الخيار الجديد لا يعطّل التطبيقات الحالية. ربما قمت أيضاً بتمكين أحد الإعدادات لمحاولة حل مشكلة ولكنك نسيت بعد ذلك إيقاف تشغيل الإعداد عندما أنهيت عملك. هناك مثال جيد عن هذا السيناريو وهو الخيار تصحيح أخطاء التطبيق المنشور. يؤدي تمكين هذا الخيار إلى السماح بعرض المزيد من معلومات تصحيح الأخطاء عندما تستخدم مراقب التطبيق لاستكشاف أخطاء التطبيق المنشور وإصلاحها. قد يؤدي هذا الخيار، عند تمكينه، إلى إلحاق الضرر بالأداء ولا يجب أن يبقى قيد التشغيل لاستخدامه فِي الإنتاج.

لقطة شاشة لشاشة

هناك إعداد آخر يجب أخذه فِي الاعتبار وهو حد صف البيانات. يحدّد هذا الإعداد معظم الصفوف التي سيتم استردادها من اتصال قائم على الخادم عندما لا يكون التفويض مدعوماً. هذه القيمة هي 500 بشكل افتراضي، ويمكنها أن تكون أي قيمة بين 1 و2,000. لحل مشاكل التفويض فِي التطبيقات، يقوم المستخدمون عادةً بزيادة هذه القيمة. قد تتسبب هذه الزيادة فِي مشاكل غير متوقعة عندما تحتفظ بيئة التطوير بمجموعات بيانات أصغر بكثير من تلك التي تحتفظ بها بيئة التشغيل. على سبيل المثال، عند تعيين حد صف البيانات إلى 2,000، قد يقوم التعبير التالي فِي حد صف البيانات بإجراء تحميل مسبق لصفوف قليلة فِي بيئة تطوير.

ClearCollect(colDesks,Desks)

بإمكان التطبيق نفسه فِي بيئة تشغيل تحتوي على مجموعة بيانات معبأة بالكامل استرداد 2000 صف بالكامل. ونتيجة لذلك، سيتم تحميل التطبيق بشكل أبطأ بكثير فِي بيئة التشغيل مقارنةً ببيئة التطوير. غالباً ما يكون العمل على إزالة تحذيرات التفويض أسلوباً أفضل من زيادة هذه القيمة.

في التطبيقات القديمة، قد يكون الإعداد تمكين وظيفة التنقل فِي App.OnStart ممكّناً. يسمح لك هذا الإعداد باستخدام الدالة Navigate() فِي الخاصية App.OnStart، ولكن النتائج فِي الشاشة الأولى لن تظهر حت يتم تقييم جميع التعبيرات فِي App.OnStart. هذا الأسلوب غير مسموح به فِي التطبيقات الأحدث، وستحتاج إلى استخدام الخاصية App.StartScreen بدلاً من ذلك. ستتم مناقشة الخاصيتين OnStart وStartScreen بشكل معمق لاحقاً فِي هذه الوحدة النمطية. إذا تم تمكين هذا الإعداد فِي تطبيقك، فيمكنك التحديث إلى الأسلوب الجديد وتعطيل الإعداد، مما قد يؤدي إلى تحسين أوقات التحميل.

بالإضافة إلى الإعدادات التي تم ذكرها فِي وقت سابق، تتضمن فئة الميزات القادمة إعدادات أكثر من تلك التي يجب مراجعتها. هناك ثلاثة أقسام فِي هذه الفئة: إصدار أولي وتجريبي ومستبعَد‬.

تبدأ الإعدادات الجديدة فِي الوضع تجريبي وتتدرّج إلى وضع الإصدار الأولي عندما تكتمل. تسمح لك الميزات التجريبية بتجربة ميزة جديدة ولكنها غير مخصصة لتطبيقات الإنتاج. وتكون هذه الميزات متوقفة عن التشغيل بشكل افتراضي، ويجب عليك تمكينها. لقد تم الاستثمار بشكل كبير فِي تحسين أداء التطبيق، لذا عليك الاستمرار فِي مراقبة هذه الناحية للتعرف على الميزات القادمة.

يتم عادةً تشغيل الإعدادات فِي القسم إصدار أولي بشكل افتراضي للتطبيقات الجديدة. توجد هذه الميزات فِي مراحل الاختبار الأخيرة قبل أن تصبح إعدادات قياسية يتم تمكينها لجميع التطبيقات. بالنسبة للتطبيقات الموجودة، عليك الاشتراك لتمكين هذه الإعدادات إذا كنت ترغب فِي استخدامها. وفي بعض الحالات، قد يتطلب الاشتراك تغييرات طفيفة فِي استخدام المعادلة.

إذا كنت تعمل على حل مشكلة تتعلق بالأداء، فقد يوفر اختبار بعض الميزات القادمة نتيجة تحليلات حول ما إذا كانت ستساعد فِي معالجة التحديات التي تواجهك. إذا كان الأمر كذلك، فقد يكون انتظار اكتمال الميزات بديلاً لإعادة الهيكلة من دون الاستفادة منها.

الحدود والقيود

يمكن أن يكون لكل موصل حده الخاص من البيانات المستردة والتقييد. علاوةً على ذلك، يتم وضع حدود حماية الخدمة على مستوى النظام الأساسي. تأكد من أنك على دراية بهذه الحدود للموصلات التي تستخدمها فِي تطبيقك. قد تُظهر التطبيقات التي تواجه هذه الحدود أثناء بدء التشغيل حالة من البطء فِي تحميل التطبيق.

استخدام صورة تحميل

من شأن استخدام صورة تحميل أو مؤشر تقدم أثناء العمليات الطويلة فِي تطبيقك أن يؤدي إلى تحسين إدراك المستخدم.

لقطة شاشة لصورة متحركة بتنسيق GIF تعرض رسالة الدائرة الدوّارة

إن أبسط طريقة لاستخدام صورة تحميل أثناء تحميل تطبيقك هي استخدام مكون يحتوي على صورة دوّارة. يمكنك العثور على صورة مُنشأة مسبقاً فِي مستودع GitHub لأدوات Power Apps. ويمكنك استيراد هذا المكون ووضعه على شاشتك الأولية فوق عناصر التحكم الأخرى. بعد ذلك، يمكنك استخدام متغير للتحكم فِي رؤية المكون. تُظهر الصورة التالية مثالاً لتعيين الخاصية visible إلى قيمه متغير showLoader.

لقطة شاشة لخاصية Visible لعنصر التحكم preloader التي تم تعيينها إلى المتغير showLoader.

بعد ذلك، فِي App.OnStart، يمكنك تشغيل صورة التحميل قبل تحميل البيانات، ثم يمكنك إيقاف تشغيل الصورة بعد تحميل البيانات.

Set(showLoader, true);

ClearCollect(colDesks, Desks);

ClearCollect(colDeskFeatures, 'Desk Features');

Set(showLoader, false);

لقطة شاشة لخاصية App.OnStart تم تعيينها إلى Set(showLoader, true); ClearCollect(colDesks, Desks); ClearCollect(colDeskFeatures,'Desk Features'); Set(showLoader, false.

على الرغم من أن استخدام صورة تحميل لا يؤدي إلى تسريع تطبيقك، إلا أنه يوفر تعليقات مرئية ويساعد المستخدم على فهم أن التطبيق يعمل فِي الخلفية.

يستكشف الجزء المتبقي من هذه الوحدة النمطية أساليب أخرى لتحديد أداء تحميل التطبيق وتحسينه.