OkCredit เป็นแอปจัดการบัญชีเครดิตสำหรับเจ้าของร้านค้าและลูกค้าหลายล้านรายในอินเดีย OkCredit มีธุรกรรม 140 ล้านรายการในแต่ละเดือน และมียอดดาวน์โหลดมากกว่า 50 ล้านครั้ง โดยในปีที่ผ่านมาเพียงปีเดียว OkCredit ได้บันทึกธุรกรรมมูลค่า 5 หมื่นล้านดอลลาร์สหรัฐในแอป
เมื่อพิจารณาถึงขนาดการดำเนินงานของ OkCredit และธุรกิจหลายล้านแห่งที่ต้องพึ่งพาแอปของ OkCredit ในการจัดการบัญชี จึงเป็นสิ่งจำเป็นที่ OkCredit ต้องมอบประสบการณ์การใช้งานที่ราบรื่นและไร้รอยต่อแก่ผู้ใช้ทั้งหมด ไม่ว่าผู้ใช้จะใช้อุปกรณ์ใดก็ตาม
ผู้ใช้ให้รางวัลแก่แอปที่มีประสิทธิภาพดีที่สุดด้วยรีวิวเชิงบวกและการให้คะแนนสูง แอปที่มีปัญหาด้านความเสถียรหรือประสิทธิภาพมักจะทำให้ผู้ใช้รู้สึกหงุดหงิดและแย่กว่านั้นคือได้คะแนนไม่ดี ด้วยเหตุนี้ ANR (แอปพลิเคชันไม่ตอบสนอง) จึงเป็นเมตริกประสิทธิภาพที่สำคัญซึ่งควรติดตามหากคุณต้องการสร้างความพึงพอใจให้ผู้ใช้และมอบประสบการณ์ของผู้ใช้ที่ดีอย่างสม่ำเสมอ
การลงทุนของ OkCredit ในการปรับปรุง Android Vitals เช่น การลด ANR และการปรับปรุงเวลาเริ่มต้นของแอป ทำให้บริษัทได้รับผลตอบแทน โดยเฉพาะในอุปกรณ์ระดับล่าง (ซึ่งมีทรัพยากรจำกัดอยู่แล้ว) ทั้งยังเห็นการปรับปรุงทั้งในด้านการรักษาลูกค้าและการทำธุรกรรมของผู้ขายในแอป
ความท้าทาย
ผู้ใช้ที่ใช้อุปกรณ์ระดับล่างเป็นหนึ่งในกลุ่มสำคัญของ OkCredit อุปกรณ์เหล่านี้มีทรัพยากรจำกัด และการเรียกใช้งานที่ต้องใช้ทรัพยากรมากอาจทำให้ผู้ใช้ได้รับประสบการณ์ที่ไม่ดี ตัวอย่างเช่น ความท้าทายด้านการบำรุงรักษาที่สำคัญคือการติดตามและเพิ่มการตรวจสอบ ANR เป้าหมายคือการแก้ไขปัญหาเหล่านี้โดยมีจุดประสงค์เพื่อปรับปรุงประสบการณ์โดยรวมของผู้ใช้และเพิ่มธุรกรรมของผู้ขาย
แล้วเขาแกล้งคนยังไงบ้างล่ะ
การลด ANR และปรับปรุงเวลาเริ่มต้นของแอปอย่าง OkCredit หมายถึงลูกค้าที่พึงพอใจและที่สำคัญคือการเพิ่มธุรกรรมของผู้ขายในแอป
เบาะแสที่สำคัญที่สุดในการแก้ไขข้อบกพร่องของ ANR คือการค้นหาว่าเทรดหลักกำลังทำอะไรอยู่เมื่อเกิด ANR OkCredit ได้สร้างแนวทางที่มีโครงสร้างในการระบุ ANR เหล่านี้โดยอิงตามความคิดเห็นจาก Google
- ตรวจสอบประสิทธิภาพโดยใช้ Android Vitals และใช้การรายงานที่กําหนดเองใน Firebase Crashlytics เพื่อดูข้อมูลเกี่ยวกับ ANR
- เพิ่มประสิทธิภาพการเริ่มต้นไลบรารีของบุคคลที่สามตั้งแต่เริ่มแอปโดยย้ายไลบรารีเหล่านี้ไปยังเธรดเบื้องหลัง
- ใช้เครื่องมือต่างๆ เช่น Systrace และ Profiler เพื่อระบุ ANR ใน Broadcast Receiver และบริการ นอกจากนี้ Macrobenchmark ใน CI ยังช่วยเปรียบเทียบการเริ่มต้นแบบ Cold ได้อีกด้วย
- เมื่อใช้โปรไฟล์เมธอด เราพบว่าออบเจ็กต์ควรโหลดแบบเลซี
- เราใช้ Perfetto เพื่อระบุเลย์เอาต์ที่มีการขยายขนาดสูง
- เราแก้ปัญหา ANR ในค่ากำหนดที่แชร์โดยเปลี่ยน apply() ทั้งหมดเป็น commit() ในเธรดเบื้องหลัง
เราได้ตรวจสอบงานข้างต้นเพื่อยืนยันผลลัพธ์โดยการเปรียบเทียบเมตริกหรือใช้เครื่องมือต่างๆ เช่น systrace, CPU profiler เป็นต้น
ผลลัพธ์
นอกเหนือจากการปรับปรุงเมตริกและประสบการณ์ของผู้ใช้แล้ว ทีมพัฒนา OkCredit ยังได้รับข้อมูลเชิงลึกที่ช่วยปรับปรุงกระบวนการพัฒนาในอนาคต

