אפליקציית Josh היא אפליקציה הודית לסרטונים קצרים שהושקה באוגוסט 2020. זו גם אחת מאפליקציות הסרטונים הקצרים שצומחות הכי מהר בהודו, עם יותר מ-124 מיליון משתמשים פעילים בחודש (MAU) ו-60 מיליון משתמשים פעילים ביום (DAU).
אופטימיזציה של אפליקציית Josh במגוון מכשירים (מכשירים מתקדמים, בינוניים ופשוטים) ושמירה על חוויה סטנדרטית בכל המכשירים היא משימה לא פשוטה למפתחי אפליקציות, והמפתחים של Josh הבינו את זה מההתחלה. שיפור המדדים של תפקוד האפליקציה ב-Android היה משימה מרכזית בספרינטים שלהם, והם הקדישו מאמצים רבים לשיפור זמן ההפעלה והתגובתיות של האפליקציה כדי ליצור חוויית משתמש מעולה.
גם זמן התגובה וזמן ההפעלה של האפליקציה היו חשובים, כי הווידאו היה הפורמט העיקרי שבו המשתמשים צפו באפליקציה. כל שיבוש בסטרימינג של הווידאו או הפסקות באינטראקציות השונות עלולות לגרום למשתמשים לאבד עניין ולצאת מהאפליקציה.
ההשקעה של ג'וש בשיפור הביצועים של זמן ההפעלה של האפליקציה הובילה לקיצור של 30% בזמן ההפעלה למשתמש הממוצע, וקיצור של פי 3 בזמן ההפעלה לכ-10% מהמשתמשים במכשירים ישנים ובמכשירים ברמת כניסה.
האתגר
מספר המשתמשים הפעילים מדי חודש באפליקציית Josh גדל במהירות, והגיע ליותר מ-100 מיליון תוך פחות משנה. בדרך כלל, במירוץ להשקת תכונות שמבוססות על מוצרים או על אירועים, אופטימיזציה של האפליקציה נדחקת הצידה. ביקורות על האפליקציה ומשוב מבני מ-Google עזרו להם לזהות את הבעיות האלה בשלב מוקדם ולמצוא דרך לפתור אותן.
איך הם עשו את זה
במהלך המעקב אחרי תפקוד האפליקציה, זוהתה הזדמנות לשפר את הפעלת האפליקציה. הצוות החליט לתת עדיפות לשיפור זמני ההפעלה במצב התחלתי (cold start), כי זה ישפר אוטומטית את זמני ההפעלה במצב ביניים (warm start) ובמצב פעיל (hot start).
הצוות השתמש בכמה עקבות מותאמים אישית, ב-systrace, בכלי לניתוח ביצועים (profiler) ב-Android Studio וב-Perfetto כדי לבצע בדיקה מקיפה ולזהות את צווארי הבקבוק. היה ברור שאפשר לבצע אופטימיזציה של הזמן שנדרש לשיטות onCreate ולשיטות סינכרוניות אחרות של מחלקת Application.
אלה הפעולות הספציפיות שהצוות ביצע:
- כל בלוק קוד שמופעל במהלך הפעלת האפליקציה נכלל בפרופיל.
- ניתוח של נתוני מעקב אחר המערכת באמצעות כלי ביצועים של Android כמו Perfetto, Systrace, Dumpsys וכו'.
- נבדקה ההשפעה של ערכות SDK של צד שלישי במהלך הפעלת האפליקציה, והושבתה ההפעלה האוטומטית של חלק מערכות ה-SDK של צד שלישי.
- הסרנו ספריות מדור קודם
- חלק מהמודולים נדחו והופעלו ברקע
- הקטנו את הגודל של רכיבי ה-drawable שמשמשים במסך הפתיחה בהפעלה, וביצענו אופטימיזציה שלהם לגודל המסך
כל השינויים שלמעלה אומתו ביסודיות באמצעות בדיקה בבידוד כדי לוודא שהם משפיעים באופן חיובי על האפליקציה. הבדיקה כללה הדמיה של הפעלות קרות ושילוב של ספריית Macrobenchmark החדשה של Jetpack.
תוצאות
השינויים האלה לא רק הובילו לשיפור מיידי בכל המדדים, אלא גם עזרו לשפר את חוויית המשתמש הכוללת, וסיפקו תובנות חשובות לצוות הפיתוח ב-Josh.
- שיפור שיעורי הנטישה ושימור המשתמשים עזר ל-Josh לשמר יותר ממיליון משתמשים בהשוואה לנתוני הבסיס. התמקדות בשני המדדים האלה שיפרה גם את רמת המעורבות הכוללת באפליקציה.
- הדירוגים בחנות Play הראו מגמת עלייה חיובית אחרי השקת האפליקציה עם שיפורים בהפעלה.
- זמן ההפעלה של האפליקציה השתפר ב-30% עבור המשתמש הממוצע, והוא מהיר פי 3 עבור כ-10% מהמשתמשים במכשירים ישנים ובמכשירים ברמת כניסה. כך השתפרה באופן משמעותי התגובתיות של האפליקציה עבור המשתמשים האלה.
חשוב מכך, התרגיל הזה לשיפור המדדים החיוניים של Android איחד את כל הצוות, והגביר את המוטיבציה של הצוות, במיוחד של חברי הצוות הצעירים. היא חיזקה את החשיבות של מדדי החיוניות ואפילו הובילה את הצוות להשתמש בחלק מהתובנות באפליקציות אחרות שלו.
"כששותפים בסביבה עסקית משתפים פעולה, הסביבה העסקית מתפתחת יחד. העוצמה של נתונים וניתוחים היא חסרת תקדים. כפלטפורמה שמתמקדת ביוצרים, בתוכן ובצרכנים, תמיד התמקדנו ביצירת חוויית המשתמש האולטימטיבית, שמתבססת במידה רבה על יציבות האפליקציה. החברה נהנתה מצמיחה מואצת מיד אחרי ההשקה. העבודה הצמודה עם צוות Google Play עזרה לנו לזהות ולתקן אתגרים כמו יציבות האפליקציה ואופטימיזציה בשלב מוקדם. המאמצים שלנו עם Google עזרו לנו לשפר את היציבות ולשפר את שימור המשתמשים ואת המעורבות שלהם"
– שאילנדרה שארמה (Shailendra Sharma), סמנכ"ל מוצר והנדסה, VerSe Innovation.