Spotify משתמשת בכלי Ruler שלה כדי לעזור למפתחי אפליקציות לנתח את גדלי האפליקציות שלהם

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

בעת התקנת אפליקציות בחנות Google Play, משתמשים בדרך כלל מעדיפים גדלים קטנים יותר של אפליקציות. זה יכול להיות בגלל שטח אחסון מוגבל או רוחב פס מוגבל של הורדה, או שמשתמשים מסוימים אפילו מעדיפים התקנה מהירה יותר. עם זאת, ל-Spotify יש כלי שנקרא "סרגל" שבו היא משתמשת כדי למדוד ולנתח את הגודל של אפליקציות האנדרואיד שלה במטרה להבין איך לכווץ אותן. כעת החברה הופכת את הכלי הזה לקוד פתוח וחינמי לשימוש עבור כל מפתח שרוצה להשתמש בו.

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

  1. גודל הורדה: בתים מועברים ברשת כאשר משתמש מוריד את האפליקציה
  2. גודל התקנה: בייטים של קובץ תופס במכשיר לאחר התקנת האפליקציה

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

פוסט הנדסה בבלוג ללמוד 'יותר.

Spotify אומר כי לאפליקציית Spotify הראשית יש יותר מ-1,000 מודולים של Gradle ומאות תלות של צד שלישי, וכי Ruler עזר להפחית את גודל האפליקציה בקצת יותר מ-9% בששת החודשים האחרונים. החברה אומרת שהיא מייצאת נתוני גודל אפליקציה פעם ביום, תוך שימוש במבנה הראשי האחרון. הוא יכול להשתמש בנתונים האלה כדי לעקוב אחר מגמות היסטוריות, הן של האפליקציה כולה והן של מודולים בודדים ותלות של צד שלישי. השפעת גודל האפליקציה של כל בקשת משיכה מנותחת גם כך שניתן לתת משוב מוקדם למפתחים.

Ruler כתוב במלואו ב-Kotlin, וכדי להשתמש בו, כל מה שאתה צריך לעשות הוא להחיל את התוסף על פרויקט האנדרואיד שלך ולהפעיל משימת Gradle אחת. אתה יכול לבדוק את Ruler's GitHub כדי ללמוד כיצד לשלב אותו בפרויקט שלך.