אפליקציית BeautyPlus משפרת את הקריאות ב-15% באמצעות רכיבי ארכיטקטורה של Android

אפליקציית BeautyPlus הושקה בשנת 2013 והיא אחת מאפליקציות עריכת התמונות הפופולריות בעולם. משתמשים בה מאפרי איפור, צלמים ועד אנשים רגילים שמצלמים בטלפון הנייד. כ-50 מיליון אנשים משתמשים באפליקציה מדי חודש כדי לערוך תמונות סלפי, תמונות וסרטונים ולהוסיף להם פילטרים. פותח על ידי חברת Xiamen Meitu Technology Co.‎ בסין, בעזרת האפליקציה (שפופולרית במיוחד בקרב חובבי הסלפי) אפשר לעשות הכול, החל מתיקון גוון העור והלבנת החיוך ועד להצרת הפנים והסרת פגמים באמצעות טכניקת איירבראש, והכול בכמה גרירות וקליקים פשוטים.

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

איור 1: דוגמה לסשן עריכת תמונות ב-BeautyPlus

מה הם עשו

Android Architecture Components סיפקו את הכלים שהמפתחים היו צריכים כדי שהקוד של האפליקציה יהיה תמציתי ויציב, ויהיה קל יותר למהנדסים חדשים לקרוא אותו כשהם מצטרפים לצוות.

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

הם גם השתמשו ברכיב LiveData, מחזיק נתונים מסוג Observable שגם מודע למחזור החיים, כדי לוודא שממשק המשתמש תואם למצב הנתונים. הצוות מצא שקל להשתמש ברכיבי הארכיטקטורה של Android בלי להיתקל בבעיות, והיתרונות היו מורגשים במהירות.

תוצאות

הודות לרכיבי הארכיטקטורה של Android, הקוד של אפליקציית BeautyPlus היה דליל ב-5% באופן מיידי, והיה קל יותר לקריאה ב-15%. הארכיטקטורה הייתה גם מאוחדת יותר, מה שחסך למפתחים זמן ומאמץ, והקל על מפתחים חדשים להשתלב במהירות. בנוסף, היו פחות דליפות זיכרון, היה קל יותר לרענן את הנתונים והמפתחים לא היו צריכים יותר לדאוג לעדכון ממשק המשתמש האסינכרוני.

"כשמשתמשים ב-ViewModel וב-LiveData ב-BeautyPlus, הקוד הופך לתמציתי וקריא יותר, והארכיטקטורה של הקוד מאוחדת", אומר ג'נג סונגין (Zheng Songyin), מנהל פיתוח בכיר. "הפעולה של מחזור החיים של האפליקציה נוהלה בצורה בטוחה, והיציבות שלה השתפרה גם כן".

שנתחיל?

ספריית Android Architecture Components פתוחה לכל המפתחים. תחילת העבודה עם רכיבי ארכיטקטורה של Android