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
아키텍처 구성요소를 사용해 보세요.
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 OpenJDK는 Oracle 및 Oracle 계열사의 상표 또는 등록 상표입니다.
최종 업데이트: 2018-05-03(UTC)
[null,null,["최종 업데이트: 2018-05-03(UTC)"],[],[],null,["# Hike Messenger gains speed and simplicity with Android Architecture Components\n\nLaunched in 2012, Hike is building products with the aim of simplifying the\ninternet to bring India online. Hike combines chat, messaging, feeds,\nand integrations with third-party transportation and payment apps.\nIt developed these features very rapidly and at different points in\ntime, resulting in what the company called \"significant technical and\narchitectural debt.\" Because this debt was becoming a bottleneck to\nstability, maintainability and performance, the company wanted to simplify\nits code quickly.\n\nWhat they did\n-------------\n\nHike turned to [Android Architecture Components](/jetpack/arch), which\nbecame \"our Swiss army knife to tackle all of these challenges\" says\nCTO Vishwanath Ramarao. It began using\n[ViewModel](/topic/libraries/architecture/viewmodel), which allows data to\nsurvive configuration changes (such as screen rotations);\n[LiveData](/topic/libraries/architecture/livedata), an\nobservable data-holder class; and the\n[Room](/topic/libraries/architecture/room) persistence library.\n\"We're a modern, reactive app, and Room and LiveData fit really\nwell with our forward-design principles\" Ramarao adds.\n\nHike is also evaluating the [Paging Library](/topic/libraries/paging),\nwhich makes it easier for an app gradually to load information as needed from a\ndata source, without overloading the device or waiting too long for a big\ndatabase query.\n\u003e \"We were aware of Architecture Components in general and wanted to learn more\"\n\u003e Ramarao says. \"But what started as an exploration of the Android-ecosystem\n\u003e best practices became an important tool to tackle our technical and\n\u003e architectural debt. It ultimately became a way of modernizing our\n\u003e architecture and development practice\".\n\nResults\n-------\n\nThanks to Architecture Components, Hike significantly reduced the total\nlines of code in their app, while also making that code more readable\nand maintainable. Android Architecture Components also helped them to\nraise their crash-free user ratings to well beyond 99 percent,\nsomething they'd struggled to accomplish in the past.\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)."]]