नया Android वास्तुकला अवयव के साथ एंड्रॉयड वास्तुकला के घटकों 17.एमवीपी
तो हम वास्तुकला के घटकों और MVVM साथ एमवीपी का उपयोग करना चाहिए गूगल आईओ पर रिहा कर दिया?
गीथब पर Google नमूने में, उन्होंने एमवीवीएम मॉडल का उपयोग किया है। Google Sample
नया Android वास्तुकला अवयव के साथ एंड्रॉयड वास्तुकला के घटकों 17.एमवीपी
तो हम वास्तुकला के घटकों और MVVM साथ एमवीपी का उपयोग करना चाहिए गूगल आईओ पर रिहा कर दिया?
गीथब पर Google नमूने में, उन्होंने एमवीवीएम मॉडल का उपयोग किया है। Google Sample
वास्तुकला पैटर्न और इसके कार्यान्वयन के चयन के बारे में, यह हमेशा टीम के सदस्यों, ऐप के प्रकार आदि जैसे कई कारकों पर निर्भर करता है।
गूगल के ब्लॉग पोस्ट में, वे पहले से ही कहा है कि वास्तुकला घटक मुख्य रूप से
नहीं विचार नुस्खे हैं।
हालांकि, तीन मुख्य घटक (Room, ViewModel, ViewData
) विस्तृत श्रृंखला के उपयोग के साथ विकसित किए गए हैं लेकिन किसी भी विशिष्ट पैटर्न पर ध्यान केंद्रित नहीं करते हैं।
उदाहरण के लिए,
अंत में, अपने प्रश्न के लिए।
तो क्या हमें आर्किटेक्चर घटकों के साथ एमवीपी का उपयोग करना चाहिए?
उत्तर है "यह एंड्रॉइड फ्रेमवर्क का अच्छा हिस्सा है, तो क्यों नहीं"।
अपडेट किया गया:
आप देखना चाहते हैं कि एक एमवीपी पैटर्न परियोजना नई वास्तुकला अवयव के साथ काम करता चाहते हैं, मेरी repository on Github चेकआउट करें। जिसमें मैं जीवन के लिए जागरूक प्रेजेंटर बनाने के लिए स्थानीय दृढ़ता और लाइफसाइकल के लिए कक्ष का उपयोग करके पिछले एमवीपी मॉडल को बढ़ाता हूं।
देखें, प्रस्तुति गतिविधि पुनर्विक्रय या कॉन्फ़िगरेशन परिवर्तनों में जीवित रहने के लिए आप व्यूमोडेल आर्किटेक्चर घटक का उपयोग क्यों नहीं करते? इम्हो यह आपको बहुत फायदे देगा: मैंने इस जिथब रेपो पर एक नज़र डाली और इससे मुझे बहुत मदद मिली -> https://github.com/armcha/MVP- आर्किटेक्चर- कॉम्पोनेंट्स –
आपको बनाने के लिए व्यूमोडेल का उपयोग करने की आवश्यकता नहीं है गतिविधि जीवन चक्र के बारे में प्रस्तुतकर्ता प्रस्तुतकर्ता। बस लाइफसाइकिल ऑब्सर्वर लागू करता है, उदाहरण के लिए: https://github.com/quangctkm9207/mvp-android-arch-component/blob/master/app/src/main/java/com/quangnguyen/stackoverflowclient/ui/questions/QuestionsPresenter। जावा –
मैं प्रस्तुतकर्ता जीवनशैली को जागरूक करने के बारे में बात नहीं कर रहा था .. मैं व्यूमोडल्स की विशिष्टता के बारे में बात कर रहा था जो गतिविधि recreations से बचने के लिए है .. तो आपको SaveInstanceState ,RestoreInstanceState पर और उन सभी चीजों को लागू करने की आवश्यकता नहीं है :) –
मैं वर्तमान में एक टेम्पलेट परियोजना गूगल वास्तुकला के घटकों (कक्ष, LiveData) के साथ एमवीपी पैटर्न का उपयोग करता है के निर्माण कर रहा हूँ, और Realm
के संस्करण मिश्रण करने की तुलना और LiveData:
https://github.com/duyp/mvp-template
मैं से कुछ लगता है गूगल वास्तुकला अवयव एमवीपी पैटर्न, MVVM के लिए न केवल के साथ संगत कर रहे हैं: डी
आप 2 following branches की जाँच कर सकते हैं:
realm_livedata
: क्षेत्र और LiveData साथ एमवीपी
room_livedata
: कमरे का हठ पुस्तकालय और LiveData साथ एमवीपी
यह बहुत Google sample
परियोजना की तुलना में अधिक जटिल है (मैं इस्तेमाल किया Dagger 2
, RxAndroid, रेट्रोफिट, Gson, और स्वच्छ वास्तुकला) आशा है कि आपको अपने काम के लिए बेहतर समाधान मिलेगा। यदि कोई प्रश्न या सुझाव है, तो आप my github project
पर टिप्पणियां या समस्याएं छोड़ सकते हैं। https://github.com/duyp/mvvm-template
मुबारक कोडिंग:
मैं भी एक परियोजना क्षेत्र के साथ नया गूगल वास्तुकला घटकों के साथ MVVM का उपयोग कर, डैगर 2, लाइव डेटा बनाया!
सरल उत्तर "यह निर्भर करता है" - एमवीवीएम मानक एमवीसी आर्किटेक्चर की तुलना में उच्च सीखने की वक्र है लेकिन टेस्टेबिलिटी के मामले में लाभ प्रदान करता है। हालांकि, इस तरह का सवाल वास्तव में StackOverflow पर विषय पर नहीं है। कृपया [सहायता/विषय-वस्तु] –