Jetpack Compose là một bộ công cụ hiện đại dành cho Android để xây dựng giao diện người dùng gốc. Công cụ này đơn giản hoá và tăng tốc độ phát triển giao diện người dùng trên Android, giúp ứng dụng của bạn trở nên sống động hơn với mã ngắn hơn, các công cụ mạnh mẽ và API Kotlin trực quan. Ứng dụng này giúp việc xây dựng giao diện người dùng trên Android nhanh hơn và dễ dàng hơn. Trong khi tạo Compose, chúng tôi đã làm việc với nhiều đối tác khác nhau đã từng trực tiếp trải nghiệm tất cả những lợi ích này và chia sẻ một số ý kiến của họ với chúng tôi.

Ít mã hơn

Việc viết ít mã hơn sẽ ảnh hưởng đến tất cả các giai đoạn phát triển: với tư cách là tác giả, bạn sẽ tập trung vào vấn đề hiện có, ít phải kiểm tra, gỡ lỗi và ít xảy ra lỗi hơn; với tư cách là người đánh giá hoặc người bảo trì, bạn có ít mã để đọc, hiểu, xem lại và bảo trì.

Compose cho phép bạn làm được nhiều việc hơn bằng ít mã hơn, so với việc sử dụng hệ thống Android View: các nút, danh sách hoặc ảnh động – bất kể bạn tạo gì, bây giờ, bạn không cần phải viết nhiều mã nữa. Dưới đây là ý kiến của một số đối tác của chúng tôi:

  • Đối với cùng một lớp Nút, mã nhỏ hơn 10 lần.” (Twitter)
  • "Ngoài ra, số lượng màn hình được xây dựng bằng RecyclerView cũng giảm đáng kể. Phần lớn các màn hình của chúng tôi đều như vậy." (Monzo)
  • Chúng tôi rất hài lòng khi thấy cần viết rất ít dòng mã khi phải tạo danh sách hoặc ảnh động trong ứng dụng. Chúng tôi viết ít dòng mã hơn cho mỗi tính năng, nên có thể tập trung hơn vào việc cung cấp giá trị cho khách hàng.” (Cuvva)

Mã bạn đang viết chỉ được viết bằng Kotlin, thay vì tách mã giữa Kotlin và XML: "Dễ theo dõi hơn khi viết mã bằng cùng một ngôn ngữ và thường là cùng một tệp, thay vì chuyển qua lại giữa Kotlin và XML” (Monzo)

Mã được viết bằng Compose rất đơn giản và dễ dàng để bảo trì mọi thứ bạn đang xây dựng. “Hệ thống bố cục của Compose đơn giản hơn về mặt khái niệm, vì vậy sẽ dễ hiểu hơn. Việc đọc mã cho các thành phần phức tạp cũng dễ dàng hơn.” (Square)

Trực quan

Compose sử dụng API khai báo, nghĩa là tất cả những gì bạn cần làm là mô tả giao diện người dùng. Compose sẽ xử lý phần còn lại. API rất trực quan – dễ khám phá và sử dụng: “Lớp giao diện của chúng tôi trực quan và dễ đọc hơn rất nhiều. Chúng tôi có thể thực thi trong một tệp Kotlin duy nhất. Việc này trước đây thường phải dùng nhiều tệp XML để thực hiện việc xác định thuộc tính và chỉ định thông qua nhiều lớp phủ giao diện.” (Twitter)

Với Compose, bạn tạo các thành phần nhỏ, không có trạng thái không gắn với một hoạt động hoặc mảnh cụ thể. Điều đó giúp dễ dàng sử dụng lại và thử nghiệm chúng: “Chúng tôi đặt mục tiêu phân phối một bộ thành phần giao diện người dùng mới không có trạng thái, dễ sử dụng và duy trì cũng như trực quan để triển khai/mở rộng/tuỳ chỉnh. Compose thực sự là câu trả lời vững chắc cho chúng tôi trong vấn đề này.” (Twitter)

