이 글의 원문은 여기서 확인 가능합니다.
이 시리즈의 이전 블로그 게시물에서는 앱 우수성을 "일관적이고 수월하며 원활한 앱 사용자 환경을 제공하는 앱을 만들어, 기기에 관계없이 높은 성능과 훌륭한 환경을 제공하는 것”으로 정의했습니다. 앱 성능이라는 개념에 집중해 봅시다. 고성능 앱의 특징이 무엇이고, 어떻게 해야 강력한 성능을 통해 앱 우수성을 달성할 수 있을까요?
사용자의 관점에서, 고성능 앱은 '그냥 잘 작동하는 앱'입니다. 하지만 고성능 앱을 만드는 과정이 항상 간단한 건 아닙니다. 자세히 보자면 '고성능'에는 다음과 같은 주요 특성이 있습니다.
안정성
앱은 안정적이며 신뢰할 수 있어야 합니다. 앱이 멈춰 버리거나(앱이 응답하지 않는 'ANR(Application Not Responding)' 상태) 다운되면 안 됩니다. 앱을 출시하기 전에 Google Play의 사전 출시 보고서를 확인하여 잠재적인 안정성 문제를 파악하세요. 배포 후에는 Google Play 개발자 콘솔의 Android Vitals 페이지를 확인하세요. 특히 ANR은 스레딩 문제로 인해 발생합니다. 앱에 존재하는 어떤 ANR이든 ANR 문제 해결 가이드로 진단하고 해결할 수 있습니다.
빠른 로딩 속도
사용자가 앱을 처음 접하면서 경험하는 일이 '기다림'이라면 어떨까요? 사용자는 어느 정도 기다리다가 더 이상 집중하지 못하거나 지루해할 것이고, 이는 곧 신규 사용자를 잃게 된다는 뜻입니다. 따라서 앱은 빠르게 로드되어야 하고, 로딩이 느리면 적어도 화면에 진행 표시기 같은 일종의 피드백이 제공되어야 합니다. Android vitals의 데이터를 사용하면 앱을 시작할 때 발생할 수 있는 문제를 정량화할 수 있습니다. Android vitals는 아래 사항을 시작 시간이 과도하게 긴 것으로 봅니다.
콜드 스타트업에 5초 이상 걸림.
웜 스타트업에 2초 이상 걸림.
핫 스타트업에 1.5초 이상 걸림.
그러나 이는 비교적 보수적인 수치입니다. 더 낮은 수치를 목표로 하는 것이 좋습니다. 시작 성능 테스트 방법에 대한 몇 가지 좋은 팁을 확인해 보세요.
빠른 렌더링
고품질 프레임 렌더링은 게임에만 필요한 것이 아닙니다. 멈추거나 작동 속도가 느려지지 않는 부드러운 시각적 경험도 앱에 중요한 부분입니다. 초당 60프레임을 달성하기 위해 16ms마다 프레임을 렌더링하는 것이 최소 목표이지만, 새로고침 속도가 더 빠른 기기가 시중에 나와 있다는 점을 염두에 두시기 바랍니다. 테스트하면서 성능을 모니터링하려면 Profile HWUI rendering 옵션을 사용하세요. 여기에서 렌더링 문제 진단에 도움이 되는 도구를 찾아볼 수 있습니다.
경제적인 배터리 사용
사용자는 배터리를 빠르게 소모하는 앱이 있다는 사실을 깨닫는 즉시 그 앱을 제거할 겁니다. 앱은 부분적인 웨이크 락의 고정, 절전 모드의 과도한 해제, 백그라운드 Wifi 스캔, 백그라운드 네트워크 사용 등에 배터리를 소모할 수 있습니다. 계획된 백그라운드 작업 시에 Android Studio 에너지 프로파일러를 함께 사용해 예기치 않은 배터리 사용을 진단해 보세요. 앱이 종료되어도 백그라운드 작업을 시스템이 계속 실행해야 하는 앱의 경우, WorkManager는 작업의 제약 조건이 충족될 때 지연 가능하며 보장된 백그라운드 작업을 실행하는 배터리 친화적인 Android Jetpack 라이브러리입니다.
최신 SDK 사용
보안과 성능 모두를 위해, 사용되는 모든 Google 또는 타사 SDK가 최신 버전이어야 한다는 점이 중요합니다. 안정성, 호환성, 보안 등에 관련된 SDK의 개선 사항을 사용자에게 제때 제공해야 합니다. 개발자 여러분은 여러분이 활용할 수 있는 타사 SDK를 포함하여 전체 코드베이스에 대한 책임을 집니다. Google SDK의 경우, 가능하면 Google Play 서비스에서 제공하는 SDK를 사용하시기 바랍니다. 이러한 SDK는 이전 버전과 호환되고, 자동 업데이트되며, 앱 패키지 크기를 줄이고, 기기의 리소스를 효율적으로 사용합니다.
자세히 알아보려면 Android 앱 우수성 웹페이지를 확인하세요. 다양한 사례 연구와 실용적인 팁도 함께 찾아보고 App Excellence Summit에 등록하실 수 있습니다.
다음 블로그 게시물에서는 여러 기기에 걸쳐 원활하게 작동하는 사용자 환경에 대해 말씀드리겠습니다. Android 개발자 뉴스레터 구독을 신청해 다음 호 알림 메시지를 받고 Android 팀에서 전하는 다양한 뉴스와 정보를 받아보세요.