A iHeartRadio criou uma base de código mais limpa e enxuta usando os Componentes da arquitetura do Android
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.

A iHeartRadio (link em inglês), sediada em Nova York, oferece
música ilimitada e milhares de estações de rádio, tudo em um único app. As operações da
empresa incluem transmissões de rádio, mídia on-line, móvel, digital e social,
shows e eventos ao vivo, distribuição, serviços de pesquisa de músicas e
representação independente de mídia.
Ouvintes de todo o mundo fizeram o download do app mais de um bilhão de vezes
desde que foi lançado em 2008. No entanto, no fim de 2017, a base de código começou a envelhecer,
e o gerenciamento de código e integração de novos recursos tornaram-se difíceis.
O que a equipe fez
A iHeartRadio optou pelos Componentes de arquitetura do Android quando começou a atualizar o código. A biblioteca de persistência simples e fácil de implementar
Room era interessante
para os engenheiros devido à
capacidade de lidar com questões como consultas assíncronas e compatibilidade com
RxJava, que a iHeartRadio usa extensivamente no código.
Ela também adotou componentes que reconhecem o ciclo de vida, que executam ações em resposta a uma mudança no status do ciclo de vida de outro componente. Os engenheiros da iHeartRadio
consideraram esses componentes muito úteis para diminuir as dependências
injetadas em atividades e fragmentos. Além disso, a empresa criou
protótipos usando o ViewModel,
que permite que os dados sobrevivam a mudanças de configuração, como rotações de tela.
Resultados
A iHeartRadio achou fácil migrar para os
Componentes da arquitetura
e usar as bibliotecas para testar o funcionamento da integração.
A Room e outros componentes exigem
o uso de muito pouco código boilerplate, o que significa que o código do app fica
significativamente menor. O uso dos Componentes da arquitetura
também resultaram em menos vazamentos de memória. Um benefício adicional era que os novos
desenvolvedores que entrassem na equipe poderiam rapidamente se familiarizar e iniciar a programação.
Em geral, a adoção dos Componentes de arquitetura ajudou
a iHeartRadio a criar uma base de código mais limpa e enxuta que evita erros.
Essa é uma boa notícia para qualquer app, especialmente para os que oferecem
áudio digital completo para um público-alvo mundial.
Primeiros passos
Os componentes de arquitetura do Android estão abertos a todos os desenvolvedores como parte do
Android Jetpack. Comece
a usar os Componentes da arquitetura do Android.
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2018-05-03 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 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)."]]