iHeartRadio는 Android 아키텍처 구성요소를 사용해 깔끔하고 가벼운 코드베이스를 작성했습니다.

뉴욕시에 본사를 둔 iHeartRadio는 하나의 앱을 통해 무제한 음악과 수천 개의 라디오 방송을 제공합니다. 이 회사는 라디오 방송, 온라인, 모바일, 디지털 및 소셜 미디어, 라이브 콘서트 및 이벤트, 신디케이션, 음악 검색 서비스, 독립 미디어 대표 서비스 등을 운영하고 있습니다.

2008년 앱 출시 이래로 전 세계 청취자들의 다운로드 횟수는 수십억 건이 넘습니다. 하지만 2017년 말부터 코드베이스가 노후화되면서 코드 관리 및 새로운 기능 통합이 어려워졌습니다.

진행한 작업

코드 업그레이드를 시작한 iHeartRadio는 Android 아키텍처 구성요소를 선택했습니다. 직관적이고 구현하기 쉬운 Room 지속성 라이브러리는 엔지니어들에게 매력적으로 다가왔습니다. 비동기 쿼리와 같은 항목을 처리할 능력을 갖췄으며 iHeartRadio에서 코드 내에 광범위하게 사용하는 RxJava를 지원했기 때문입니다.

iHeartRadio는 다른 구성요소의 수명 주기 상태 변경에 따라 작업을 실행하는 수명 주기 인식 구성요소도 도입했습니다. iHeartRadio 엔지니어들은 활동 및 프래그먼트에 주입된 종속성을 줄이는 데 이러한 구성요소가 매우 유용하다는 사실을 발견했습니다. 또한 화면 회전과 같이 구성을 변경할 때도 데이터를 유지할 수 있는 ViewModel을 사용하여 프로토타입을 생성했습니다.

결과

iHeartRadio는 아키텍처 구성요소로 이전하고 라이브러리를 사용해 통합이 얼마나 잘 작동하는지 간편하게 테스트할 수 있음을 확인했습니다. Room 및 다른 구성요소는 상용구 코드를 거의 사용하지 않아도 되므로 앱 코드가 이제 현저하게 짧아졌습니다. 아키텍처 구성요소를 사용한 결과 메모리 누수도 줄어들었습니다. 또 다른 이점은 팀에 새롭게 합류한 개발자들이 빠르게 적응하여 바로 코드를 작성할 수 있다는 것입니다.

전반적으로 아키텍처 구성요소를 도입함으로써 iHeartRadio는 깔끔하고 가벼운 코드베이스를 생성하고 오류를 예방할 수 있었습니다. 이는 모든 앱, 특히 전 세계 사용자에게 올인원 디지털 오디오를 제공하는 iHeartRadio에게는 반가운 소식입니다.

시작하기

Android 아키텍처 구성요소는 Android Jetpack의 일부이며 모든 개발자에게 공개되어 있습니다. Android 아키텍처 구성요소를 사용해 보세요.