Tinder giải quyết những điểm mà người dùng chưa hài lòng về ứng dụng hẹn hò bằng Bộ thành phần cấu trúc Android

Tinder là ứng dụng phổ biến nhất thế giới để gặp gỡ những người mới. Nổi tiếng với việc thay đổi cách mọi người gặp gỡ và hẹn hò, ứng dụng này cho phép người dùng vuốt sang phải để kết nối và trò chuyện với người khác. Mỗi ngày, Tinder tạo ra hơn 26 triệu lượt kết nối và đã có hơn 20 tỷ lượt kết nối kể từ khi ra mắt vào năm 2012.

Công ty cần nhanh chóng mở rộng quy mô ứng dụng dựa trên nhu cầu của người dùng, nhưng việc triển khai cơ sở dữ liệu của họ vẫn còn từ những ngày đầu, khiến việc mở rộng trở nên ngày càng phức tạp hơn. Họ cũng có một cấu trúc có nhiều khung hiển thị để giảm độ phức tạp của vòng đời, nhưng cần biết những sự kiện trong vòng đời nào là dành riêng cho một hoạt động. Chúng thiếu một khung nhất quán để xử lý các tác vụ như sắp xếp các đối tượng Cursor thành các đối tượng miền, thực hiện di chuyển cơ sở dữ liệu hoặc thực hiện các truy vấn một cách nhất quán.

Những việc họ đã làm

Hình ảnh của một hồ sơ

Hình 1: Ảnh một nhiếp ảnh gia trên Tinder

Tinder đã chuyển sang Các thành phần trong cấu trúc Android để tìm giải pháp nâng cấp mã của họ. Họ đã sử dụng Lifecycle để cho phép View theo dõi vòng đời của hoạt động lưu trữ và họ đã sử dụng LifecycleObserver để tạo điều kiện cho một cấu trúc trình bổ trợ phi tập trung và ngăn chặn sự phình to trong các đối tượng Presenter, ActivityView. Thư viện lưu trữ Room cung cấp một phương thức trọn gói để xác định, quản lý và truy vấn cơ sở dữ liệu cục bộ của họ.

Nhóm phát triển Tinder đã có thể triển khai LifecycleObserver và cấu trúc plugin chỉ trong 2 tuần, đồng thời triển khai Room một cách liền mạch cho SDK Quảng cáo nội bộ của họ chỉ mất 2 ngày.

Andy Lawton, Trưởng bộ phận Android tại Tinder cho biết: "Chúng tôi không còn phải đầu tư nhiều thời gian để quản lý Vòng đời hoạt động bên trong các trình bổ trợ hoặc khung hiển thị". "Thiết kế của Room được cân nhắc kỹ lưỡng và giúp chúng tôi dễ dàng triển khai lớp liên tục. Việc sử dụng Room cho Ads SDK nội bộ có lẽ đã giúp tiết kiệm một tuần thời gian trong quá trình phát triển ban đầu."

Kết quả

Tinder rất hài lòng với kết quả đạt được nhờ Ads SDK nên họ đang di chuyển toàn bộ lớp cơ sở dữ liệu sang Room. Việc kiểm thử rất dễ dàng và khả năng bảo vệ của Room giúp bạn không quên huỷ đăng ký một thứ gì đó, nhờ đó giảm tình trạng rò rỉ bộ nhớ. Bộ thành phần cấu trúc Android cũng giúp tạo ra dấu vết bộ nhớ nhỏ hơn.

Lawton cho biết: "Các Thành phần kiến trúc Android đã đưa ra giải pháp cho nhiều vấn đề mà nhà phát triển gặp phải ở mọi quy mô." "Thông qua việc sử dụng các thành phần nhận biết vòng đời, Tinder đã cải thiện được năng suất của nhà phát triển, khả năng kiểm thử và tính mô-đun, đồng thời hỗ trợ kiến trúc ưu tiên khung hiển thị. Room giúp bạn không cần dùng các giải pháp khác để quản lý SQLite, đồng thời biến việc quản lý và truy vấn cơ sở dữ liệu thành một bài tập về cấu hình."

Chỉ số

Hơn 500 dòng mã đã bị xoá khỏi MainActivity thông qua LifecycleObserver/cấu trúc trình bổ trợ

Bắt đầu

Android Architecture Components được cung cấp cho tất cả nhà phát triển trong Android Jetpack. Bắt đầu với Bộ thành phần cấu trúc Android.