Người dùng trình đọc màn hình, nhấp vào đây để tắt google instant.google

     
Sử dụng tủ chứa đồ để sắp xếp ngăn nắp những trang Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.

Vai trò của giao diện người dùng là hiển thị tài liệu ứng dụng trên màn hình cũng nhưđóng vai trò là điểm chính trong quy trình tương tác của fan dùng. Bất cứ lúc nào dữ liệu cố gắng đổi,do sự tương tác của người tiêu dùng (chẳng hạn như nhấn vào trong 1 nút) hoặc đầu vào bên phía ngoài (chẳng hạn nhưphản hồi mạng), giao diện người dùng sẽ cập nhật để phản ảnh các biến đổi đó.

Bạn đang xem: Người dùng trình đọc màn hình, nhấp vào đây để tắt google instant.google

Về khía cạnh hiệu quả, giao diện người tiêu dùng là đại diện thay mặt trực quan của trạng thái ứng dụng nhưđược truy xuất từ lớp dữ liệu.

Tuy nhiên, tài liệu ứng dụng các bạn nhận được từ lớp tài liệu thường ởmột định dạng khác với tin tức bạn yêu cầu hiển thị. Ví dụ: bạncó thể chỉ cần một trong những phần dữ liệu mang lại giao diện người dùng hoặc bạn cũng có thể cần hợp độc nhất hainguồn dữ liệu khác nhau để trình bày thông tin có liên quan đến tín đồ dùng.Bất kể logic bạn vận dụng là gì, bạn đều bắt buộc chuyển mang đến giao diện người dùng tất cả những thông tincần thiết để đồ họa hiển thị đầy đủ. Lớp giao diện người tiêu dùng là quá trình chuyển đổicác biến hóa dữ liệu áp dụng thành dạng thức nhưng mà giao diện tín đồ dùng hoàn toàn có thể trình bày và tiếp đến hiển thị.

*
Hình 1. sứ mệnh của lớp giao diện người dùng trong cấu tạo ứng dụng.Lưu ý: shop chúng tôi có thể áp dụng những mục khuyến cáo và cách thức hay nhất có trong trang nàycho các dạng vận dụng để có thể chấp nhận được mở rộng lớn quy mô, nâng cấp chất lượng vàkhả năng hiển thị bạo gan mẽ, đồng thời giúp việc kiểm thử thuận lợi hơn. Mặc dù nhiên, bạn nên coi các nguyên tắc này làhướng dẫn và điều chỉnh cho phù hợp với yêu cầu của bản thân nếu cần.

Nghiên cứu nổi bật cơ bản

Xem xét một áp dụng tìm hấp thụ các bài viết tin tức để người tiêu dùng đọc. Ứng dụng gồm màn hìnhbài viết trình diễn các bài viết có sẵn nhằm đọc, bên cạnh đó cũng cho phépngười sử dụng đã đăng nhập lưu lại các nội dung bài viết thực sự nổi bật. Do rất có thể córất nhiều nội dung bài viết tại bất kể thời điểm nào, nên tín đồ đọc rất có thể cần chăm chú quacác nội dung bài viết theo danh mục. Nắm lại, ứng dụng được cho phép người dùng triển khai những câu chữ sau:

Xem các nội dung bài viết có sẵn để đọc.Duyệt qua các bài viết theo danh mục.Đăng nhập và lưu lại các bài viết nhất định.Truy cập một số trong những tính năng cải thiện nếu đầy đủ điều kiện.
*
Hình 2. Một ứng dụng tin tức chủng loại cho nghiên cứu và phân tích điển hình về giao diện bạn dùng.

Các phần sau đây sử dụng ví dụ như này làm nghiên cứu và phân tích điển hình để giới thiệu các hiệ tượng về luồng tài liệu một chiều, cũng giống như minh hoạ các vấn đề mà các nguyên tắc này giúp xử lý trong bối cảnh cấu tạo ứng dụng đến lớp giao diện bạn dùng.

Cấu trúc lớp giao diện fan dùng

Thuật ngữGiao diện fan dùng đề cập đến những thành phần trên giao diện người tiêu dùng như các vận động và những mảnhhiển thị dữ liệu, độc lập với các API mà những thành phần đó sử dụng để tiến hành việc này (Chế độ coi hoặcJetpack Compose ). Vì vai trò củalớpdữ liệu là giữ, cai quản và hỗ trợ quyền truy cập vàodữ liệu ứng dụng, yêu cầu lớp giao diện người tiêu dùng phải thực hiện công việc sau:

