Tăng tốc độ ứng dụng thêm 30%: một yếu tố quan trọng trong công thức tăng trưởng của Zomato

Zomato là một công ty đa quốc gia của Ấn Độ chuyên tổng hợp nhà hàng và giao đồ ăn, phục vụ khách hàng ở 500 thành phố chỉ riêng tại Ấn Độ. Với hơn 43 triệu khách hàng đang hoạt động và trung bình hơn 1,5 triệu đơn đặt hàng mỗi ngày, đây là một trong những dịch vụ đặt và giao đồ ăn phổ biến nhất ở quốc gia này. Điều này cũng có nghĩa là khách hàng sử dụng nhiều loại thiết bị và có khả năng truy cập mạng khác nhau. Ngoài việc giao hàng nhanh chóng, điều này cũng khiến việc mang lại trải nghiệm mượt mà và liền mạch trên ứng dụng trở nên bắt buộc.

Người dùng mong muốn thời gian mở ứng dụng nhanh và khả năng phản hồi. Việc cải thiện chỉ số này không chỉ ảnh hưởng trực tiếp đến App Vitals mà còn đảm bảo có nhiều đơn đặt hàng hoàn tất hơn và hỗ trợ chiến lược của Zomato – mở rộng sang các thị trường mới và mang lại trải nghiệm tốt hơn trên các thiết bị tầm thấp đến tầm trung.Điều này cuối cùng sẽ giúp họ thu hút được một tỷ người dùng tiếp theo. Thời gian mở ứng dụng cũng đóng vai trò là yếu tố dự đoán cho việc tăng kích thước phễu khi người dùng đi sâu hơn vào phễu bán hàng.

Zomato đã đạt được một số thành tựu ấn tượng nhờ tập trung vào Chỉ số quan trọng của ứng dụng. Ví dụ: việc tăng tốc thời gian tải ứng dụng thêm 30% đã giúp cải thiện tỷ lệ giữ chân khách hàng vào Ngày 1 thêm khoảng 90% !

Thách thức

Tốc độ phát triển nhanh chóng và việc tập trung vào việc bổ sung tính năng của Zomato (mặc dù rất tốt cho khách hàng) đã dẫn đến nhu cầu tối ưu hoá cơ sở mã và trải nghiệm người dùng của họ. Trong khi theo đuổi mục tiêu bổ sung các tính năng mới, Zomato cũng muốn duy trì hiệu suất ở mức phù hợp. Với nhiều SDK tiêu thụ tài nguyên không phải lúc nào cũng cần thiết, cần phải tinh giản và hợp lý hoá cơ sở mã.

Tất cả những điều này đều được hỗ trợ bởi việc Zomato mở rộng sang các thành phố cấp 2 và cấp 3 ở Ấn Độ, nơi người dân chủ yếu sử dụng các thiết bị cấp thấp đến trung bình với khả năng xử lý tương đối hạn chế. Khi thêm những thiết bị này, nhóm phát triển phải đảm bảo trải nghiệm người dùng đẳng cấp thế giới như trên các thiết bị cấp cao hơn.

Họ đã làm gì?

Zomato đã sử dụng một tiêu chí đơn giản để phân tích chi phí chung – giải pháp nào có thể mang lại lợi tức đầu tư tốt nhất so với nỗ lực của nhóm phát triển. Dựa vào bộ quy tắc này, nhóm đã bắt đầu hành trình tối ưu hoá và cải thiện kéo dài 4 tháng.

Bước đầu tiên là xem xét dấu vết hệ thống để tìm ra vấn đề, phân tích dựa trên thời gian và ưu tiên cho phù hợp. Perfetto là công cụ hoàn hảo để phân tích, lập hồ sơ và theo dõi các quy trình trên Android. Zomato đã sử dụng công cụ này để theo dõi tất cả các SDK đang được khởi tạo trong quá trình khởi động ứng dụng và chỉ ra những SDK có thể bị xoá hoặc tải từng phần.

Việc xoá các SDK cũ và thư viện 3P không dùng đến là ưu tiên hàng đầu vì đây là một việc ít tốn công sức nhưng mang lại nhiều lợi ích. Phương pháp này đã giúp Zomato tiết kiệm được 20% thời gian khởi động ứng dụng.

Nhiều thư viện bên thứ ba sử dụng trình cung cấp nội dung để khởi chạy khi ứng dụng bắt đầu, điều này ảnh hưởng đến thời gian khởi động ứng dụng. Zomato sử dụng Facebook SDK để đăng nhập, nhưng người dùng cũng có các lựa chọn đăng nhập khác, vì vậy, việc khởi chạy SDK khi khởi động là không hiệu quả. Khi ra mắt thư viện Khởi động ứng dụng, Zomato chỉ tải SDK nếu người dùng chọn đăng nhập bằng Facebook. Điều này đã giúp họ giảm thời gian khởi động khoảng 6%!

