Turo는 Android 개발자 도구 및 모범 사례를 사용하여 앱 시작 시간을 77% 단축했습니다.
Turo는 신뢰할 수 있는 호스트의 활기찬 커뮤니티에서 원하는 차량을 원하는 곳 어디에서나 예약할 수 있는 세계 최대의 자동차 공유 시장입니다.
Turo의 개발자들은 최근 Android 애플리케이션의 시작 성능을 개선하는 데 막대한 투자를 했습니다. 시작 시간 은 사용자가 앱에 대해 가지는 첫인상이며 로드 시간이 느려지면 사용자 유지 및 참여에 부정적인 영향을 미칠 수 있습니다. 팀은 사용자가 앱을 실행할 때마다 더 빠르고 간소화된 경험을 제공하기를 원했습니다. 그리고 Android 최고의 도구, 리소스 및 방법을 사용하여 앱의 시작 시간을 77% 단축할 수 있었습니다.
App Startup 라이브러리로 무대 설정
앱 초기화에는 애플리케이션의 전체 시작 프로세스와 첫 번째 UI 프레임을 렌더링하기 전에 실행되는 모든 코드가 포함됩니다. Turo의 경우 이는 사용자가 앱의 홈 화면을 표시하기 전에 앱이 초기 시작, 동기식 네트워크 요청 및 맞춤형 스플래시 애니메이션을 실행할 때까지 기다려야 함을 의미했습니다.
Turo의 개발자들은 애플리케이션의 로딩 시간을 개선하려면 이러한 성가신 시작 이벤트를 압축하고 제거해야 한다는 것을 알고 있었습니다. 이러한 이벤트를 줄이기 위해 Turo 엔지니어는 Android의 App Startup 라이브러리를 사용했습니다 .
App Startup 라이브러리는 Turo의 개발자에게 애플리케이션 실행 중에 여러 구성 요소를 초기화할 수 있는 간단하고 효율적인 방법을 제공했습니다. 또한 초기화할 구성 요소와 순서를 선택할 수 있어 로드 시간을 크게 개선할 수 있었습니다. App Startup 라이브러리를 갖추면 Turo의 나머지 시작 최적화를 위한 기반이 마련됩니다.
네트워크 요청 연기 및 시작 화면 자르기
최적화 전에 앱은 여러 네트워크 요청을 순차적으로 수행한 다음 사용자가 앱의 홈 화면에 액세스하기 전에 사용자 지정 1초 스플래시 애니메이션을 표시했습니다. 이로 인해 특히 사용자의 네트워크 연결이 좋지 않은 경우 시작 프로세스가 느려졌습니다.
스플래쉬 애니메이션을 제거하는 것은 Turo 개발자가 인지된 로딩 시간을 개선할 수 있는 쉬운 방법이었습니다. 또한 네트워크 요청을 병렬 및 비동기화함으로써 사용자는 홈 화면에 훨씬 빠르게 액세스할 수 있습니다. “처음에는 전용 SplashActivity를 사용하여 앱을 HomeActivity로 라우팅하기 전에 모든 시작 작업을 실행했습니다. 그러나 최신 지침에서는 이러한 접근 방식에 대해 조언합니다. 따라서 중복 SplashActivity를 제거하고 Splash Screen API를 활용하여 모든 시작 로직을 루트 활동으로 이전했습니다.
동시에 이 앱은 개별 사용자에게 경험을 맞춤화하기 위해 여러 가지 다른 시작 네트워크 요청을 수행하여 일관되지 않은 사용자 경험을 초래했습니다. “게스트가 앱을 사용하는 경우 일부 네트워크 요청은 어떤 화면이 시작 화면 다음에 표시됩니다.”라고 Pavlo가 말했습니다. “기본적으로 홈 화면입니다. 그러나 사용자가 활성 차량 예약 또는 피드백 화면으로 바로 리디렉션될 수 있는 특별한 경우가 있습니다.”
팀은 이러한 틈새 시나리오를 확인하여 모든 앱 시작 속도를 늦추고 싶지 않았습니다. 대신 이제 Turo는 네트워크 요청을 비동기적으로 만드는 동안 기본적으로 항상 홈 화면을 엽니다. 리디렉션이 필요한 경우 홈 화면 상단에 해당 화면이 표시됩니다.
기본 프로필 적용
Turo 팀은 애플리케이션의 성능을 개선하기 위해 Baseline Profiles 도 적용했습니다. 기본 프로필은 시작 코드 경로를 미리 컴파일하여 Macrobenchmark 테스트에 따라 Turo의 앱 시작 시간을 15% 더 단축하는 데 도움이 됩니다. Pavlo는 "모든 동기식 네트워크 요청을 제거한 후 시작 기간이 더 결정적이었으며 기준 프로필을 적용하는 것이 더 합리적이었습니다."라고 말했습니다.
성능 향상은 사용자 유지율 향상, 트랜잭션 증가 및 평가 향상으로 이어질 수 있습니다. 베이스라인 프로필은 바늘을 대량으로 이동하는 빠르고 안정적인 방법입니다.
시작 성능 우선 순위 지정
앱의 시작 시간에 영향을 줄 수 있는 많은 요소가 있습니다. 최고의 사용자 경험을 위해 앱을 최적화하기 위해 언제 어디서 어떻게 앱을 개선할 수 있는지 파악하는 것은 개발자의 몫입니다.
Pavlo는 “최소한의 노력으로 최대의 결과를 내는 작업부터 개선을 시작하는 것이 중요합니다.”라고 말했습니다. “대부분의 경우 엔지니어링은 제품 작업이나 성능 최적화에 시간과 자원을 할당하는 것 사이에서 갈등에 직면합니다. 그러나 성능을 독립형 제품 기능으로 취급하는 것은 성공을 위해 불가피합니다.”
오늘 앱을 최적화하세요
앱 최적화를 위한 Android의 모범 사례 , Android의 앱 시작 및 기본 프로필을 사용하여 앱의 시작 시간을 개선하세요 .
또한 Turo가 Android의 개발자 도구 및 모범 사례를 사용하여 앱의 시작 효율성을 개선한 방법에 대한 전체 내용을 읽을 수 있습니다 .