Sử dụng và chuyển đổi dữ liệu áp dụng thành tài liệu mà giao diện tín đồ dùng rất có thể dễ dàng hiển thị.Sử dụng tài liệu hiển thị được bên trên giao diện người tiêu dùng và đổi khác thành những thành phần trên giao diện người dùng làm trình bàycho người dùng.Sử dụng những sự kiện nguồn vào của người dùng từ các thành phần bên trên giao diện người dùng được tập đúng theo đó và phản ánhhiệu ứng của chúng trong tài liệu giao diện người tiêu dùng nếu cần.Lặp lại các bước từ 1 mang đến 3 miễn là buộc phải thiết.

Phần còn lại của giải đáp này minh hoạ cách thực hiện lớp giao diện người dùngthực hiện công việc này. Nỗ lực thể, giải đáp này bao gồm các tác vụ và quan niệm sau:

Cách xác định trạng thái giao diện fan dùng.Luồng tài liệu một chiều (UDF) như một phương tiện để tạo và cai quản trạng tháigiao diện bạn dùng.Cách hiển thị trạng thái giao diện người tiêu dùng có những kiểu dữ liệu có thể quan tiếp giáp được theo cơ chế UDF.Cách xúc tiến giao diện người dùng sử dụng tâm lý giao diện tín đồ dùng hoàn toàn có thể quan ngay cạnh được.

Yếu tố cơ bạn dạng nhất trong số này là việc khẳng định trạng thái giao diện bạn dùng.

Xác định trạng thái giao diện tín đồ dùng

Tham khảo nghiên cứu điển hình đang nêu sinh sống trên. Nắm lại, giao diện người tiêu dùng hiển thịdanh sách các nội dung bài viết cùng với một số trong những siêu tài liệu của mỗi bài xích viết. Tin tức nàychính là tâm lý giao diện người tiêu dùng mà ứng dụng hiển thị cho những người dùng.

Nói biện pháp khác: trường hợp giao diện người dùng là nội dung mà người tiêu dùng nhìn thấy, thì tinh thần giao diện fan dùng đó là nội dung cơ mà ứng dụngbiểu thị người tiêu dùng sẽ thấy. Y hệt như hai khía cạnh của một đồng xu, giao diện người dùng là đại diệnhình ảnh của tinh thần giao diện fan dùng. Bất kỳ thay đổi nào so với trạng thái giao diện người dùng đều đượcphản ánh ngay nhanh chóng trong giao diện tín đồ dùng.

*
Hình 3. Giao diện người dùng là kết quả của câu hỏi liên kết các thành phần trên giao diện người tiêu dùng trên màn hình hiển thị với trạng thái giao diện fan dùng.

Hãy quan tâm đến nghiên cứu giúp điển hình; để thỏa mãn nhu cầu các yêu cầu của áp dụng Tin tức, thông tincần phải bao gồm để hiển thị vừa đủ giao diện fan dùng có thể được gói gọn gàng trong một lớp dữ liệuNewsUiState được xác định như sau:

data class NewsUiState( val isSignedIn: Boolean = false, val isPremium: Boolean = false, val newsItems: các mục = listOf(), val userMessages: danh sách = listOf())data class NewsItemUiState( val title: String, val body: String, val bookmarked: Boolean = false, ...)

Bất biến

Định nghĩa về trạng thái giao diện người tiêu dùng trong ví dụ sống trên là bất biến. Công dụng chínhcủa thuộc tính này là các đối tượng người dùng bất biến hỗ trợ các đảm bảo đối với tâm trạng củaứng dụng ngay lập tức. Câu hỏi này giải phóng hình ảnh người dùng để làm tập trung vào một trong những vai tròduy nhất: đọc trạng thái và cập nhật các nhân tố trên giao diện người dùng cho phù hợp. Vày đó, bạnkhông khi nào nên thẳng sửa đổi trạng thái giao diện người tiêu dùng trong giao diện bạn dùng, trừ lúc giao diện người dùng đólà nguồn tuyệt nhất của dữ liệu. Việc vi phạm nguyên tắc này đang dẫn đến những nguồnthông tin đúng chuẩn cho cùng một trong những phần thông tin, dẫn tới các điểm thiếu đồng nhất của dữ liệuvà các lỗi nhỏ.

