ANR을 줄인 후 OkCredit의 평균 판매자 거래가 30% 증가했습니다.
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
OkCredit은 인도에 거주하는 수백만 명의 매장 소유자와 고객을 위한 신용 계좌 관리 앱입니다. 전월 대비 1억 4,000만 건의 거래와 5,000만 회 이상의 다운로드를 기록했으며, OkCredit는 작년에만 앱에서 500억 달러 상당의 거래를 기록했습니다.
OkCredit의 규모와 앱을 사용해 계정을 관리하는 수많은 기업을 고려할 때 OkCredit은 사용자가 사용하는 기기와 상관없이 모든 사용자에게 원활하고 원활한 경험을 제공해야 합니다.
사용자는 긍정적인 리뷰와 높은 평점을 통해 최고의 성능을 내는 앱에 보상을 제공합니다. 앱의 안정성이나 성능 문제가 발생하면 불만을 느끼게 되며, 오히려 평점이 나빠지는 경우도 있습니다. 따라서 ANR (애플리케이션 응답 없음)은 사용자의 만족도를 높이고 지속적으로 우수한 사용자 환경을 제공하는 것이 목표인지 여부를 추적하는 중요한 성능 측정항목이 됩니다.
OkCredit은 ANR을 줄이고 앱 시작 시간을 개선하는 등 Android vitals를 개선하는 데 투자했으며, 특히 리소스가 제한된 저사양 기기에서 더 큰 성과를 거두었습니다. 그 결과 고객 유지율은 물론 앱에서의 판매자 거래도 모두 개선되었습니다.
과제
OkCredit의 주요 세그먼트 중 하나는 저사양 기기 사용자였습니다. 이러한 기기는 리소스가 제한되어 있으므로 이러한 기기에서 과세 작업을 실행하면 최적의 사용자 환경을 쉽게 만들 수 있습니다. 예를 들어 ANR을 추적하고 계측하는 것이 유지보수에 관한 주요 과제였습니다. 전반적인 사용자 경험을 개선하고 판매자 거래를 늘리는 것을 목표로 이러한 문제를 해결하는 것이 목표였습니다.
무슨 일을 했나요?
OkCredit과 같은 앱의 ANR을 줄이고 앱 시작 시간을 개선하여 고객의 만족도를 높이고 앱에서의 판매자 거래도 늘렸습니다.
ANR 디버깅에서 가장 중요한 단서는 ANR이 발생했을 때 기본 스레드에서 어떤 작업을 하고 있었는지 확인하는 것입니다. OkCredit은 Google의 의견을 바탕으로 이러한 ANR을 식별하는 구조화된 접근 방식을 만들었습니다.
- Android Vitals를 사용하여 성능을 모니터링하고 Firebase Crashlytics에서 커스텀 보고서를 사용하여 ANR을 학습했습니다.
- 앱 시작부터 서드 파티 라이브러리를 백그라운드 스레드로 이동하여 초기화를 최적화함
- Systrace 및 Profiler와 같은 도구를 사용하여 broadcast receiver 및 서비스에서 ANR을 식별했습니다. CI 기반 Macrobenchmark는 콜드 스타트업을 벤치마킹하는 데도 도움이 되었습니다.
- 메서드 프로파일러를 사용하여 객체가 느리게 로드되는 것으로 식별되었습니다.
- perfetto를 사용하여 높은 인플레이션 레이아웃이 식별되었습니다.
- 백그라운드 스레드에서 모든 apply()를 commit()으로 변경하여 공유 환경설정의 ANR을 해결했습니다.
위의 작업은 측정항목을 비교하거나 systrace, CPU 프로파일러 등의 도구를 사용하여 영향을 확인할 수 있도록 검증되었습니다.
결과
OkCredit 개발팀은 측정항목과 사용자 환경을 개선하는 것 외에도 향후 개발 프로세스를 개선하는 데 도움이 되는 유용한 정보를 얻었습니다.
- 저사양 기기 -
- ANR 60% 감소
- 저사양 기기의 1일 차 고객 유지율 약 22% 향상
- 각 판매자의 평균 거래 30% 증가
- Play 스토어에서 앱 평점이 4.3에서 4.6으로 개선되었습니다.
- 콜드 스타트 시간 약 70% 개선
- 어느 화면에서든 첫 번째 프레임을 완전히 그리는 사용자 클릭을 60 % 개선
이 연습을 통해 팀은 권장사항을 만들고 사용자 경험을 개선하는 데 집중하게 되었습니다. 팀은 시스템에 대한 이해도를 높이고 더 빠르게 결정을 내리기 위해 개발 자체 단계에서 Perfetto와 CPU 프로파일러와 같은 도구를 사용하기 시작했습니다.
"ANR을 줄이는 데 집중한 덕분에 만족스러운 경험을 제공하여 다른 업체와 차별화할 수 있었습니다. 그 결과 유지율이 증가하고 이탈이 줄었습니다.
또한 팀의 엔지니어링 우수성으로 인해 이러한 관행은 조직 문화에 큰 영향을 미칩니다. 덕분에 초기 인도 SMB 디지털화 업계에서 새로운 앱 성능 벤치마크를 세우고 있는 회사로서 자부심을 느낍니다."
– 고라브 쿤와르 (OkCredit) 공동 설립자 겸 CPO
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 OpenJDK는 Oracle 및 Oracle 계열사의 상표 또는 등록 상표입니다.
최종 업데이트: 2022-04-13(UTC)
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["필요한 정보가 없음","missingTheInformationINeed","thumb-down"],["너무 복잡함/단계 수가 너무 많음","tooComplicatedTooManySteps","thumb-down"],["오래됨","outOfDate","thumb-down"],["번역 문제","translationIssue","thumb-down"],["샘플/코드 문제","samplesCodeIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2022-04-13(UTC)"],[],[],null,["# OkCredit’s average merchant transaction goes up by 30% after reducing ANR\n\nOkCredit is a credit account management app for millions of shop owners and their customers in India. With 140M transactions month over month, and 50M+ downloads, last year alone saw OkCredit recording $50 billion worth of transactions on the app.\n\nConsidering the scale that OkCredit operated in, and the millions of businesses that depend on its app for managing their accounts, it is imperative that OkCredit ensures a smooth and seamless experience for all its users, irrespective of the device they are using.\n\nUsers reward the best performing apps with positive reviews and high ratings. An app that has stability or performance issues often leads to frustration and even worse, bad ratings. This makes ANRs (Application Not Responding) an important performance metric to track if you're aiming to delight your users and give them a consistently good user experience.\n\nOkCredit's investments in improving Android Vitals, like reducing ANR and improving app startup time led them to reap dividends, especially on low-end devices (which are already resource limited). They saw both improvements in customer retention as well as merchant transactions on the app.\n\nThe Challenge\n-------------\n\nOne of the key segments for OkCredit were users on low-end devices. These devices are resource limited and running taxing tasks on them can easily create a sub-optimal user experience. For example, a major maintenance challenge was tracking and adding instrumentation for ANRs. The goal was to address these issues with the aim of improving the overall user experience and increasing merchant transactions.\n\nWhat did they do?\n-----------------\n\nReducing ANR and improving app startup times for an app like OkCredit meant happy customers and moreover an increase in merchant transactions on the app.\n\nThe most important clue in debugging an ANR is finding out what the main thread was doing when the ANR happened. Working with feedback from Google, OkCredit created a structured approach for identifying these ANRs.\n\n- Monitored performance using Android Vitals and used custom reporting on Firebase Crashlytics to learn about ANRs\n- Optimized initialization of third party libraries from App start, by moving these to a background thread\n- Used tools like Systrace and Profiler to identify ANRs in broadcast receivers and Services. Macrobenchmark on CI also helped benchmark cold startups.\n- Using method profiler, objects were identified to be loaded lazily.\n- Using perfetto, high inflation layouts were identified.\n- ANR in shared preferences were solved by changing all apply() to commit() in a background thread.\n\nThe above tasks were validated to confirm their impact by comparing metrics or using tools such as systrace, CPU profiler etc.\n\nThe Results\n-----------\n\nBeyond improving metrics and the user experience, the OkCredit development team gained insights that helped them improve their development process going forward. \n\n- On low-end devices -\n - Reduced ANR by 60%\n - Improved Day 1 customer retention of low-end devices by about 22%\n - The average transaction for each merchant increased by 30%\n- Improved app rating from 4.3 to 4.6 on the Play Store\n- Cold startup time improved by \\~70%\n- Saw 60 % improvement in user click to full draw of first frame on any screen\n\nThis exercise has brought the team together to create best practices and encouraged them to focus on improving the user experience. The team has started using tools like Perfetto and CPU profiler during development itself in order to improve their understanding of the system and make decisions faster.\n\u003e \"Focusing on reducing ANRs has helped us differentiate ourselves by offering a\n\u003e delightful experience. This has led to increased retention, and reduced churn.\n\u003e Additionally, due to the teams' engineering excellence, practices such as\n\u003e these have a profound influence on organization's culture. This makes us proud\n\u003e as a team, and company setting new benchmarks of app performance in the\n\u003e nascent Indian SMB digitisation industry.\"\n\u003e\n\u003e **-- Gaurav Kunwar (Cofounder \\& CPO - OkCredit)**"]]