2012-04-18 19 views
7

के खिलाफ कोरडाटा को सिंक्रनाइज़ करने के लिए आर्किटेक्चर/नमूना मैं एक ऐप बनाने के लिए नमूना ऐप या अधिक आर्किटेक्चरल चर्चा की तलाश में हूं, जो एक स्थानीय निरंतर स्टोर (कोरडाटा) को बनाए रखता है और इसे वेब के विरुद्ध सिंक करता है - फ़्लिकर की तरह सेवा। मेरे मामले में यह Salesforce है, लेकिन पैटर्न फ़्लिकर, ट्विटर, आईएमएपी आदि के लिए कई ऐप्स के समान होना चाहिए।आईओएस ऐप - वेब-सेवा

नमूना प्रश्न: सिंक्रनाइज़ेशन का आह्वान करने के लिए सबसे अच्छे अंक कहां हैं? स्थानीय परिवर्तनों को बनाए रखने के लिए सिद्ध डेटास्ट्रक्चर क्या हैं - स्थानीय स्टोर में "बदले" बूल को प्रत्येक अनियंत्रित परिवर्तन के लिए बनाए रखें; मैं रिकॉर्ड स्तर ध्वज के खिलाफ एक फील्ड स्तरीय ध्वज पसंद करेंगे)?

बेशक मुझे इसे अपने आप को अनुकूलित करना है, रिकॉर्ड की मात्रा (100) और परिवर्तन (10 दिन प्रति दिन) और संघर्ष की संभावना (क्षेत्र के स्तर पर मेरे मामले में कम) की जानना है।

उत्तर

3

यहाँ मैं यह कैसे दृष्टिकोण होता है:

  1. एक स्थानीय CoreData/SQLite डेटाबेस कि आपके ऑनलाइन डेटाबेस दर्पण मॉडलिंग से प्रारंभ।
  2. प्रत्येक तालिका की प्रत्येक पंक्ति में एक NSDate अंतिम संशोधित संपत्ति जोड़ें। यह मुझे फील्ड स्तर की बजाय रिकॉर्ड स्तर पर परिवर्तनों को ट्रैक करने की अनुमति देगा। यह सिंक जटिलता को कम करने में मदद करता है, और अधिकांश वास्तविक परिदृश्यों में, रिकॉर्ड स्तर सिंकिंग पर्याप्त है।
  3. ऐप शुरू होने पर स्वचालित सिंक करें, और अपने नेविगेशन बार में एक प्रमुख "सिंक" बटन भी प्रदान करें। जब ऐप लंबे समय के बाद लॉन्च होता है तो उपयोगकर्ता के पास हमेशा एक अद्यतन डेटासेट होता है, और दिन के दौरान नवीनतम परिवर्तनों को सिंक कर सकता है। ऐप का उपयोग होने पर मैं पृष्ठभूमि सिंक करने से बचूंगा। जब आप अन्य चीजों से निपटने की कोशिश कर रहे हों तो यह आपके ऐप को अधिक जटिल और त्रुटि-प्रवण बना देगा। तो जब तक आप बाकी काम नहीं कर लेते तब तक पृष्ठभूमि/स्वचालित सिंक पर काम करना स्थगित कर दें।
  4. एक बार जब मेरा लॉन्च और ऑन-डिमांड पर उचित रूप से अच्छी तरह से काम कर रहा है, तो मैं पृष्ठभूमि सिंक को आज़माकर समर्थन दूंगा। मैं "सिंक" बटन को भी कोशिश और खत्म कर दूंगा, इसलिए उपयोगकर्ता को सिंकिंग के बारे में कभी सोचना नहीं होगा - (यह हमेशा अद्यतित है जब तक कि उपयोगकर्ता का संबंध है)। लेकिन यह एक दीर्घकालिक वृद्धि होगी, जो मैं केवल "ऑन-डिमांड" काम करने वाले रॉक ठोस को सिंक करने के बाद ही प्रयास करूंगा।

उम्मीद है कि यह आपको प्रारंभ करने में मदद करता है। अगर आप इनमें से किसी के बारे में अलग-अलग सोचते हैं तो मुझे यह सुनना अच्छा लगेगा।

+0

आपको बहुत धन्यवाद @ मिल्सम !! क्षमा करें, मेरी परियोजना को थोड़ी देर के लिए निलंबित कर दिया गया था, लेकिन मैं जल्द ही आपकी सिफारिशों के साथ काम करूँगा। – tschloss

+0

क्या आप हमें एक सरल उदाहरण प्रोजेक्ट प्रदान कर सकते हैं, यह देखने के लिए कि वर्किंग कोड कैसा दिखता है? धन्यवाद @ मिल्सम! – surlac

+0

आरडब्ल्यू http://www.raywenderlich.com/15916/how-to-synchronize-core-data-with-a-web-service-part-1 द्वारा एक अच्छा ट्यूटोरियल मिला – anoop4real

संबंधित मुद्दे