Ví dụ: nếu update thao tác lắp cờ bookmarked vào trong đối tượng người tiêu dùng NewsItemUiState từ tinh thần giao diện người dùngtrong phân tích điển hình trên lớp Activity, thì cờ đó sẽxung hốt nhiên với lớp dữ liệu làm nguồn trạng thái được đánh dấu trang củamột bài viết. Các lớp dữ liệu không bao giờ thay đổi rất có ích để ngăn chặn kiểuphản mẫu mã này.

Điểm quan lại trọng: Chỉ những nguồn hoặc chủ sở hữu tài liệu mới cần có trách nhiệm cập nhậtdữ liệu mà người ta hiển thị.

Quy cầu đặt thương hiệu trong lí giải này

Trong gợi ý này, các lớp tâm trạng giao diện bạn dùng được lấy tên dựa trên chức năng củamàn hình hoặc một trong những phần của screen mà lớp kia mô tả. Quy cầu như sau:

functionality + UiState.

Ví dụ: tâm trạng của màn hình hiển thị hiển thị tin tức rất có thể gọi lệnhNewsUiState, còn tinh thần của một mục thông tin trong list mục tin tức rất có thể làNewsItemUiState.

Quản lý trạng thái bằng Luồng dữ liệu một chiều

Phần trước đã thiết lập cấu hình trạng thái giao diện người tiêu dùng là thực trạng bất thay đổi củacác bỏ ra tiết cần thiết để giao diện người dùng hiển thị. Tuy nhiên, tính chất động của dữ liệu trongứng dụng tức là trạng thái có thể đổi khác theo thời gian. Điều này có thể là vị sự shop của người dùnghoặc các sự kiện khác làm biến hóa dữ liệu cơ phiên bản được dùng đểđiền sẵn ứng dụng.

Những chuyển động tương tác này hoàn toàn có thể hưởng lợi từ một trình trung gian để giải pháp xử lý chúng, việc xác minh logic vận dụng cho từng sự kiện cùng việc thay đổi cần thiết đối với các mối cung cấp dữ liệu cung ứng để tạo nên trạng thái giao diện bạn dùng. Những hệ trọng này vàlogic của chúng có thể được đặt trong chủ yếu giao diện bạn dùng. Mà lại điều này hoàn toàn có thể nhanh giường trở cần khó sử dụngvì giao diện người dùng bắt đầu chuyển thay đổi trở nên phức hợp hơn so với tên gọi của nó: giao diện người tiêu dùng trở thành chủ cài dữ liệu,nơi sản xuất, địa điểm chuyển đổi, v.v rộng nữa, vận động xử lý này có thể tác động đến năng lực thử nghiệmvì mã công dụng là một sự kết hợp nghiêm ngặt mà không có ranh giớirõ ràng. Cuối cùng, vận động giảm gánh nặng đó sẽ hữu ích cho giao diện bạn dùng. Trừ khitrạng thái giao diện người dùng rất đối chọi giản, nhiệm vụ duy tốt nhất của giao diện người tiêu dùng là thực hiện vàhiển thị trạng thái giao diện tín đồ dùng.

Phần này thảo luận về Luồng tài liệu một chiều (UDF), một chủng loại cấu trúcgiúp thực thi quy trình phân tách bóc trách nhiệm an lành này.

Xem thêm: Ảo Thuật Gia Đại Tài Dynamo, Ai Là Nhà Ảo Thuật Giỏi Nhất Thế Giới Hiện Nay

Chủ thể trạng thái

Các lớp phụ trách tạo tâm trạng giao diện người dùng và chứalogic quan trọng mà từ đó tác vụ được điện thoại tư vấn là chủ thể trạng thái. Các chủ thể tâm lý cónhiều kích thước, tuỳ thuộc vào phạm vi của các thành phần trên giao diện người dùng tương ứngmà người tiêu dùng quản lý, từ một tiện ích cá biệt như thanh ứng dụngở bên dưới cùng cho đến toàn bộ màn hình hiển thị hoặcmột đích đến điều hướng.

