Tin tức về sản phẩm

Jetpack Navigation 3 đã ổn định

Đọc trong 3 phút
Don Turner
Kỹ sư Quan hệ với nhà phát triển

Jetpack Navigation 3 phiên bản 1.0 đã ổn định 🎉. Hãy sử dụng phiên bản này trong các ứng dụng phát hành công khai của bạn ngay hôm nay. JetBrains đã sử dụng công nghệ này trong ứng dụng KotlinConf của họ.

Navigation 3 là một thư viện điều hướng mới được xây dựng từ đầu để hỗ trợ trạng thái Jetpack Compose. Thành phần này giúp bạn kiểm soát hoàn toàn ngăn xếp lui, duy trì trạng thái điều hướng và dễ dàng tạo bố cục thích ứng (chẳng hạn như danh sách-chi tiết). Thậm chí còn có một phiên bản nhiều nền tảng của JetBrains.

Tại sao cần có một thư viện mới?

Thư viện Điều hướng Jetpack ban đầu (nay là Nav2) được thiết kế cách đây 7 năm và mặc dù đáp ứng tốt các mục tiêu ban đầu cũng như đã được cải thiện nhiều lần, nhưng cách các ứng dụng hiện được xây dựng đã thay đổi về cơ bản. 

Lập trình phản ứng với giao diện người dùng khai báo hiện là tiêu chuẩn. Nav3 áp dụng phương pháp này. Ví dụ: NavDisplay (thành phần giao diện người dùng Nav3 hiển thị màn hình của bạn) chỉ cần theo dõi danh sách các khoá (mỗi khoá đại diện cho một màn hình) được hỗ trợ bởi trạng thái Compose và cập nhật giao diện người dùng khi danh sách đó thay đổi.

nav-display.png

Nav2 cũng có thể gây khó khăn trong việc có một nguồn thông tin xác thực duy nhất cho trạng thái điều hướng vì nó có trạng thái nội bộ riêng. Với Nav3, bạn cung cấp trạng thái của riêng mình, nhờ đó bạn có toàn quyền kiểm soát.

Cuối cùng, bạn yêu cầu có thêm sự linh hoạt và khả năng tuỳ chỉnh. Thay vì có một API đơn lẻ, nguyên khối, Nav3 cung cấp các API nhỏ hơn, tách biệt (hoặc "khối xây dựng") có thể kết hợp với nhau để tạo ra chức năng phức tạp. Bản thân Nav3 sử dụng các khối dựng này để cung cấp các giá trị mặc định hợp lý cho các trường hợp sử dụng điều hướng được xác định rõ. 

Phương pháp này cho phép bạn: 

Đọc thêm về thiết kế và các tính năng của công cụ này trong blog ra mắt

Di chuyển từ Navigation 2

Nếu đang sử dụng Nav2, cụ thể là Navigation Compose, bạn nên cân nhắc việc di chuyển sang Nav3. Để hỗ trợ bạn trong quá trình này, chúng tôi có một hướng dẫn di chuyển. Các bước chính là: 

  1. Thêm phần phụ thuộc navigation 3.
  2. Cập nhật các tuyến điều hướng để triển khai NavKey. Các tuyến đường của bạn không cần triển khai giao diện này để sử dụng Nav3, nhưng nếu triển khai, bạn có thể tận dụng hàm rememberNavBackStack của Nav3 để tạo một ngăn xếp lui liên tục.
  3. Tạo các lớp để lưu giữ và sửa đổi trạng thái điều hướng – đây là nơi lưu giữ các ngăn xếp quay lại.
  4. Thay thế NavController bằng các lớp này.
  5. Di chuyển các đích đến từ NavGraph của NavHost vào một entryProvider.
  6. Thay thế NavHost bằng NavDisplay.

Thử nghiệm với hoạt động di chuyển tác nhân AI

Bạn có thể thử dùng một tác nhân AI để đọc hướng dẫn di chuyển và thực hiện các bước trên dự án của mình. Cách dùng thử tính năng này với Chế độ tác nhân của Gemini trong Android Studio:

  • Lưu phiên bản markdown này của hướng dẫn vào dự án của bạn.
  • Dán câu lệnh này vào tác nhân (nhưng đừng nhấn phím Enter): "Di chuyển dự án này sang Navigation 3 bằng cách sử dụng ".
  • Nhập @migration-guide.md – thao tác này sẽ cung cấp hướng dẫn dưới dạng bối cảnh cho tác nhân. 

Như thường lệ, hãy nhớ kiểm tra kỹ những thay đổi do tác nhân AI thực hiện vì tác nhân này có thể mắc lỗi! 

Chúng tôi rất mong nhận được ý kiến phản hồi của bạn về hiệu suất của bạn hoặc của người đại diện. Vui lòng gửi ý kiến phản hồi tại đây.

Công thức điều hướng hữu ích cho các trường hợp phổ biến

Đối với các trường hợp sử dụng phổ biến nhưng có nhiều sắc thái, chúng tôi có kho lưu trữ công thức. Điều này cho thấy cách kết hợp các API Nav3 theo một cách cụ thể, cho phép bạn chọn hoặc sửa đổi công thức cho phù hợp với nhu cầu cụ thể của mình. Nếu một công thức trở nên phổ biến, chúng tôi sẽ cân nhắc việc "nâng cấp" các phần không có sắc thái của công thức đó vào thư viện Nav3 cốt lõi hoặc các thư viện bổ trợ. 

code-recipes.png

Hiện có 19 công thức, bao gồm cả công thức cho: 

Chúng tôi hiện đang xây dựng một công thức đường liên kết sâu, cùng với quy trình tích hợp Koin và còn nhiều công thức khác đang được lên kế hoạch. Một kỹ sư của JetBrains cũng đã xuất bản phiên bản Compose Multiplatform của các công thức.

Nếu bạn có một trường hợp sử dụng phổ biến mà bạn muốn xem công thức, vui lòng gửi yêu cầu về công thức

Tóm tắt

Để bắt đầu sử dụng Nav3, hãy xem tài liệucác công thức. Ngoài ra, hãy đón xem nội dung kỹ thuật trong cả tuần, bao gồm: 

  • Video nghiên cứu chuyên sâu về API, bao gồm cả việc mô-đun hoá, ảnh động và bố cục thích ứng.
  • Một buổi Hỏi đáp (AMA) trực tiếp với các kỹ sư đã xây dựng Nav3.

Tuần giới thiệu Nav3 bắt đầu từ ngày 1 tháng 12 năm 2025. 


Như thường lệ, nếu bạn gặp phải vấn đề nào, vui lòng báo cáo tại đây

Tác giả:

Tiếp tục đọc