2015-12-19 19 views
12

Tôi đang lên kế hoạch triển khai mẫu thiết kế kiến ​​trúc MVVM cho ứng dụng Android của mình. Tôi đã đọc trực tuyến rằng nó sẽ giúp tôi đạt được hiệu quả tách mối quan tâm và dễ dàng viết các trường hợp thử nghiệm cho mô hình dữ liệu, giao diện người dùng, vv Cần một số cái nhìn sâu sắc/tư vấn cho việc này.Làm cách nào để triển khai hiệu quả mẫu thiết kế MVVM cho ứng dụng Android của tôi cũng sẽ dễ dàng viết các trường hợp kiểm tra?

Trả lời

24

Vâng, phải học cách sử dụng hiệu quả MVVM, bắt đầu với Android MVVM Design Pattern Examples

Ở đây bạn sẽ tìm thấy bài đó:

Tôi là nhà phát triển của Android-Binding. Giống như @Brentley đã nói, đó là một dự án rất mới nhưng tôi hy vọng sẽ nhận được nhiều thông tin và trải nghiệm hơn vì vậy rằng nó có thể được cải thiện. Về câu hỏi của bạn, tôi đã viết một số giới thiệu đơn giản/hướng dẫn về MVVM với android-ràng buộc:

chấp tiềm năng cũng hài lòng đăng ký trên project discussion group.

Đọc toàn bộ chủ đề. Bạn sẽ nhận thấy rằng MVVM là khuôn khổ tương đối mới và nó rất khuyến khích để làm việc với nó hợp tác với Google và thư viện dependency injection thư viện p Data Binding như Roboguice hoặc Dagger2 ...

... nhưng tốt nhất là cái này:

Approaching Android with MVVM. Building an MVVM architectured application using the Data Binding Library,

nơi một tác giả được giải thích bằng MVVM với thư viện Ràng buộc dữ liệu bằng ví dụ - Ý tôi là bởi ứng dụng tạo riêng của mình. Ông kết luận:

Vẫn còn quá sớm để biết cách tiếp cận này có đúng cách để phát triển ứng dụng hay không, nhưng thử nghiệm này đã cho tôi cơ hội xem xét một trong các khả năng cho các dự án trong tương lai. Đó là điều tôi chắc chắn muốn chơi với nhiều thứ hơn.

Model-View-ViewModel thật thú vị vì trong kiến ​​trúc Android truyền thống, bộ điều khiển sẽ đẩy dữ liệu đến chế độ xem. Bạn sẽ tìm thấy chế độ xem trong Hoạt động của mình, sau đó đặt nội dung trên đó.

Với MVVM, ViewModel làm thay đổi một số nội dung và thông báo khung dữ liệu ràng buộc về nội dung đã thay đổi. Sau đó, khung làm việc tự động cập nhật bất kỳ chế độ xem nào, được ràng buộc với nội dung đó.

Hai thành phần này chỉ được kết hợp lỏng lẻo qua giao diện dữ liệu và lệnh đó.

Tiếp theo, việc sử dụng MVVM thực sự có thể kiểm chứng.Từ MVVM on Android: What You Need to Know

Bởi vì một ViewModel không phụ thuộc vào các View nữa, bạn có thể kiểm tra một ViewModel mà không có một View thậm chí hiện có. Với tiêm phụ thuộc thích hợp cho các phụ thuộc khác, nó rất đơn giản để kiểm tra. Ví dụ, thay vì liên kết VM với chế độ xem thực, người ta có thể tạo VM trong một trường hợp thử nghiệm, cung cấp cho nó một số dữ liệu, sau đó gọi hành động trên đó, để đảm bảo dữ liệu được chuyển đổi đúng cách. (...) Tất cả điều này có thể được thực hiện mà không cần phải tương tác với Chế độ xem thực tế.

đọc thêm: MVVM ON ANDROID USING THE DATA BINDING LIBRARY

Hy vọng nó sẽ giúp

+1

Giới thiệu về bài stablekernel blog, tôi đã đọc nó một vài ngày trước đây, nhưng tôi phải lưu ý rằng nó không phải là hoàn toàn MVVM tuân thủ. Nó mang lại quan điểm về ViewModel (OnFocusListener, View type). Giống như tất cả mọi thứ từ Google nó dường như không được suy nghĩ rất tốt hoặc đang trưởng thành. Các Xml Layouts vẫn không thực sự linh hoạt như XAML cho Ví dụ, do đó, nó vẫn sẽ ** rất khó để thực hiện MVVM đúng vào Apps – Tseng

+0

Devs luôn nói MVP trưởng thành hơn và dễ dàng cho phép các nhà phát triển thử nghiệm so với MVVM! –

+0

Tôi không mua vào kiến ​​trúc này đến từ Knockout js và chuyển sang thông lượng/phản ứng. Nó chỉ đơn giản là không thể đoán trước. – frostymarvelous

Các vấn đề liên quan