14

यहाँ एक डिजाइन/सर्वोत्तम प्रथाओं सवाल यह है कि ..सर्वोत्तम प्रथाओं एप्लिकेशन

मैं वेब/मोबाइल समाधान के लिए एंड्रॉयड विकास के लिए नया, और मूल रूप से नया हूँ।

तो, मेरा सवाल यह है कि रिमोट सर्वर से डेटा प्राप्त करने वाले एंड्रॉइड एप्लिकेशन की संरचना का आयोजन करते समय सर्वोत्तम प्रथाएं क्या होती हैं?

सर्वर को सर्वर के साथ संचार (अनुरोध प्राप्त करें और पोस्ट) के साथ संचार करने का अनुरोध करना चाहिए, या मुझे डेटा स्रोत के रूप में मेरे अनुरोधों को देखना चाहिए, जिसका अर्थ है कि प्रत्येक डेटा क्लास इसे अपने लिए प्रबंधित करती है?

या मेरे पास अमूर्तता के अधिक स्तर होना चाहिए - डेटा प्राप्त करने के लिए एक स्तर, मॉडल के लिए अन्य जो कुछ इंटरफेस का उपयोग करता है, बिना स्रोत डेटा से क्या पता चलता है?

मैं उत्सुक कैसे अनुभवी एंड्रॉयड डेवलपर्स इन डिजाइन मुद्दों को दृष्टिकोण हूँ ...

उत्तर

9

Virgil Dobjanschi presentation एक अच्छा संसाधन के रूप में पहले बताया है:

http://www.youtube.com/watch?v=xHXn3Kg2IQE

इस पोस्ट में भी तुम बाहर में मदद मिलेगी: यह भी आम गलतियों शुरुआती का उपयोग बनाने के लिए करने से रोक देंगे जो मूल रूप से आपको पृष्ठभूमि अनुरोध से अपने अनुरोध चलाने के लिए कहता है ताकि गतिविधि नष्ट न हो और डेटाबेस को जितनी जल्दी हो सके डेटाबेस में संग्रहीत करने के लिए।

1- लाइब्रेरी HTTP अनुरोध और प्रतिक्रिया (ApacheHTTP के साथ) की हैंडलिंग संपुटित करने के लिए है, जो सरल संभाल कर सकते हैं:

अधिक तकनीकी जानकारी के लिए, जिस तरह से मैं इसे कर रहा हूँ तीन घटकों में विभाजित करने के लिए एप्लिकेशन है अनुरोध/प्रतिक्रिया और उन्नत सुविधाएं जिनमें कुकीज़ शामिल हो सकती है (लॉगिन के लिए आवश्यक हो सकती है) और HTTP शीर्षलेख को संशोधित करना।

2- मार्शल/उमरशा परत, जहां मैं सर्वर डेटा (जैसे एक्सएमएल या जेएसओएन) का विश्लेषण करता हूं और इसे ऑब्जेक्ट्स (यानी मॉडल) में परिवर्तित करता हूं, जो मेरा बाकी ऐप सौदा करेगा।

3- दृढ़ता परत।

डॉबंजांची की प्रस्तुति के अनुसार, मैं आमतौर पर गतिविधि के अंदर एक थ्रेड कार्यकर्ता में सेवा में डेटा अनुरोध चलाता हूं।

+0

यह शानदार वीडियो है, धन्यवाद! अब, मैं इसे लागू करने की कोशिश कर रहा हूं, विशेष रूप से पैटर्न बी (गतिविधि-> सामग्री प्रदाता -> सेवाहेल्पर -> सेवा -> आराम -> प्रोसेसर), और अब मुझे यह पता लगाना कठिन समय हो रहा है कि यह कैसे किया जाना चाहिए। मुझे समझ में नहीं आता कि इस सेवा की ग्रैन्युलरिटी क्या है, उदाहरण के लिए, यदि मेरे पास मेरे मॉडल ऑब्जेक्ट्स हैं, या उपयोगकर्ता टेबल, उपयोगकर्ता डिस्प्ले, सिटी, श्रेणी इत्यादि नामक डेटाबेस टेबल ... क्या मेरे पास इन कक्षाओं को सभी "डेटा प्रकारों" के लिए होना चाहिए , या विशेष? – daneejela

+0

उदाहरण के लिए, क्या मेरे पास UserProcessor, Categoryप्रोसेसर (आदि), उपयोगकर्ता सेवा, श्रेणी सेवा (आदि) उपयोगकर्ता सामग्री प्रदाता, श्रेणी सामग्री प्रदाता (आदि) होना चाहिए? – daneejela

6

उपयोग इस गूगल आई/ओ बात में प्रस्तुत 3 मॉडलों में से एक। यह आपको सुझाव प्रदान करता है जो आपको आपके ऐप आर्किटेक्चर की परिभाषा की पूरी प्रक्रिया में मदद करेगा। ,

Need sample Android REST Client project which implements Virgil Dobjanschi REST implementation pattern