iHeartRadio tworzy czystszą i bardziej przejrzystą bazę kodu dzięki komponentom architektury Androida
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

iHeartRadio z Nowego Jorku oferuje nieograniczony dostęp do muzyki i tysięcy stacji radiowych w jednej aplikacji. Firma prowadzi działalność w zakresie nadawania radiowego, mediów online, mobilnych, cyfrowych i społecznościowych, koncertów i wydarzeń na żywo, syndykacji, usług badań muzycznych oraz reprezentacji niezależnych mediów.
Od momentu wprowadzenia aplikacji w 2008 roku użytkownicy z całego świata pobrali ją ponad miliard razy. Pod koniec 2017 r. baza kodu była już jednak przestarzała, a zarządzanie kodem i integrowanie nowych funkcji okazało się trudne.
Rozwiązanie
iHeartRadio wybrało komponenty architektury Androida, gdy zaczęło ulepszać swój kod. Prosta i łatwa we wdrożeniu biblioteka trwałości Room spodobała się inżynierom iHeartRadio ze względu na jej możliwości obsługi takich elementów jak zapytania asynchroniczne i obsługa RxJava, z której iHeartRadio korzysta w swoim kodzie na dużą skalę.
Zastosowali też komponenty uwzględniające cykl życia, które wykonują działania w odpowiedzi na zmianę stanu cyklu życia innego komponentu. Inżynierowie iHeartRadio uznali te komponenty za bardzo przydatne do zmniejszania zależności wstrzykiwanych do aktywności i fragmentów. Firma stworzyła też prototypy z użyciem ViewModel, które umożliwiają zachowanie danych po zmianach konfiguracji, takich jak obracanie ekranu.
Wyniki
iHeartRadio uznało, że migracja do komponentów architektury jest łatwa, a biblioteki umożliwiają testowanie integracji.
Room i inne komponenty wymagają użycia bardzo małej ilości kodu szablonowego, co oznacza, że kod aplikacji jest teraz znacznie krótszy. Komponenty architektury również spowodowały zmniejszenie liczby wycieków pamięci. Dodatkową korzyścią było to, że nowi programiści dołączający do zespołu mogli szybko się wdrożyć i zacząć pisać kod.
Wdrożenie komponentów architektury pomogło iHeartRadio stworzyć czystszą i bardziej przejrzystą bazę kodu, która ułatwia zapobieganie błędom.
To dobra wiadomość dla każdej aplikacji, zwłaszcza dla tej, która oferuje kompleksowe usługi audio dla odbiorców na całym świecie.
Rozpocznij
Składniki architektury Androida są dostępne dla wszystkich deweloperów w ramach Androida Jetpack. Pierwsze kroki z komponentami architektury Androida
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2018-05-03 UTC.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 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)."]]