Hike Messenger는 Android 아키텍처 구성요소를 사용해 속도와 단순성을 확보했습니다

2012년에 설립된 Hike는 인도의 인터넷 사용률을 높이기 위해 인터넷을 간편하게 만드는 것을 목표로 제품을 개발하고 있습니다. Hike는 채팅, 메시지, 피드를 결합하였으며 타사의 대중교통 및 결제 앱과 통합되어 있습니다. 하지만 이러한 기능들을 짧은 시간 내에, 여러 번에 나눠 개발했기 때문에 "기술 및 아키텍처적인 측면에서 큰 부담"이 된다고 Hike에서는 설명합니다. 이러한 부담은 안정성, 유지 보수성, 성능에 장애물로 작용할 수 있기 때문에, Hike에서는 빨리 코드를 단순하게 바꾸고자 했습니다.

진행한 작업

Hike는 Android 아키텍처 구성요소로 전환했고, CTO인 비슈와나트 라마라오는 “문제를 해결하는 만능열쇠”가 되어주었다고 말합니다. Hike는 화면 회전과 같이 구성을 변경할 때도 데이터를 유지할 수 있는 ViewModel, 식별 가능한 데이터 홀더 클래스인 LiveData, 지속성 라이브러리인 Room을 사용했습니다. 라마라오는 “Hike는 현대적이고 반응 속도가 빠른 앱이며, Room과 LiveData는 Hike의 미래 지향적 디자인 원칙에 잘 어울립니다.”라고 말합니다.

Hike는 페이징 라이브러리 사용도 고려하고 있습니다. 페이징 라이브러리를 사용하면 대용량 데이터베이스 쿼리가 발생한 경우 기기를 오버로드하거나 지나치게 오래 기다리지 않고도 앱이 필요에 따라 데이터 소스로부터 정보를 점진적으로 로드할 수 있습니다.

"우리는 아키텍처 구성요소에 관해 어느 정도 알고 있었지만 좀 더 자세히 알아보고 싶었죠. 하지만 Android 생태계의 권장사항을 살펴보는 것으로 시작된 이 작업은 기술 및 아키텍처 문제를 해결하는 데 큰 도움이 되었습니다. 이를 통해 Hike의 아키텍처와 개발 관행을 현대화할 수 있었죠."라고 라마라오는 말합니다.

결과

아키텍처 구성요소 덕분에 Hike는 앱에 사용된 코드의 전체 행 수를 크게 줄일 수 있었으며 코드의 가독성 및 유지 보수성 역시 높아졌습니다. 또한 Android 아키텍처 구성요소를 사용함으로써 비정상 종료를 겪지 않은 사용자 평점이 99%를 넘어섰습니다. 이는 이전에 Hike에서 항상 달성하고자 노력해온 목표입니다.

시작하기

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