יש אנשים שאוהבים לקרוא לזה פיצול, אחרים קוראים לזה בחירה, אבל בכל שם שיש בהחלט הרבה מאוד טלפונים אנדרואיד שונים. בניית יישומים שצריכים לעבוד עם כולם אינה משימה קלה. יש לך תצורות חומרה שונות באופן מובהק שעושות הבדל גדול בביצועים, ולמרות שקובץ apk אחד יכול לעבוד על כל אחת מהן, עדיין יש את הבעיה של צורך באפליקציה להפעלה חלקה במכשירים נמוכים מבלי להקריב תכונות בגובה מכשירי -END. כשמדברים על אפליקציה פופולרית כמו פייסבוק, זה יכול להפוך במהירות לסיוט עבור האנשים שעושים את הקידוד.
פייסבוק הראתה לכולם ב- Big Android Meat ובירכו פיתרון חדש שהוא פשוט - רכיב Class Device Year.
מפתחי פייסבוק מתארים רכיב תוכנה חדש זה כך:
Class Device Class היא ספריית אנדרואיד המיישמת אלגוריתם פשוט הממפה את זיכרון ה- RAM, ליבות ה- CPU ומהירות השעון לשנה בה שילוב המפרט הזה נחשב לסוף גבוה. זה מאפשר למפתח לשנות בקלות את התנהגות היישום על בסיס יכולות החומרה של הטלפון.
הספריה אינה משנה כל התנהגות ביישום. זה מחזיר ערך (מבוטא כשנה) המאוחסן בקוד לזמנים בהם מפתח צריך לשנות את האופן שבו אפליקציה עובדת כדי להתאים את החוויה לסוג חומרה מסוים. פירוש הדבר ש- dev יכול לכתוב אפליקציה עם אנימציות ומעברים מהודרים שישחקו כמתוכנן כשאתה רץ על משהו כמו Galaxy Note 4, אך לא להשתמש בממתק העיניים כשהאפליקציה פועלת על משהו כמו Moto E. כפי שאתה יכול תאר לעצמך, בקרה מסוג זה באפליקציה כמו פייסבוק - המותקנת במיליוני ומיליוני טלפונים שונים - יכולה ויכולה להפוך לחוויה טובה יותר לכולם. וזה קל ליישום. מהתיעוד באתר GitHub:
if (year >= 2013) { // Do advanced animation } else if (year > 2010) { // Do simple animation } else { // Phone too slow, don't do any animations }
החשוב מכל, הספרייה ממוקמת תחת רישיון התוכנה של BSD (אותו רישיון שגוגל משתמשת במקור אנדרואיד) והיא זמינה עבור כל מפתח לשימוש ללא עלות.
אנו יודעים שזה לא קסם, וסביר להניח שלרוב המפתחים העובדים על פרויקטים גדולים יש שיטה כלשהי להתמודד עם תצורות חומרה שונות. מה שעושה מחלקת השנה של המכשיר הוא לספק פיתרון פשוט ו"אלגנטי "לבעיה גדולה וכל אחד יכול להשתמש בה.
דף GitHub של מחלקת השנה