Meningkatkan kecepatan aplikasi sebesar 30%: bahan utama dalam resep pertumbuhan Zomato

Zomato adalah perusahaan agregator restoran dan pengiriman makanan multinasional India yang melayani pelanggan di 500 kota di India saja. Dengan lebih dari 43 juta lebih pelanggan aktif dan 1,5 juta+ pesanan rata-rata per hari, ini adalah salah satu layanan pemesanan dan pengiriman makanan paling populer di negara ini. Artinya, pelanggan menggunakan berbagai perangkat dan memiliki ketersediaan jaringan yang berbeda. Selain pengiriman yang cepat, hal ini juga membuat pengalaman yang lancar dan lancar di aplikasi adalah hal yang penting.

Pengguna mengharapkan waktu buka aplikasi dan responsivitas yang cepat. Meningkatkan metrik ini tidak hanya berdampak langsung pada Data Aplikasi, tetapi juga memastikan lebih banyak penyelesaian pesanan dan mendukung strategi Zomato - memperluas ke pasar baru dan memungkinkan pengalaman yang lebih baik pada perangkat kelas rendah hingga menengah.Hal ini pada akhirnya membantu mereka mendapatkan miliaran pengguna berikutnya. Waktu buka aplikasi juga berfungsi sebagai prediktor untuk peningkatan ukuran funnel saat pengguna bergerak lebih jauh ke funnel penjualan.

Zomato juga memperoleh sejumlah peningkatan mengesankan dengan berfokus pada Data Aplikasi. Misalnya, mempercepat waktu pemuatan aplikasi sebesar 30% menghasilkan peningkatan retensi pelanggan Hari ke-1 sekitar 90% !

Tantangan

Kecepatan pengembangan Zomato yang cepat dan fokus pada penambahan fitur, meskipun bagus bagi pelanggan, mengakibatkan kebutuhan untuk mengoptimalkan codebase dan UX mereka. Selain ingin menambahkan fitur baru, Zomato juga ingin menjaga performa mereka agar tetap sebanding. Karena banyak SDK yang menggunakan resource yang tidak selalu diperlukan, mereka perlu merampingkan dan merasionalisasi codebase.

Semua ini didukung oleh ekspansi Zomato ke kota-kota Tier 2 dan Tier 3 di India, di mana orang sebagian besar menggunakan perangkat tingkat rendah hingga menengah dengan kapasitas pemrosesan yang relatif terbatas. Dengan dimasukkannya perangkat ini, tim harus memastikan pengalaman pengguna kelas dunia yang sama seperti pada perangkat dengan tingkat yang lebih tinggi.

Apa yang mereka lakukan?

Zomato menggunakan rubrik sederhana untuk menganalisis overhead mereka - solusi mana yang dapat memberikan laba atas investasi terbaik vs upaya dari tim pengembangan. Dengan menggunakan rubrik ini, tim memulai dengan perjalanan pengoptimalan dan peningkatan selama 4 bulan.

Langkah pertama adalah melihat pelacakan sistem untuk menemukan masalah, melakukan analisis berbasis waktu, dan memprioritaskannya secara sesuai. Perfetto adalah alat yang sempurna untuk menganalisis, membuat profil, dan melacak proses Android. Zomato menggunakan alat ini untuk melacak semua SDK yang diinisialisasi selama startup aplikasi dan menunjukkan SDK yang dapat dihapus atau dimuat dengan lambat.

Menghapus SDK lama dan library pihak ketiga yang tidak digunakan adalah prioritas utama karena merupakan tugas dengan upaya yang rendah dan dengan upaya yang tinggi. Pendekatan ini membantu Zomato menghemat waktu startup aplikasi sebesar 20%.

Banyak library pihak ketiga menggunakan penyedia konten untuk melakukan inisialisasi saat aplikasi dimulai, yang memengaruhi waktu startup aplikasi. Zomato menggunakan Facebook SDK untuk login, tetapi pengguna juga memiliki opsi login lainnya, sehingga menginisialisasi SDK saat startup tidak efisien. Dengan diperkenalkannya library App Startup, Zomato hanya memuat SDK jika pengguna menggunakan opsi login Facebook. Hal ini membantu mereka mengurangi waktu startup sebesar ~6%!