Bước tiếp theo là cải thiện thời gian mở rộng các thành phần hiển thị vì quá trình kết xuất và mở rộng chính thành phần hiển thị có thể mất một khoảng thời gian đáng kể trong một cấu trúc giao diện người dùng phức tạp như của Zomato. Viewstub giúp tăng hiệu quả vì cho phép tạo các khung hiển thị nhưng không thêm vào hệ phân cấp khung hiển thị trừ phi cần thiết. ViewStub hiệu quả hơn so với việc sử dụng View. GONE vì ngay cả khi khung hiển thị ở trạng thái GONE, khung hiển thị đó vẫn sẽ được mở rộng và tiêu tốn bộ nhớ cũng như mức sử dụng CPU. Zomato đã làm phẳng hệ phân cấp khung hiển thị và hợp nhất các bố cục cùng với viewstub trong hoạt động đăng nhập của họ. Những thay đổi này đã cải thiện đáng kể thời gian tăng lên 7%.

Trình phân tích tài nguyên Android giúp tối ưu hoá mức sử dụng bộ nhớ, vì trình phân tích này cho phép theo dõi hoạt động của CPU, bộ nhớ và mạng theo thời gian thực. Trình phân tích tài nguyên cho phép họ xác định vấn đề gốc gây ra tình trạng khoá và mức sử dụng bộ nhớ vượt mức, rồi khắc phục vấn đề đó. Zomato cũng đã cải thiện cơ chế lưu vào bộ nhớ đệm để giảm đáng kể 60% các vấn đề về hết bộ nhớ.

Thao tác Trước (giây) Sau (giây) Cải thiện
Xoá các SDK cũ, thư viện bên thứ ba không dùng đến 4.873 3.813 21,74%
Thư viện tải từng phần 3.814 3.577 6,2%
Cải thiện bố cục, viewstub 2.529 2.348 7,15%

Thời gian khởi động ứng dụng = Thời gian khởi tạo ứng dụng + Thời gian tải thư viện + Thời gian tăng lượt xem

Kết quả

Nhờ hiệu suất tăng lên, Zomato đã mang đến trải nghiệm mượt mà hơn nhiều. Những cải tiến hơn nữa về giao diện người dùng và bộ nhớ đệm cũng giúp giảm hiện tượng giật.

Ứng dụng đến trang chủ (nhấp vào biểu tượng ứng dụng để chuyển đến một trang chủ đã tải đầy đủ và có thể sử dụng) là một chỉ số kinh doanh chính mà Zomato theo dõi nội bộ. Sau khi triển khai các điểm cải tiến, họ nhận thấy chỉ số này tăng lên đáng kể. Số khách hàng truy cập vào một trang đã tải hoàn toàn tăng khoảng 20% trong khoảng thời gian này.

Điều này giúp cải thiện tỷ lệ giữ chân khách hàng vào Ngày 1 lên đến khoảng 90%! Những điểm cải thiện này cũng có tác động tích cực đến các phễu chuyển đổi của họ – tỷ lệ đặt hàng tổng thể (trang chủ -> thực đơn -> giỏ hàng -> đơn đặt hàng) đã tăng khoảng 1,5 điểm phần trăm, tức là khoảng 600.000 đơn đặt hàng mỗi tháng.

Theo chỉ số khởi động nguội của hiệu suất Firebase, hiệu suất đã cải thiện trung bình 25% và đối với các thiết bị cấp thấp/trung bình, thời gian khởi động nguội của ứng dụng đã cải thiện đến 30%.

Hiệu suất thời gian khởi động ứng dụng là một chỉ số quan trọng ảnh hưởng đến cảm nhận của người dùng và việc đầu tư công sức để tối ưu hoá hiệu suất cũng có thể tác động đáng kể đến hoạt động kinh doanh.

"Tại Zomato, việc cung cấp và hướng đến trải nghiệm tuyệt vời cho khách hàng luôn là trọng tâm trong hệ tư tưởng của chúng tôi. Chúng tôi tin rằng hiệu suất là một trong những yếu tố chính. Do đó, nhóm của chúng tôi đã nỗ lực đạt được sự xuất sắc về kỹ thuật để cải thiện thời gian tải ứng dụng bằng cách sử dụng các công cụ dành cho nhà phát triển của Google và nhận thấy kết quả đáng kể theo thời gian thực. Với ứng dụng này, chúng tôi hy vọng có thể cung cấp một ứng dụng cực kỳ nhanh chóng cho nhu cầu đặt hàng trực tuyến ở Ấn Độ và đặt ra tiêu chuẩn cho quá trình phát triển trong tương lai của chúng tôi".

– Sajal Gupta, Nhà quản lý kỹ thuật, Zomato