Tôi đã phát triển các ứng dụng Android trong vài năm. Gần đây tôi đã sử dụng kiến trúc MVP trong ứng dụng của tôi và sau khi đọc qua rất nhiều và sử dụng Android10 repo github này.Câu hỏi về Mô hình MVP cho các ứng dụng Android
Nhưng có một vài câu hỏi tôi có xung quanh kiến trúc MVP mà tôi đang tìm kiếm. Xin hãy giúp tôi hiểu những điều này tốt hơn.
1) Vì vậy, tôi có ba ứng dụng mô-đun, tên miền, dữ liệu. Những người thuyết trình mô-đun sẽ đi. Trong một số ứng dụng, chúng có trong miền nhưng tôi thấy một số thư viện khác có trong thư viện hoặc mô-đun ứng dụng như thế này https://github.com/android10/Android-CleanArchitecture.
2) Người thuyết trình có thể có các nội dung liên quan đến Android như Intents, Contexts, SharedPrefs ets không? Tôi không nghĩ điều này sẽ xảy ra.
3) có thể dữ liệu mô đun nói chuyện với module ứng dụng và ngược lại Hoặc mô-đun ứng dụng nên nói chuyện với mô-đun miền mà trong nhiệm kỳ thực hiện những điều trên module dữ liệu
4) Làm thế nào tôi có thể làm đăng nhập xã hội như Facebook với kiến trúc MVP ... bất kỳ ý tưởng hay liên kết nào để giải thích? Tôi đã làm điều đó một cách dưới đây:
Hoạt động: onFBButtonClick()
->presenter.onButtonClick()
->FacebookLoginManager.registerCallback
Sau này tôi trực tiếp nhận được một cuộc gọi lại về hoạt động của tôi trên onActivityResult(int requestcode, int resultcode, Intent intent)
. Bây giờ theo hướng dẫn fb sdk tôi phải gọi FbCallbackManager.onActivityResult(with all the params)
. Nhưng tôi không thể vượt qua những thông tin này trong thuyết trình như người trình bày không nên biết về ý định (Platform cụ thể) điều. Làm thế nào tôi có thể gọi FbcallbackManager.onActivity()
?
2) Ý định thực sự là điều nền tảng Android - phải nằm trong phần V của MVP. Ngữ cảnh - có thể đạt được bởi Dependency Injection bất cứ khi nào bạn cần, tôi tránh nó trong Presenter. SharedPrefs giống nhau - chúng liên quan chặt chẽ đến UseCase cụ thể (hoặc Interactor, bất kể bạn đặt tên nó là gì). UseCase sử dụng Repositories cho dữ liệu và SharedPrefs có thể là Repository được tiêm như vậy. Kiểm tra phản hồi của donnfelker: https://www.reddit.com/r/androiddev/comments/35vgw7/in_an_mvp_architecture_where_would_accessing_the/?sort=top Cá nhân, tôi sẽ không sử dụng UseCase cho Trình bày đơn giản. Sử dụng Repository thẳng. – Przemo
@Przemo Những gì tôi hiểu từ v phần là Xem ... Hoạt động, các mảnh vỡ. Tôi không nghĩ rằng cách chúng ta có thể thực hiện Intents như View. Bất kỳ cách nào cảm ơn bạn đã trả lời. – anshul
Yep, V là phần khung làm việc của Android (Hoạt động, Chế độ xem, Phân đoạn. Tôi có nghĩa là nội dung có liên quan đến ý định, như bắt đầu Hoạt động mới, IntentFilters, BroadcastReceivers, Dịch vụ, v.v ... sẽ được quản lý trong phần Xem. Nhưng trong MVP View thực sự là View + simple Controller với những thứ tôi vừa nói, click listeners… – Przemo