Langkah berikutnya adalah memperbaiki waktu inflation tampilan karena rendering dan inflation tampilan itu sendiri dapat memakan waktu yang signifikan dalam struktur UI yang kompleks seperti Zomato. Viewtub membantu meningkatkan efisiensi karena memungkinkan tampilan dibuat tetapi tidak ditambahkan ke hierarki tampilan kecuali jika diperlukan. Viewtub lebih efisien daripada menggunakan View. PERGI seolah-olah dalam status GONE, tampilan akan meningkat dan akan menghabiskan memori serta penggunaan CPU. Zomato meratakan hierarki tampilan dan menggabungkan tata letak bersama dengan viewtub di aktivitas login. Perubahan ini mengurangi waktu inflasi secara signifikan sebesar 7%.

Android profiler membantu mengoptimalkan penggunaan memori, karena memungkinkan pelacakan aktivitas CPU, memori, dan jaringan secara real-time. Profiler memungkinkan mereka mengidentifikasi masalah utama atas situasi penguncian dan overhead memori serta memperbaikinya. Zomato juga mengerjakan mekanisme caching untuk mencapai penurunan besar-besaran sebesar 60% dalam masalah kehabisan memori.

Tindakan Sebelum (dtk) Setelah (dtk) Peningkatan
Menghapus SDK lama, library pihak ketiga yang tidak digunakan 4,873 3,813 21,74%
Library pemuatan lambat 3,814 3,577 6,2%
Peningkatan tata letak, viewtub 2,529 2,348 7,15%

Waktu startup aplikasi = Inisialisasi aplikasi + Waktu pemuatan library + Waktu pengembangan tampilan

Hasil

Peningkatan performa Zomato membantu mereka menciptakan pengalaman yang jauh lebih lancar. Peningkatan UI dan cache lebih lanjut, juga mengurangi jank.

Aplikasi ke halaman beranda (mengklik ikon aplikasi hingga halaman beranda yang dimuat sepenuhnya dan dapat digunakan) adalah metrik bisnis utama yang dilacak Zomato secara internal. Setelah peningkatan diterapkan, mereka melihat peningkatan yang signifikan dalam metrik ini. Pelanggan yang membuka halaman yang dimuat sepenuhnya meningkat sekitar 20% selama periode ini.

Hasilnya, retensi pelanggan Hari ke-1 mengalami peningkatan sekitar 90%. Peningkatan ini juga memiliki efek menetes pada funnel maju - keseluruhan rasio pesanan-tayang (home -> menu -> cart -> order) meningkat sebesar ~1,5 poin persentase, yaitu sekitar 600 ribu pesanan MoM.

Menurut metrik cold startup milik Firebase performa, terdapat peningkatan rata-rata 25%, dan untuk perangkat dengan performa rendah/menengah, peningkatan waktu startup aplikasi cold mencapai hingga 30%.

Performa waktu startup aplikasi adalah metrik penting yang memengaruhi persepsi pengguna. Upaya investasi untuk mengoptimalkan performa juga dapat memberikan dampak yang signifikan pada bisnis.

“Di Zomato, memberikan dan membangun untuk memberikan pengalaman pelanggan yang luar biasa selalu menjadi pusat ideologi kami. Kami yakin performa adalah salah satu pendorong utama dan karenanya tim kami berusaha mencapai keunggulan engineering untuk meningkatkan waktu pemuatan aplikasi menggunakan alat developer Google dan melihat hasil yang substansial secara real time. Berkat hal ini, kami berharap dapat menyediakan aplikasi yang secepat kilat untuk kebutuhan pemesanan online di India dan menetapkan tolok ukur bagi pengembangan kami pada masa mendatang.”

— Sajal Gupta, Engineering Manager, Zomato