Trong trường phù hợp sau, vận động triển khai điển hình nổi bật là phiên bạn dạng củaViewModel, tuy nhiên tuỳ nằm trong vàocác yêu ước của ứng dụng, tuy nhiên bạn nên làm sử dụng một lớp đơn giản. Ví dụ: Ứng dụng News (Tin tức) trong nghiên cứu và phân tích điển hình sử dụng một lớp NewsViewModel làm phần tử giữ tâm trạng để sản xuất trạng thái giao diện người tiêu dùng cho màn hình hiển thị hiển thị vào phần đó.

Điểm quan tiền trọng: một số loại ViewModel là cách thực hiện được đề xuấtđể làm chủ trạng thái giao diện người dùng cấp độ màn hình hiển thị với quyền truy cập vào lớp dữ liệu. Rộng nữa, một số loại mã này vẫn tồn tại các thay đổicấu hình từ động. Các lớp ViewModel khẳng định logic cần áp dụng cho các sự kiện trongứng dụng và vì đó, tạo ra trạng thái cập nhật.

Có nhiều cách để lập quy mô hiện tượng đồng dựa vào giữa giao diện người tiêu dùng và tính năng nhà cấp dưỡng trạng tháicủa đồ họa đó. Mặc dù nhiên, vày sự can hệ giữa giao diện người tiêu dùng và lớp ViewModelcủa bối cảnh phần lớn có thể được hiểu là việc kiện đầu vào và bảo vệ trạng thái đầu ra sau đó,mối quan lại hệ hoàn toàn có thể được biểu đạt như vào sơ trang bị sau:

*
Hình 4. Sơ trang bị về cách buổi giao lưu của UDF trong ứng dụng kiến trúc .

Mô hình nhưng trạng thái giảm sút và sự kiện tạo thêm được điện thoại tư vấn làluồng dữ liệu một chiều (UDF). Các hoạt động di chuyển kéo theo của quy mô này cho cấu trúcứng dụng là như sau:

Tính năng ViewModel giữ với hiển thị trạng thái nhưng giao diện người dùng sử dụng. Tâm lý giao diện bạn dùnglà dữ liệu ứng dụng được ViewModel đưa đổi.Giao diện người tiêu dùng thông báo mang đến ViewModel về các sự kiện của tín đồ dùng.Tính năng ViewModel xử lý các làm việc của người dùng và cập nhật trạng thái.Trạng thái đã update được đưa trở về giao diện người dùng để hiển thị.Các thao tác trên được tái diễn cho bất kỳ sự kiện nào tạo ra hiện tượng đột nhiên biến của trạng thái.

Đối với các đích mang lại hoặc screen điều hướng, ViewModel hoạt động với các kho lưu trữ hoặcsử dụng những lớp điển hình để lấy và biến đổi dữ liệu thành trạng thái giao diện fan dùngtrong khi phối hợp tác động của các sự kiện có thể gây ra bỗng dưng biến trạng thái. Phân tích điển hìnhđã nói trước đó gồm chứa một danh sách những bài viết, mỗi bài viết có tiêu đề, phần mô tả, nguồn, thương hiệu tác giả, ngày xuất phiên bản và cóđược ghi lại trang hay không. Giao diện fan dùng cho mỗi mục trong nội dung bài viết như sau:

*
Hình 5. Giao diện người dùng của một mục nội dung bài viết trong ứng dụng điển hình.

Việc một người tiêu dùng yêu cầu khắc ghi trang một nội dung bài viết là ví dụ như về một sự kiện gồm thểgây ra những hốt nhiên biến trạng thái. Là nhà thêm vào trạng thái, trọng trách của ViewModellà xác minh tất cả những logic rất cần được đó nhằm điền sẵn tất cả các trườngtrong tinh thần giao diện người dùng và xử lý những sự kiện quan trọng để giao diện người dùng hiển thị đầy đủ.

*
Hình 6. Sơ thứ minh hoạ chu kỳ của các sự khiếu nại và tài liệu trong UDF.

Các phần sau sẽ tò mò kỹ hơn về các sự kiện gây ra thay đổi trạng tháivà biện pháp xử lý chúng bởi UDF.

Các loại logic

Đánh vệt một bài viết là lấy ví dụ như về logic tởm doanh vì bài viết này cung ứng giá trịcho vận dụng của bạn. Để bài viết liên quan về điều này, hãy coi tranglớpdữ liệu. Tuy nhiên, có tương đối nhiều loại logic đặc trưng cần xác định:

