‫JioSaavn מגדילה את מספר המשתמשים הפעילים ביום (DAU) על ידי שיפור זמן ההפעלה של האפליקציה ב-30%

שירות JioSaavn הושק בשנת 2007 והוא שירות מוביל לסטרימינג של אודיו – מוזיקה ופודקאסטים. יש להם יותר מ-900 שותפויות עם לייבלים, והם מפעילים סטרימינג של יותר מ-80 מיליון טראקים ב-16 שפות. אפליקציית JioSaavn זמינה גם ב-6 שפות אזוריות בהודו.

עם מערך טכנולוגי שתומך ביותר מ-100 מיליון משתמשים פעילים בחודש (MAU), ‏ JioSaavn פועלת בקנה מידה גדול ובמהירות. בדרך כלל, לקהל הזה יש טלפונים עם Android שמוגבלים במשאבים, ולכן חוויית המשתמש חשובה מאוד לצוות של JioSaavn.

האתגר

אופטימיזציה בסביבה עם מגבלות, כמו במכשירים ניידים ברמת מחיר נמוכה עד בינונית, יכולה להיות מאתגרת ומרתקת מנקודת מבט הנדסית. האתגר שעמד בפני JioSaavn היה לייעל את חוויית המשתמש עבור קהל היעד העיקרי שלה, שמשתמש במכשירים ניידים ברמת מחיר נמוכה עד בינונית, ונמצא בעיקר בערים ברמה 2 ו-3 בהודו.

מניתוח המשפך היה ברור שיש קבוצה גדולה של משתמשים שמפעילים את האפליקציה אבל לא מאזינים לשיר. הצוות קבע שזמן ההפעלה של האפליקציה הוא הגורם לכך. לכן, שיפור זמן ההפעלה של האפליקציה היה קשור לעלייה במספר המאזינים באפליקציה.

איך הם עשו את זה

כדי לנתח את הבעיה הזו ולהגיע לפתרון בר-קיימא, חברת JioSaavn הסתמכה על ניתוח מקיף ועל חבילה חזקה של כלים כמו Perfetto, ‏ dumpsys ועוד. הצוות ניגש לאתגר הזה לפי שני עקרונות – עבודה במקביל ושימוש בשיטות עבודה יעילות.

בעזרת הניתוח של Google, הצוות תעדף את המשימות –

  • השתמשתי ב-systrace וב-perfetto כדי ללמוד את תהליך העבודה באפליקציה, לנתח נקודות בעייתיות ולאמת שיפורים בזמן ההפעלה של האפליקציה.
  • הפעלה מאוחרת: זוהו קטעים/מופעים/מחלקות של הפעלה שאפשר לדחות עד להצגת דף הבית –
    • מודעות
    • שירות מוזיקה (שירות שפועל בחזית) ומשאבי נגן (למשל, Exoplayer, תור נגן במטמון וכו')
    • רכיב Player שמוזער בזמן ההפעלה.
  • הפעלה לפי דרישה: של ספריות שונות כשנדרשת ספרייה (למשל Facebook lib).
  • viewStubs: View Inflation and resource loading was heavy. הצוות השתמש ב-viewStubs כדי לשטח את הפריסות והמיר את התמונות ל-webP.
  • שרשור Worker: חלק מהמשימות שלא דרשו שרשור UI הועברו לשרשורי b/g כדי לפנות את שרשור ה-UI.
  • פיצול נתוני מטמון – קריאה וניתוח של נתוני מטמון גדולים מקובץ אורכים הרבה זמן. הצוות חילק את הנתונים לקריטיים (שנדרשים להצגת דף הבית) וללא קריטיים.
  • ‫Async LayoutInflater: חלק מהתצוגות שנדרשות ל-recyclerview בדף הבית נופחו מראש באמצעות Async LayoutInflater.

הכלים שבהם נעשה שימוש – Perfetto, ‏ Systrace, ‏ Google Play Vitals, ‏ Android Studio Profilers, ‏ Firebase Performance SDK

תוצאות

הצוות של JioSaavn פרסם את השינויים האלה בכמה גרסאות של האפליקציה כדי לשמור על יציבות האפליקציה. התוצאות שהם השיגו הן:

  • שיפור של 30% בזמן ההפעלה של האפליקציה בכל המכשירים, ושיפור של 35-40% במכשירים בסיסיים עד בינוניים.
  • שיפור של 5% במספר הצופים במסך הבית או במספר המשתמשים הפעילים היומיים, וכך הפחתה של שיעור העזיבה.

התרגיל הזה של אופטימיזציה איחד את כל הצוות. הצוות קיבל הדרכות מפורטות כדי להכיר את השינויים, ואימץ גישה שמתמקדת בביצועים של האפליקציה.

‫JioSaavn שואפת לשפר את חוויית ההאזנה של המשתמשים שלנו שמגיעים מאזורים ומערים שונים בהודו, ומשתייכים לכל קשת המחירים.
לכן, אנחנו כל הזמן פועלים כדי להתמודד עם האתגר של שיפור חוויית המשתמשים, מעבר לתשתית הקישוריות לנייד באזור שלהם, ואופטימיזציה של היכולות של המכשירים שלהם. בזכות ההנחיות של Google בנושא קשרי מפתחים, הצלחנו לעשות צעד משמעותי בכיוון הזה".

– צוות המוצר של JioSaavn