Spotify는 앱 개발자가 앱 크기를 분석하는 데 도움이 되는 Ruler 도구를 오픈 소스로 제공했습니다. 이는 큰 종속성을 식별하는 쉬운 방법입니다.
Google Play 스토어에 앱을 설치할 때 사용자는 일반적으로 더 작은 앱 크기를 선호합니다. 제한된 저장 공간이나 제한된 다운로드 대역폭 때문일 수도 있고 일부 사용자는 더 빠른 설치를 선호하기도 합니다. 그럼에도 불구하고 Spotify에는 Android 앱을 축소하는 방법을 알아내기 위해 Android 앱의 크기를 측정하고 분석하는 데 사용하는 "Ruler"라는 도구가 있습니다. 이제 회사는 해당 도구를 오픈 소스로 만들고 이를 사용하려는 모든 개발자가 무료로 사용할 수 있도록 하고 있습니다.
Google Play 스토어에 게시된 앱은 이제 일반적으로 Android App Bundle 형태로 업로드됩니다. 사용자가 앱 설치를 요청하면 Google Play 스토어는 앱을 설치하는 최종 사용자를 위해 최적화된 APK를 생성합니다. Ruler는 이 프로세스를 모방하여 최종 사용자가 수신해야 하는 것과 정확한 APK를 생성합니다. 각 파일에 대해 Ruler는 두 가지 측정값을 캡처합니다.
- 다운로드 크기: 사용자가 앱을 다운로드할 때 네트워크를 통해 전송된 바이트
- 설치 크기: 앱이 설치된 후 파일이 기기에서 차지하는 바이트 수
그런 다음 눈금자는 앱을 스캔하여 내부 파일 목록과 크기를 찾을 수 있습니다. 또한 앱 크기에 영향을 미치는 모든 Gradle 모듈과 종속성을 찾을 수도 있습니다. 이를 통해 모든 구성 요소와 해당 내용이 포함된 두 번째 목록이 생성됩니다. 두 목록을 결합하면 앱의 모든 파일을 소스별로 그룹화하고 각 모듈과 종속성이 전체 앱 크기에 얼마나 기여하는지 확인할 수 있습니다. 다른 방법도 관련되어 있으며 회사의 방법을 확인해 볼 가치가 있습니다. 엔지니어링 블로그 게시물 자세히 알아보기
Spotify는 기본 Spotify 앱에 1,000개가 넘는 Gradle 모듈과 수백 개의 타사 종속성이 있으며 Ruler가 지난 6개월 동안 앱 크기를 9% 이상 줄이는 데 도움이 되었다고 말합니다. 회사에서는 최신 메인 빌드를 사용해 하루에 한 번씩 앱 크기 데이터를 내보낸다고 합니다. 이 데이터를 사용하여 앱 전체와 개별 모듈 및 타사 종속성의 과거 추세를 추적할 수 있습니다. 모든 끌어오기 요청이 앱 크기에 미치는 영향도 분석되어 개발자에게 조기 피드백을 제공할 수 있습니다.
Ruler는 완전히 Kotlin으로 작성되었으며 이를 사용하려면 Android 프로젝트에 플러그인을 적용하고 단일 Gradle 작업을 실행하기만 하면 됩니다. Ruler's를 확인하실 수 있습니다. GitHub 프로젝트에 통합하는 방법을 알아보세요.