iHeartRadio یک پایه کد پاکتر و نابتر با اجزای معماری Android ایجاد میکند
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.

iHeartRadio مستقر در نیویورک، موسیقی نامحدود و هزاران ایستگاه رادیویی را در یک برنامه ارائه میکند. فعالیت های این شرکت شامل پخش رادیویی، آنلاین، موبایل، رسانه های دیجیتال و اجتماعی، کنسرت ها و رویدادهای زنده، سندیکا، خدمات پژوهشی موسیقی و نمایندگی رسانه های مستقل است.
شنوندگان در سراسر جهان بیش از یک میلیارد بار این برنامه را از زمان راهاندازی آن در سال 2008 دانلود کردهاند. با این حال، در اواخر سال 2017، پایگاه کد رو به افزایش بود و مدیریت کد و ادغام ویژگیهای جدید دشوار بود.
کاری که آنها انجام دادند
iHeartRadio با شروع ارتقاء کد خود، اجزای معماری اندروید را انتخاب کرد. کتابخانه تداوم اتاق ساده و قابل پیادهسازی برای مهندسینشان به دلیل قابلیتهایش برای رسیدگی به مواردی مانند پرس و جوهای ناهمزمان و پشتیبانی از RxJava که iHeartRadio به طور گسترده در کدشان استفاده میکند، جذاب بود.
آنها همچنین مؤلفههای آگاه از چرخه حیات را پذیرفتند، که اقداماتی را در پاسخ به تغییر وضعیت چرخه حیات یک جزء دیگر انجام میدهند. مهندسان iHeartRadio این اجزا را برای کاهش وابستگی های تزریق شده به فعالیت ها و قطعات بسیار مفید یافتند. علاوه بر این، این شرکت نمونههای اولیه را با استفاده از ViewModel ایجاد کرد که به دادهها اجازه میدهد از تغییرات پیکربندی، مانند چرخش صفحهنمایش، جان سالم به در ببرند.
نتایج
iHeartRadio انتقال به اجزای معماری و استفاده از کتابخانهها برای آزمایش عملکرد یکپارچهسازی را آسان کرد. اتاق و سایر اجزاء نیاز به استفاده از کد بسیار کمی دارند، به این معنی که اکنون کد برنامه به طور قابل توجهی کوتاهتر شده است. اجزای معماری همچنین منجر به نشت حافظه کمتری شد. یک مزیت دیگر این بود که توسعه دهندگان جدیدی که به تیم ملحق می شدند می توانستند به سرعت افزایش یافته و کدنویسی را شروع کنند.
به طور کلی، استفاده از کامپوننتهای معماری به iHeartRadio کمک کرده است تا یک پایه کد تمیزتر و نابتر ایجاد کند که به آنها در جلوگیری از خطاها کمک میکند. این خبر خوبی برای هر برنامه ای است، به خصوص برای برنامه ای که صدای دیجیتال همه کاره را به مخاطبان جهانی ارائه می دهد.
شروع کنید
Android Architecture Components به عنوان بخشی از Android Jetpack برای همه توسعه دهندگان باز است. با اجزای معماری Android شروع کنید .
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2018-05-03 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","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 بهوقت ساعت هماهنگ جهانی."],[],[],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)."]]