- ในอุปกรณ์ระดับล่าง -
- ลด ANR ลง 60%
- ปรับปรุงการรักษาลูกค้าในวันที่ 1 ของอุปกรณ์ระดับล่างได้ประมาณ 22%
- ธุรกรรมเฉลี่ยสำหรับผู้ขายแต่ละรายเพิ่มขึ้น 30%
- คะแนนแอปใน Play Store เพิ่มขึ้นจาก 4.3 เป็น 4.6
- ปรับปรุงเวลาที่ใช้ในการเริ่มต้นแบบ Cold ประมาณ 70%
- เห็นการปรับปรุง 60 % ในการคลิกของผู้ใช้เพื่อแสดงเฟรมแรกแบบเต็มบนหน้าจอใดก็ได้
การฝึกนี้ช่วยให้ทีมได้ร่วมกันสร้างแนวทางปฏิบัติแนะนำและกระตุ้นให้ทีมมุ่งเน้นการปรับปรุงประสบการณ์ของผู้ใช้ ทีมได้เริ่มใช้เครื่องมือต่างๆ เช่น Perfetto และโปรไฟล์เลอร์ CPU ในระหว่างการพัฒนาเพื่อทำความเข้าใจระบบให้ดียิ่งขึ้นและตัดสินใจได้เร็วขึ้น
"การมุ่งเน้นที่การลด ANR ช่วยให้เราสร้างความแตกต่างด้วยการมอบประสบการณ์ที่ยอดเยี่ยม ซึ่งส่งผลให้การรักษาลูกค้าเพิ่มขึ้นและการเลิกใช้งานลดลง นอกจากนี้ ด้วยความยอดเยี่ยมด้านวิศวกรรมของทีม แนวทางปฏิบัติต่างๆ เช่น แนวทางเหล่านี้จึงมีอิทธิพลอย่างมากต่อวัฒนธรรมขององค์กร ซึ่งทำให้เราในฐานะทีมและบริษัทรู้สึกภาคภูมิใจที่ได้สร้างมาตรฐานใหม่ด้านประสิทธิภาพของแอปในอุตสาหกรรม SMB ของอินเดียที่เพิ่งเริ่มต้นการเปลี่ยนไปใช้ระบบดิจิทัล"
- Gaurav Kunwar (ผู้ร่วมก่อตั้งและ CPO - OkCredit)