App Bundle과 Dynamic Delivery로 앱 크기를 20% 줄인 Adobe

Adobe의 창의성 및 생산성 도구가 첫선을 보인 건 1982년입니다. Photoshop, Illustrator, Lightroom과 같은 Adobe 앱이 수십 년간 자업자들에게 많은 사랑을 받아왔지만 Adobe가 지금의 명성을 얻기까지 가장 크게 기여한 제품은 약 30년 전에 개발한 PDF입니다.

Adobe의 기본 Android 모바일 앱인 Adobe Acrobat Reader는 안정적으로 PDF 문서를 보고 서명하며 댓글을 달 수 있는 글로벌 표준 앱으로, 무료이며 5억 회 이상 다운로드되었습니다. 또한 지금도 계속해서 발전하고 있습니다. "지난 한 해 동안 이 Android 애플리케이션에 다양한 기능을 추가했습니다"라고 Adobe의 컴퓨터 과학자인 슈브함 가그는 이야기합니다. 사용자들은 새로운 기능에 만족했지만, 앱 크기가 커져 전환이 줄어드는 결과가 발생했습니다. 이러한 문제와 관련해 슈브함은 "특히 개발도상국에서 이러한 두 문제가 더 두드러지게 나타납니다"라고 말합니다.

진행한 작업

Android App Bundle을 통해 Adobe는 큰 노력 없이 Acrobat의 앱 크기를 줄일 수 있었습니다. "App Bundle로 쉽게 이전할 수 있었죠"라고 슈브함은 말합니다. "이미 앱에서 최소 Android SDK 버전과 Gradle 요구사항을 지원했으므로, 코드를 아주 조금 변경하기만 하면 됐습니다." 슈브함은 Google에 서명 키 사본을 안전하게 전송하는 것으로 쉽게 출시를 완료했다고 이야기합니다.

번들을 사용하는 것 외에도 Adobe는 여러 앱 기능을 모듈화하여 앱 크기를 더 줄이기로 했습니다. 슈브함은 말합니다. "이미 앱 내에서 라이브러리 모듈을 사용하고 있었지만 동적 기능을 통해 모듈화에 관해 다양한 측면으로 생각하게 되었어요. 앱을 기능에 관한 컴파일 시간 종속 항목 없이 독립적으로 전송하고 기능은 나중에 설치되도록 할 수 있었습니다."

처음 모듈화한 기능은 '작성 및 서명'이었습니다. Dynamic Delivery를 사용하면서 더 이상 각 APK에 모든 화면 밀도와 언어별 리소스를 포함하지 않아도 되었습니다. 이전 APK를 이미 아키텍처별로 분할했으므로 App Bundle과의 호환성을 위해 추가로 작업할 필요도 없었습니다.

결과

App Bundle과 Dynamic Delivery를 통해 Acrobat의 앱 크기를 15MB, 즉 22%~25% 정도로 줄일 수 있었습니다. 일부 기기에서는 30%까지도 줄었습니다. 출시도 완벽했습니다. "성능 저하는 발생하지 않았고, 다운로드 환경도 원활했어요"라고 슈브함은 말합니다. 슈브함은 편리한 테스트 환경이 한몫했다고도 말합니다. "내부 앱 공유를 활용했습니다. Play 스토어 환경을 이용하면서 버전 관리를 걱정하지 않고 디버그 가능한 앱을 업로드할 수 있었죠."

번들을 사용하면서 시간도 절약했습니다. 팀에서 이제 하나의 아티팩트만 Google Play에 업로드하면 되기 때문입니다. 슈브함은 "이전에는 아키텍처별로 분할된 4개의 다른 APK를 사용해야 했어요"라고 이야기합니다. 지금은 번들 하나로 충분합니다. 설치 전환율도 5%~7% 증가했으며 앱 크기에 불만을 느끼는 사용자도 줄었습니다.

슈브함은 Dynamic Delivery와 관련하여 "앱 설치 크기가 줄고 시간도 단축되었습니다"라고 말합니다. 모듈화 전에는 팀에서 버전마다 4개의 다른 APK를 업로드했습니다. 각 APK의 버전 코드가 달랐으므로 vitals와 분석을 따로 측정해야 했으므로, 프로세스가 번거롭고 오류가 발생하기 쉬웠습니다. 그러나 App Bundle을 사용하면서 이제는 단일 버전 코드로 하나의 아티팩트만 업로드하면 됩니다. 슈브함은 말합니다. "개발 프로세스를 간소화하는 데 도움이 되었습니다. 이제 하나의 빌드만 테스터와 공유하면 됩니다. 나머지는 모든 기기에서 작동할 것을 확신하니까요."

다음 단계는 무엇일까요? "앱 크기 축소나 특정 기능의 Dynamic Delivery가 어떤 이점이 있는지 확인하고자 특정 잠재고객을 타겟팅하여 조건부 기능 전송을 실험하려고 합니다"라고 슈브함은 이야기합니다.

시작하기

모든 앱 및 게임 개발자는 Android App Bundle을 사용할 수 있습니다. 지금 바로 시작하기