Zomato هي شركة هندية متعدّدة الجنسيات تقدّم خدمات توصيل الطعام وتقدّم خدماتها إلى العملاء في 500 مدينة في الهند وحدها. مع أكثر من 43 مليون عميل نشط وأكثر من 1.5 مليون طلب في المتوسط يوميًا، تُعد هذه الخدمة واحدة من أكثر خدمات طلب الطعام وتوصيله رواجًا في البلاد. ويعني هذا أيضًا أنّ العملاء يستخدمون مجموعة متنوعة من الأجهزة ويختلف مدى توفّرها على الشبكة. وإلى جانب عمليات التسليم السريعة، يجعل ذلك أيضًا من الضروري توفير تجربة سلسة وسلسة على التطبيق.
يتوقع المستخدمون سرعة في أوقات فتح التطبيق وسرعة الاستجابة. إنّ تحسين هذا المقياس لا يؤثّر بشكل مباشر في "مؤشرات أداء التطبيقات" فحسب، بل يضمن أيضًا زيادة عمليات إتمام الطلبات ويدعم استراتيجية Zomato التي توسّع نطاقها لتشمل أسواقًا جديدة، ما يوفّر تجربة أفضل على الأجهزة المتوسطة والمتوسّطة، ما يساعد الشركة في جذب مليار مستخدم جديد. كما تعمل أوقات فتح التطبيقات أيضًا كمؤشر لحجم مسار الإحالة الناجحة المتزايد عندما ينتقل المستخدمون إلى أسفل مسار الإحالة الناجحة للمبيعات.
وحقّقت Zomato بعض الأرباح المذهلة من خلال التركيز على "مؤشرات أداء التطبيق". على سبيل المثال، أدى تسريع وقت تحميل التطبيق بنسبة 30% إلى تحسين الاحتفاظ بالعملاء في اليوم الأول بحوالي 90% !
التحدي
وقد أدى الوتيرة السريعة للتطوير في Zomato والتركيز على إضافات الميزات، التي كانت رائعة للعملاء، إلى تحسين قاعدة الرموز وتجربة المستخدم الخاصة بها. سعيًا إلى إضافة ميزات جديدة، أرادت Zomato الحفاظ على مستوى أدائها أيضًا بالمستوى المطلوب. في ظل استخدام العديد من حِزم تطوير البرامج (SDK) لموارد لم تكن مطلوبة دائمًا، كانت هناك حاجة إلى تبسيط قاعدة الرموز وتبسيطها.
وقد تم دعم كل ذلك من خلال توسّع Zomato في المدن من المستوى 2 والمستوى 3 من المستوى 3، حيث يستخدم الأشخاص إلى حد كبير أجهزة من المستوى الأدنى إلى المتوسط ذات سعة معالجة محدودة نسبيًا. مع تضمين هذه الأجهزة، كان على الفريق ضمان نفس تجربة المستخدم على مستوى العالم كما في الأجهزة من المستوى الأعلى.
ماذا فعلوا؟
استخدمت Zomato نموذج تقييم بسيط لتحليل النفقات العامة - وهو الحل الذي يمكن أن يعطي أفضل عائد استثمار مقابل الجهد الذي يبذله فريق التطوير. باستخدام نموذج التقييم هذا، بدأ الفريق برحلة تحسين والتحسين لمدة 4 أشهر.
كانت الخطوة الأولى هي النظر في آثار النظام للعثور على المشاكل والتحليل المستند إلى الوقت وتحديد الأولويات وفقًا لذلك. Perfetto هي الأداة المثالية لتحليل عمليات Android وتحليلها وتتبُّعها. واستخدمت شركة Zomato هذه الأداة لتتبُّع جميع حِزم SDK التي تم إعدادها أثناء بدء تشغيل التطبيق والإشارة إلى الحِزم التي يمكن إزالتها أو تحميلها ببطء.
كانت إزالة حِزم تطوير البرامج (SDK) القديمة ومكتبات الجهات الخارجية غير المستخدَمة على رأس أولوياتنا لأنّها كانت تنطوي على مجهود قليل ومجهود كبير. وساعدت هذه الطريقة Zomato في توفير 20٪ ثمينة في وقت بدء تشغيل التطبيق.
تستعين العديد من المكتبات التابعة لجهات خارجية بموفّري المحتوى للتهيئة عند بدء تشغيل التطبيق، ما يؤثر في وقت بدء تشغيل التطبيق. يستخدم Zomato SDK في Facebook لتسجيل الدخول، لكن لدى المستخدم أيضًا خيارات أخرى لتسجيل الدخول، ولذلك فإن إعداد SDK عند بدء التشغيل غير فعال. من خلال إطلاق مكتبة App Startup، لا تُحمِّل Zomato حزمة تطوير البرامج (SDK) إلا إذا كان المستخدم ينتقل إلى خيار تسجيل الدخول إلى Facebook. ساعدهم ذلك في تقليل وقت بدء التشغيل بحوالي 6٪!
كانت الخطوة التالية هي تحسين وقت تضخيم المشاهدات حيث يمكن أن يستغرق عرض وتضخيم المشاهدة نفسها وقتًا كبيرًا في بنية واجهة مستخدم معقدة مثل Zomato. يساعد Viewstub على زيادة الكفاءة، حيث يسمح بإنشاء طرق العرض بدون إضافتها إلى التدرّج الهرمي للملفات الشخصية ما لم يكن ذلك مطلوبًا. تعد أحواض المشاهدات أكثر كفاءة من استخدام طريقة العرض. انتهى العمل كما لو كان العرض في حالة "GONE"، وسيتم تضخيمه وسيؤدي ذلك إلى استهلاك الذاكرة ووحدة المعالجة المركزية (CPU). عملت Zomato على إجراء مسطّح للتسلسل الهرمي لطريقة العرض ودمجت التخطيطات مع مناطق العرض في نشاط تسجيل الدخول. حسنت هذه التغييرات بشكل كبير وقت التضخم بنسبة 7٪.
ساعد محلّل Android في تحسين استخدام الذاكرة، لأنّه يتيح تتبُّع نشاط وحدة المعالجة المركزية (CPU) والذاكرة والشبكة في الوقت الفعلي. ولقد سمح لهم المحلل بتحديد المشكلة الأساسية في حالات القفل وحِمل الذاكرة وحلها وفقًا لذلك. عملت Zomato أيضًا على آلية التخزين المؤقت لديها لتحقيق انخفاض كبير بنسبة 60٪ في مشكلات الذاكرة.
الإجراء | قبل (بالثواني) | بعد (ثانية) | التحسين |
---|---|---|---|
تمت إزالة حِزم تطوير البرامج (SDK) القديمة ومكتبات الجهات الخارجية غير المستخدَمة | 4.873 | 3.813 | 21.74% |
مكتبات التحميل الكسول | 3.814 | 3.577 | 6.2% |
تحسينات التصميم، عناصر العرض | يورو | 2.348 | 7.15% |
وقت بدء تشغيل التطبيق = إعداد التطبيق + وقت تحميل المكتبات + عرض وقت التضخم
النتائج
ساعدت مكاسب الأداء التي حقّقتها شركة Zomato في تحقيق تجربة أكثر سلاسة. أدى إدخال تحسينات إضافية على واجهة المستخدم والتخزين المؤقت إلى تقليل التشويش أيضًا.
يعد التطبيق إلى الصفحة الرئيسية (النقر على رمز التطبيق إلى صفحة رئيسية تم تحميلها بالكامل وقابلة للاستخدام) مقياسًا رئيسيًا للأعمال تتبعه Zomato داخليًا. وبعد تطبيق التحسينات، شهدوا ارتفاعًا ملحوظًا في هذا المقياس. وزاد عدد العملاء الذين وصلوا إلى صفحة محملة بالكامل بنسبة 20% تقريبًا خلال هذه الفترة.
أدّى ذلك إلى تحسُّن في الاحتفاظ بالعملاء في اليوم الأول بنسبة %90 تقريبًا. كان لهذه التحسينات تأثير بسيط على مسارات الإحالة الناجحة الأمامية أيضًا، حيث تم تحسين معدّل الطلب الإجمالي (الصفحة الرئيسية -> القائمة -> سلة التسوّق -> الطلب) بحوالي 1.5 نقطة مئوية، أي حوالي 600 ألف طلب على أساس شهري.
وفقًا لمقياس أداء Firebase على مسار التشغيل على البارد، حدث تحسُّن بنسبة 25% في المتوسط، وبالنسبة إلى الأجهزة ذات المستوى المنخفض أو المتوسط، وصل التحسن في وقت بدء تشغيل التطبيق على البارد إلى 30%.
يُعدّ أداء وقت بدء تشغيل التطبيق مقياسًا مهمًا يؤثر في تصور المستخدمين، ويمكن أن تؤدي الجهود المبذولة لتحسين الأداء إلى تأثير كبير في النشاط التجاري أيضًا.
"في Zomato، لطالما كان توفير تجربة عملاء مذهلة والبناء عليها محور أيديولوجيتنا. نعتقد أنّ الأداء هو أحد العوامل الرئيسية، وبالتالي سعى فريقنا جاهدًا لتحقيق التميّز الهندسي من أجل تحسين أوقات تحميل التطبيقات باستخدام أدوات المطوّرين من Google، وشهدنا نتائج مهمة في الوقت الفعلي. مع ذلك، نأمل في تقديم تطبيق سريع جدًا لتلبية احتياجات الطلب عبر الإنترنت في الهند ووضع معيار للتطوير المستقبلي".
— "ساجال غوبتا"، مدير هندسة في Zomato