عبدالله محمدمهندس برمجيات أول
كل الأعمال

تحسين أداء وترحيل منصّات على تطبيقات حيّة

IMOX و YOLO

DIB GmbH · مهندس منتج

تطبيقان حيّان في شركة واحدة خلال عام: زمن إقلاع بارد انخفض من نحو 5–6 ثوانٍ إلى 0.5–1.5 ثانية، وترحيل روابط عميقة اكتمل قبل إيقاف خدمة Firebase، وتطبيق عيادات أصغر بنسبة 41%.

6 ث ← 1.5 ثزمن إقلاع IMOX
41%تقليل الحجم (86 → 51 ميجا)
3 دولعيادات تعمل بـ YOLO
+10مزايا سُلّمت للعميل

التحدي

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

ما كان عليه أن يحققه

  • لا إعادة كتابة: للتطبيقين مستخدمون، وكل تغيير يجب أن يصمد في إصدار على المتجر
  • مقاطع IMOX يجب أن تعمل لحظة فتح التطبيق
  • ترحيل الروابط العميقة قبل موعد إيقاف Firebase Dynamic Links — بما فيها الروابط المؤجلة واستمرارية الإسناد
  • YOLO: تطبيق عيادات واحد للموارد البشرية والمواعيد والمرضى والمخزون والفوترة، في عيادات بثلاث دول

دوري

مهندس منتج على التطبيقين — مسؤول عن عمل الأداء، وترحيل الروابط العميقة والتحليلات، وسلسلة من المزايا المطلوبة من العميل.

كيف بنيته

  • إعادة تصميم التحميل المسبق للمقاطع في IMOX: تجهيز أول مقطعين فقط عند شاشة البداية، ثم جلب المقطعين التاليين بعد الإقلاع، ثم ترقيم عشرة مقاطع في كل دفعة مع صفحة احتياطية واحدة.
  • ترحيل الروابط العميقة من Firebase Dynamic Links المتوقّفة إلى Airbridge — بما فيها الروابط العميقة المؤجّلة — مع الحفاظ على استمرارية الإسناد قبل موعد الإيقاف، ودمج هوية Mixpanel وأحداثه ومساراته.
  • تقليل حجم تثبيت YOLO بنسبة 41%، من 86 ميجابايت إلى 51، عبر تحسين البناء وضغط الأصول ومراجعة الاعتماديات.
  • تسليم أكثر من 10 مزايا طلبها العميل في جدولة المواعيد والموارد البشرية وسجلات المرضى والمخزون، لمنصّة تعمل في عيادات بمصر وألمانيا والإمارات.

القرارات، ولماذا

اضبط ميزانية التحميل المسبق، لا مسار الفيديو

تطبيق المقاطع بطيء عند الإقلاع لأنه يجلب أكثر مما يحتاج قبل أن يعرض شيئًا، لا لأن فكّ الترميز بطيء. تجهيز مقطعين بالضبط عند شاشة البداية هو أقل قدر يسمح بالتمرير فورًا؛ والمقطعان التاليان يصلان بعد أول رسم، ثم تكفي دفعة من عشرة مع صفحة احتياطية واحدة لإبقاء التمرير سابقًا للمستخدم دون تنزيل خلاصة لن يشاهدها أحد. النتيجة — من نحو 6 ثوانٍ إلى أقل من 1.5 — جاءت من تحديد ما لا يُحمَّل.

رحّل الروابط العميقة مبكرًا، واحمل معك المؤجّلة

كان لخدمة Firebase Dynamic Links موعد إيقاف معلن، أي أن الترحيل سيحدث إمّا قبله أو أثناء انقطاع. والجزء الذي يسهل إغفاله هو الروابط العميقة المؤجّلة — حين ينقر أحدهم رابطًا ثم يثبّت التطبيق ويجب أن يصل إلى ما نقر عليه. هذا المسار لا يظهر في الاختبار حتى يفشل تثبيت حقيقي، فنُقل عمدًا بدل اكتشافه لاحقًا، وبقي الإسناد متّصلًا عبر التبديل.

راجع الاعتماديات قبل ضغط الأصول

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

التقنيات

  • Flutter
  • Airbridge
  • Mixpanel
  • Firebase
  • تحليل الأداء

من داخل المنتج

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

شاشة الاستكشاف في IMOX: شريط تصنيفات جانبي (أزياء، تجميل، إلكترونيات، بقالة)، وصفوف منتجات — أحذية رجالية ونسائية وإكسسوارات — كلٌّ بصورة وسعر بالجنيه المصري.
واجهة الاستكشاف: التصنيفات في جانب، وصفوف المنتجات بأسعارها، فوق كتالوج قائم على مقاطع الفيديو القصيرة.
شاشة التفاعل في IMOX: مقطع فيديو قصير بملء الشاشة لفنيّ أثناء العمل، وبطاقة منتج فوقه تعرض الخدمة نفسها، مع شريط جانبي لأزرار التفاعل.
المقطع نفسه هو واجهة البيع — يُعرض بملء الشاشة وما يظهر فيه قابل للشراء من البطاقة فوقه. هذه هي الشاشة التي كان لا بد من تقليل زمن إقلاعها.
موديول الموارد البشرية في YOLO: قائمة موظفين بحقل بحث، وصفوف تعرض الصورة والاسم الأول والأخير وقائمة أدوار مضبوطة على مشرف أو طبيب.
موديول الموارد البشرية في YOLO: سجلات الموظفين وأدوارهم — واحد من خمسة مجالات (موارد بشرية، مواعيد، مرضى، مخزون، فوترة) داخل تطبيق عيادات واحد.
تفاصيل الموعد في YOLO: تبويبات لنظرة عامة والخدمات والسجلات الطبية والمدفوعات، فوق نموذج بيانات المريض: الاسم والنوع وتاريخ الميلاد وحقل هاتف دولي وحقل عنوان مع بحث Google.
تفاصيل الموعد، وسجلّ المريض الطبي والمالي على بُعد تبويب — وحقل عنوان موصول ببحث Google، لأن العيادات موزّعة على ثلاث دول.
موديول إدارة العلاقات في YOLO: قائمة مرضى قابلة للبحث، يتوسّع كل صف فيها ليعرض اسم المريض ورقم هاتفه.
الجانب الإداري: السجلات نفسها، بالطريقة التي يبحث بها موظفو الاستقبال فعلًا.

تبني شيئًا مشابهًا؟

أخبرني بما تريد إطلاقه وسأقول لك بصراحة إن كنت الشخص المناسب لبنائه.