Logic nghiệp vụ là vấn đề triển khai các yêu ước của sản phẩm về tài liệu ứng dụng. Như vẫn đề cập, ví dụ là ghi lại trang một nội dung bài viết trong ứng dụng nghiên cứu điển hình. Logic sale thường được để trong lớp miền hoặc lớp dữ liệu, mà lại không khi nào được để trong lớp giao diện bạn dùng.

Logic giao diện người dùng, đặc biệt là khi tương quan đến các loại giao diện người dùng như Context, đề nghị nằm vào giao diện người dùng chứ chưa hẳn trong ViewModel. Nếu như giao diện người dùng phát triển tinh vi và bạn muốn uỷ quyền logic giao diện người dùng cho một tờ khác nhằm ưu tiên kĩ năng kiểm thử và phân bóc tách các côn trùng quan ngại, bạn hoàn toàn có thể tạo một lớp đơn giản và dễ dàng làm thành phần giữ trạng thái. Các lớp đơn giản dễ dàng được chế tạo ra trong giao diện fan dùngcó thể sử dụng những phần nhờ vào SDK bdkhtravinh.vn vì những lớp này tuân theo vòng đời của giao diện fan dùng;các đối tượng ViewModel có thời gian tồn tại lâu hơn.

Để biết thêm tin tức về đơn vị trạng thái và mức độ tương xứng với toàn cảnh của bọn chúng trong việcgiúp tạo giao diện bạn dùng, hãy xem hướng dẫntrạng thái vào Jetpack Compose.

Tại sao nên áp dụng UDF?

UDF lập quy mô chu kỳ sinh sản trạng thái như hiển thị vào Hình 4. Bề ngoài này cũng tách biệtnơi bước đầu thay đổi trạng thái, nơi có đổi khác về tâm lý vàcuối thuộc nơi áp dụng trạng thái. Vấn đề phân bóc này được cho phép giao diện người dùng thực hiệnchính xác ngôn từ của tên giao diện: hiển thị thông tin bằng phương pháp quan gần kề các chuyển đổi trạng thái,và chuyển tiếp ý định của người dùng bằng cách truyền các thay đổi đó cho tới ViewModel.

Nói biện pháp khác, UDF cho phép nội dung sau:

Tính nhất quán của dữ liệu. gồm một nguồn thông tin xác thực duy nhất đến giao diện người dùng.Khả năng thử nghiệm. mối cung cấp trạng thái bị tách riêng và vày đó rất có thể thử nghiệmđộc lập cùng với giao diện fan dùng.Khả năng bảo trì. Đột biến chuyển của tâm trạng tuân theo một mẫu mã được khẳng định rõ ràngtrong đó chợt biến là kết quả của cả các sự kiện của người dùng và nguồn tài liệu mà chúnglấy ra.

Hiển thị tâm trạng giao diện tín đồ dùng

Sau lúc bạn khẳng định trạng thái giao diện người dùng và xác định cách bạn sẽ quản lý câu hỏi tạotrạng thái, bước tiếp theo là hiển thị trạng thái đã được khiến cho giao diện tín đồ dùng. Vìbạn đang áp dụng UDF để làm chủ việc tạo ra trạng thái, chúng ta cũng có thể coitrạng thái đã có tạo là một sự kiện phát trực tiếp—nói biện pháp khác, các phiên bạn dạng của trạng tháisẽ được chế tạo ra theo thời gian. Vì chưng đó, chúng ta nên hiển thị tâm lý giao diện người tiêu dùng trong một đối tượng người sử dụng giữ dữ liệu hoàn toàn có thể ghi nhận được như LiveData hoặc StateFlow. Lý do là vìgiao diện tín đồ dùng có thể phản ứng với bất kỳ thay đổi nào được triển khai trong trạng thái ko phảilấy tài liệu trực tiếp tự ViewModel. Các loại này có ích ích là luôn lưu vào bộ lưu trữ đệm phiên bạn dạng mới tốt nhất của tâm trạng giao diện tín đồ dùng. Vận động này rất hữu ích trong việc phục hồi trạng thái lập cập sau khi biến hóa cấu hình.

qqlive| j88