Trong Compose, trạng thái hoàn toàn rõ ràng và được chuyển tới nội dung kết hợp. Bằng cách đó, có một nguồn đáng tin cậy duy nhất cho trạng thái đã được gói gọn và tách biệt. Sau đó, khi trạng thái ứng dụng thay đổi, giao diện người dùng của bạn sẽ tự động cập nhật. “Bạn sẽ bớt phải suy nghĩ khi đang suy luận về điều gì đó và giảm những hành vi nằm ngoài tầm kiểm soát hoặc không hiểu rõ của bạn” (Cuvva)

Đẩy nhanh quy trình phát triển

Compose tương thích với tất cả mã hiện có của bạn: bạn có thể gọi mã Compose từ Views và Views từ Compose. Hầu hết các thư viện phổ biến như Di chuyển, ViewModel và coroutine Kotlin hoạt động với Compose, vì vậy bạn có thể bắt đầu áp dụng vào lúc và ở nơi bạn muốn. “Khả năng tương tác là lý do chúng tôi bắt đầu tích hợp Compose và điều chúng tôi nhận thấy là tính năng 'hoạt động luôn'. Chúng tôi nhận thấy rằng chúng tôi không phải suy nghĩ về những vấn đề như chế độ sáng và tối, cũng như toàn bộ trải nghiệm sẽ rất liền mạch”. (Cuvva)

Khi dùng dịch vụ hỗ trợ đầy đủ của Android Studio, với các tính năng như xem trước trực tiếp, bạn sẽ lặp lại và vận chuyển mã nhanh hơn: “Các bản xem trước trong Android Studio luôn giúp tiết kiệm thời gian. Việc có thể tạo nhiều bản xem trước cũng giúp chúng tôi tiết kiệm thời gian. Thông thường, chúng tôi cần kiểm tra thành phần trên giao diện người dùng ở các trạng thái hoặc với các tuỳ chọn cài đặt khác nhau (như trạng thái lỗi hoặc với kích thước phông chữ khác, v.v.). Với khả năng tạo nhiều bản xem trước, chúng tôi có thể dễ dàng kiểm tra điều này. ”(Square)

Mạnh mẽ

Compose cho phép bạn tạo các ứng dụng tuyệt đẹp có quyền truy cập trực tiếp vào API nền tảng Android và khả năng hỗ trợ tích hợp dành cho Material Design, Giao diện tối, ảnh động và nhiều ưu điểm khác: “Compose cũng đã giải quyết được nhiều vấn đề hơn ngoài giao diện người dùng khai báo -- API hỗ trợ tiếp cận, bố cục hỗ trợ tiếp cận, tất cả các loại nội dung đều được cải thiện. Việc biến ý tưởng thành sản phẩm cần ít bước hơn” (Square).

Với Compose, việc mang lại chuyển động và sự sống cho ứng dụng của bạn thông qua ảnh động thật nhanh chóng và dễ dàng: “Trong Compose, rất dễ thêm ảnh động, nên có rất ít lý do để không tạo ảnh động những yếu tố như thay đổi màu/kích thước/độ cao” (Monzo), “bạn có thể tạo ảnh động mà không yêu cầu bất kỳ kỹ năng đặc biệt nào – không khác gì so với việc hiển thị một màn hình tĩnh” (Square).

Dù bạn đang xây dựng bằng Material Design hay hệ thống thiết kế của riêng mình, thì bạn có thể linh hoạt triển khai thiết kế mà mình mong muốn: “Việc thiết kế Material Design tách biệt với nền tảng đã thực sự hữu ích đối với chúng tôi vì chúng tôi đang xây dựng hệ thống thiết kế, vốn thường yêu cầu nhiều công việc thiết kế từ Material.” (Square)

Xem các nghiên cứu điển hình chuyên sâu để tìm hiểu thêm về cách Twitter, Square, MonzoCuvva đang sử dụng Compose.