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

חברת iHeartRadio, שממוקמת בניו יורק, מספקת מוזיקה ללא הגבלה ואלפי תחנות רדיו, והכול באפליקציה אחת. הפעילות של החברה כוללת שידורי רדיו, מדיה באינטרנט, בנייד, דיגיטלית וחברתית, קונצרטים ואירועים בשידור חי, סינדיקציה, שירותי מחקר מוזיקלי וייצוג של מדיה עצמאית.
מאז ההשקה של האפליקציה בשנת 2008, היא הורדה יותר ממיליארד פעמים על ידי מאזינים ברחבי העולם. אבל לקראת סוף 2017, בסיס הקוד היה ישן, וניהול הקוד ושילוב תכונות חדשות היו קשים.
מה הם עשו
צוות iHeartRadio בחר ב-Android Architecture Components כשעבר לשדרוג הקוד. ספריית Room לשימור נתונים, שהיא פשוטה וקלה להטמעה, משכה את המהנדסים של iHeartRadio בזכות היכולות שלה לטפל בדברים כמו שאילתות אסינכרוניות ותמיכה ב-RxJava, שמשמשת את iHeartRadio באופן נרחב בקוד שלהם.
הם גם הטמיעו רכיבים שמודעים למחזור החיים, שמבצעים פעולות בתגובה לשינוי בסטטוס מחזור החיים של רכיב אחר. מהנדסי iHeartRadio גילו שהרכיבים האלה מאוד שימושיים לצמצום התלות בהזרקה לפעילויות ולמקטעים. בנוסף, החברה יצרה אבות-טיפוס באמצעות ViewModel, שמאפשר לנתונים לשרוד שינויים בהגדרות, כמו סיבוב המסך.
תוצאות
חברת iHeartRadio גילתה שקל לעבור אל Architecture Components ולהשתמש בספריות כדי לבדוק את איכות האינטגרציה.
Room ורכיבים אחרים דורשים שימוש במעט מאוד קוד boilerplate, כלומר הקוד של האפליקציה קצר משמעותית. רכיבי ארכיטקטורה
גם הובילו לפחות דליפות זיכרון. יתרון נוסף היה שצוות הפיתוח יכול היה להכשיר במהירות מפתחים חדשים שהצטרפו לצוות, כדי שיוכלו להתחיל לכתוב קוד.
בסך הכול, השימוש ברכיבי ארכיטקטורה עזר ל-iHeartRadio ליצור בסיס קוד נקי ורזה יותר, שמסייע להם למנוע שגיאות.
זו בשורה טובה לכל אפליקציה, במיוחד לאפליקציה שמציעה אודיו דיגיטלי מקיף לקהל ברחבי העולם.
שנתחיל?
רכיבי הארכיטקטורה של Android פתוחים לכל המפתחים כחלק מ-Android Jetpack. תחילת העבודה עם רכיבי ארכיטקטורה של Android
דוגמאות התוכן והקוד שבדף הזה כפופות לרישיונות המפורטים בקטע רישיון לתוכן. Java ו-OpenJDK הם סימנים מסחריים או סימנים מסחריים רשומים של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2018-05-03 (שעון UTC).
[[["התוכן קל להבנה","easyToUnderstand","thumb-up"],["התוכן עזר לי לפתור בעיה","solvedMyProblem","thumb-up"],["סיבה אחרת","otherUp","thumb-up"]],[["חסרים לי מידע או פרטים","missingTheInformationINeed","thumb-down"],["התוכן מורכב מדי או עם יותר מדי שלבים","tooComplicatedTooManySteps","thumb-down"],["התוכן לא עדכני","outOfDate","thumb-down"],["בעיה בתרגום","translationIssue","thumb-down"],["בעיה בדוגמאות/בקוד","samplesCodeIssue","thumb-down"],["סיבה אחרת","otherDown","thumb-down"]],["עדכון אחרון: 2018-05-03 (שעון UTC)."],[],[],null,["# iHeartRadio creates a cleaner, leaner code base with Android Architecture Components\n\nNew York City-based [iHeartRadio](https://www.iheart.com/) provides\nunlimited music and thousands of radio stations, all in one app. The company's\noperations include radio broadcasting, online, mobile, digital and social media,\nlive concerts and events, syndication, music-research services, and\nindependent media representation.\n\nListeners around the world have downloaded the app over a billion times\nsince it launched in 2008. By late 2017, however, the codebase was aging,\nand managing the code and integrating new features proved to be difficult.\n\nWhat they did\n-------------\n\niHeartRadio chose\n[Android Architecture Components](/topic/libraries/architecture) as they\nbegan upgrading their code. The straightforward, easy-to-implement\n[Room](/topic/libraries/architecture/room) persistency library was\nattractive to their engineers for its\ncapabilities for handling such things as asynchronous queries and support for\nRxJava, which iHeartRadio uses extensively in their code.\n\nThey also adopted\n[lifecycle-aware components](/topic/libraries/architecture/lifecycle),\nwhich perform actions in response to a change in the\nlifecycle status of another component. The iHeartRadio\nengineers found these components very useful for shrinking dependencies\ninjected into activities and fragments. In addition, the company created\nprototypes using [ViewModel](/topic/libraries/architecture/viewmodel),\nwhich allows data to survive configuration changes, such as screen rotations.\n\nResults\n-------\n\niHeartRadio found it easy to migrate over to\n[Architecture Components](/jetpack/arch)\nand to use the libraries to test how well integration was working.\n[Room](/topic/libraries/architecture/room) and other components require\nthe use of very little boilerplate code, meaning that the app's code is\nnow significantly shorter. [Architecture Components](/jetpack/arch)\nalso resulted in fewer memory leaks. An additional benefit was that new\ndevelopers joining the team could quickly get ramped up and start coding.\n\nOverall, adopting [Architecture Components](/jetpack/arch) has helped\niHeartRadio to create a cleaner, leaner code base that helps them to prevent errors.\nThat's good news for any app, especially for one offering\nall-in-one digital audio to a worldwide audience.\n\nGet started\n-----------\n\nAndroid Architecture Components is open to all developers as part of\n[Android Jetpack](/jetpack). [Get\nstarted with Android Architecture Components](/jetpack/arch)."]]