Zomato, çok uluslu bir restoran toplayıcısı ve paket yemek servisi şirketi olan Zomato, yalnızca Hindistan'ın 500 şehrinde müşterilere hizmet veriyor. 43 milyondan fazla aktif müşteri ve günde ortalama 1,5 milyondan fazla siparişle, ülkedeki en popüler yemek siparişi ve teslimat hizmetlerinden biridir. Bu durum aynı zamanda, müşterilerin çok çeşitli cihazlar kullandığı ve ağ kullanılabilirliklerinin farklı olduğu anlamına da geliyor. Bu durum, hızlı teslimatların yanı sıra uygulamada sorunsuz ve sorunsuz bir deneyimin olmasını da zorunlu kılıyor.
Kullanıcılar, uygulamanın açılma süreleri ve yanıt verme süresinin hızlı olmasını bekler. Bu metriği iyileştirmek yalnızca Uygulama Verileri'ni doğrudan etkilemekle kalmaz, aynı zamanda daha fazla sipariş tamamlamayı sağlar ve Zomato'nun yeni pazarlara açılma ve düşük ila orta düzey cihazlarda daha iyi bir deneyim sağlama stratejisini destekler.Bu yaklaşım, Zomato'nun bir milyar yeni kullanıcıya ulaşmasına yardımcı olur. Kullanıcılar satış dönüşüm hunisinde ilerledikçe uygulama açılış süreleri de dönüşüm hunisi boyutunun yükseldiğinin göstergesidir.
Zomato, Uygulama Verileri'ne odaklanarak önemli başarılar elde etti. Örneğin, uygulama yükleme süresini% 30 hızlandırmak, birinci gün müşterileri elde tutma oranında yaklaşık %90'lık bir iyileşme sağladı.
Zorluk
Zomato'nun hızlı gelişim hızı ve özellik ekleme süreçleri, müşteriler açısından çok iyi olmasına rağmen, kod tabanını ve kullanıcı deneyimini optimize etme ihtiyacını beraberinde getirdi. Zomato, yeni özellikler ekleme arayışında performanslarını da aynı düzeyde tutmak istedi. Her zaman gerekli olmayan kaynakları tüketen çok sayıda SDK'dan dolayı, kod tabanını basitleştirme ve uygun hale getirme ihtiyacı ortaya çıktı.
Zomato, Hindistan'da genellikle düşük ila orta seviye cihazların nispeten daha sınırlı işleme kapasitesine sahip olduğu 2. ve 3. Katman şehirlerini de kapsayacak şekilde genişletildi. Bu da tüm bunlara destek oldu. Bu cihazların dahil edilmesiyle ekip, üst düzey cihazlardakiyle aynı birinci sınıf kullanıcı deneyimini sağlamak zorunda kaldı.
Ne yaptılar?
Zomato genel giderlerini analiz etmek için basit bir puan anahtarı kullandı. Bu çözüm, geliştirme ekibinin çabasına kıyasla en iyi yatırım getirisini sağlayabilir. Ekip, bu puan anahtarını kullanarak 4 aylık bir optimizasyon ve iyileştirme yolculuğuna başladı.
İlk adım, sorunları bulmak, zamana dayalı analiz yapmak ve uygun şekilde önceliklendirmek için sistem izlerini incelemekti. Perfetto, Android işlemlerini analiz etmek, tanımlamak ve izlemek için mükemmel bir araçtır. Zomato, uygulama başlatılırken başlatılan tüm SDK'ları izlemek ve geç kaldırılabilecek veya yüklenebilecek SDK'lara dikkat çekmek için bu aracı kullandı.
Eski SDK'ların ve kullanılmayan 3. taraf kitaplıkların kaldırılması, az çaba gerektiren ve yüksek kazanç sağlayan bir görev olduğundan birinci öncelikti. Bu yaklaşım, Zomato'nun uygulama başlatma süresinde değerli% 20 tasarruf etmesine yardımcı oldu.
Birçok üçüncü taraf kitaplığı, uygulama başlatılırken başlatmak için içerik sağlayıcılardan yararlanır ve bu durum, uygulama başlatma süresini etkiler. Zomato, giriş yapmak için Facebook SDK'sını kullanıyor ancak kullanıcının başka giriş seçenekleri de olduğundan SDK'yı başlangıçta başlatmak verimsiz oluyor. Uygulama Başlangıç Kitaplığı'nın kullanıma sunulmasıyla birlikte Zomato, SDK'yı yalnızca kullanıcı Facebook giriş seçeneğine gidiyorsa yükler. Bu yaklaşım, başlatma süresini yaklaşık %6 oranında azaltmalarına yardımcı oldu.
Görüntünün oluşturulması ve şişirilmesi Zomato'nunki gibi karmaşık bir kullanıcı arayüzü yapısında önemli ölçüde zaman alabildiğinden bir sonraki adım, görüntülemelerin şişirme süresini iyileştirmekti. Viewstub, görünümlerin oluşturulmasına izin verdiğinden ancak gerekli olmadığı sürece görünüm hiyerarşisine eklenmediğinden verimliliği artırmaya yardımcı olur. Görünüm kutuları, View'ı kullanmaktan daha verimlidir. Görüntü "GONE" durumunda olsa bile GONE büyür ve bellek ile CPU kullanımını tüketir. Zomato, görünüm hiyerarşisini düzleştirdi ve giriş etkinliklerinde düzenleri görüntüleme kanallarıyla birleştirdi. Bu değişiklikler, enflasyon süresini önemli ölçüde %7 oranında iyileştirdi.
Android profil aracı CPU etkinliğini, belleği ve ağı gerçek zamanlı olarak takip etmeyi sağlayarak bellek kullanımını optimize etmeye yardımcı oldu. Profil oluşturucu, kilitleme durumları ve bellek ek yükleriyle ilişkili temel sorunu tanımlamalarını ve bunları uygun şekilde düzeltmelerini sağladı. Zomato, önbelleğe alma mekanizması üzerinde de çalışarak bellek yetersizliği sorunlarında% 60 gibi ciddi bir düşüş sağladı.
İşlem | Önce (sn.) | Sonra (sn.) | İyileştirme |
---|---|---|---|
Eski SDK'lar, kullanılmayan 3. taraf kitaplıklar kaldırıldı | 4,873 | 3,813 | %21,74 |
Kitaplıkları geç yükleme | 3,814 | 3,577 | %6,2 |
Düzen iyileştirmeleri, görüntüleme alanları | 2,529 | 2,348 | %7,15 |
Uygulama başlatma süresi = Uygulama başlatma + Kitaplıklar yükleme süresi + Enflasyon süresini görüntüleme
Sonuçlar
Zomato'nun performans kazanımları, çok daha sorunsuz bir deneyim oluşturmasına yardımcı oldu. Kullanıcı arayüzünde yapılan diğer iyileştirmeler ve önbelleğe alma da, olumsuzlukları da azalttı.
![](https://developer.android.com/static/images/distribute/stories/zomato.png?authuser=6&hl=tr)
Uygulamayı ana sayfaya yönlendirme (uygulama simgesini tıklayarak tam olarak yüklenmiş ve kullanılabilir bir ana sayfaya gitmek), Zomato'nun dahili olarak izlediği önemli bir iş metriği. İyileştirmeler uygulandıktan sonra bu metrikte anlamlı bir artış gözlemlediler. Bu dönemde, tamamen yüklenmiş bir sayfaya giden müşterilerin sayısı yaklaşık% 20 arttı.
Bu, ilk gün müşterileri elde tutma oranında yaklaşık %90'lık bir artış sağladı. Bu iyileştirmelerin ilerleme dönüşüm hunilerinde de düşüş etkisi oldu. Genel sipariş oranı (ana sayfa -> menü -> alışveriş sepeti -> sipariş) yaklaşık yüzde 1,5 oranında iyileşti, yani aydan aya yaklaşık 600 bin sipariş.
Firebase performansının baştan başlatma metriğine göre, ortalama% 25 artış görüldü. Düşük/orta uç cihazlarda soğuk uygulama başlatma süresinde %30'a varan iyileşme görüldü.
Uygulama başlatma süresi performansı, kullanıcı algısını etkileyen önemli bir metriktir. Performansı optimize etmek için yapacağınız yatırımlar, işletme üzerinde de önemli bir etki yaratabilir.
"Zomato olarak, muhteşem bir müşteri deneyimi sunmak ve bu deneyimi geliştirmek her zaman ideolojimizin merkezinde yer almıştır. Performansın en önemli unsurlardan biri olduğuna inanıyoruz. Bu nedenle ekibimiz, Google'ın geliştirici araçlarını kullanarak uygulama yükleme sürelerini iyileştirmek amacıyla mükemmel mühendislik çalışmaları yaptı ve gerçek zamanlı olarak önemli sonuçlar elde etti. Bu sayede Hindistan'ın online sipariş ihtiyaçları için son derece hızlı bir uygulama sağlamayı ve gelecekteki gelişimimiz için bir kriter oluşturmayı umuyoruz."
- Sajal Gupta, Mühendislik Yöneticisi, Zomato