गतिविधि
निम्न आदेश, ऐसे एप्लिकेशन (जैसे Smultron 4 और TextEdit) के साथ iCloud के साथ काम करते हुए चलते हैं, जो व्यावसायिक दस्तावेज़ का समर्थन करते हैं -
sudo opensnoop -n ubd
- सर्वव्यापी डेमॉन द्वारा खोली गई स्थानीय फ़ाइलों को दिखाता है। फाइलें डेटाबेस, एक डेटाबेस प्रति सहकर्मी शामिल हैं। निम्नलिखित मार्ग पर एक निर्देशिका प्रति सहकर्मी:
~/Library/Application Support/Ubiquity
डेटा के प्रकार
यदि आप प्रगति को मापना चाहते हैं, तो तय करें कि कौन से प्रकार को मापने के लिए:
- कोर डेटा
- दस्तावेजों
- मौलिक मूल्य।
बचत, प्रगति और माप
कोर डेटा
… परिवर्तन लॉग फ़ाइलें, स्टोर फ़ाइल नहीं, iCloud पर अपलोड की जाती हैं और उपयोगकर्ता के प्रत्येक अन्य डिवाइस पर डाउनलोड की जाती हैं। जब एक परिवर्तन लॉग उसी iCloud खाते से जुड़े किसी अन्य डिवाइस से आता है, तो कोर डेटा प्राप्त परिवर्तन लॉग के आधार पर आपके ऐप को SQLite डेटाबेस की स्थानीय प्रतिलिपि अपडेट करता है। iCloud और Core Data यह सुनिश्चित करते हैं कि प्रत्येक स्थानीय डेटाबेस को उसी परिवर्तन के सेट के साथ अपडेट किया जाए। ...
विचार करें: परिवर्तन लॉग की सामग्री की व्याख्या किए बिना , क्या लॉग फ़ाइल के अपलोड की प्रगति को मापना सार्थक होगा?
दस्तावेज़
मैक डेवलपर लाइब्रेरी में:
... दस्तावेज़-आधारित ऐप्स जगह-जगह स्वतः सहेज सकते हैं, और इसके दस्तावेज़ स्वचालित रूप से उचित समय पर सहेजे जाते हैं ...
इसके अलावा:
स्वचालित डेटा-बचत रणनीतियाँ उपयोगकर्ता को राहत देती हैं
… आपके कोड में उपयुक्त बिंदु जहाँ किसी भी उपयोगकर्ता-संबंधित परिवर्तन को सहेजा जाना चाहिए और उन परिवर्तनों को डिस्क पर स्वचालित रूप से लिखें। ...
कुछ उपयुक्त समय जब आप उपयोगकर्ता डेटा को स्वचालित रूप से सहेज सकते हैं, उसमें निम्नलिखित शामिल हैं:
- जब उपयोगकर्ता ऐप विंडो बंद कर देता है या ऐप को छोड़ देता है (ApplicationWillTerminate :)
- जब एप्लिकेशन निष्क्रिय हो जाता है (ApplicationWillResignActive :)
- जब उपयोगकर्ता आपके एप्लिकेशन को छुपाता है (ApplicationWillHide :)
- जब भी उपयोगकर्ता आपके ऐप में डेटा में एक वैध परिवर्तन करता है
अंतिम आइटम का मतलब है कि आपके पास किसी भी समय उपयोगकर्ता के डेटा को बचाने की स्वतंत्रता है, ऐसा करने के लिए समझ में आता है। उदाहरण के लिए, यदि उपयोगकर्ता डेटा रिकॉर्ड के क्षेत्रों को संपादित कर रहा है, तो आप प्रत्येक फ़ील्ड मान को बदल सकते हैं क्योंकि यह बदल जाता है या जब उपयोगकर्ता नया रिकॉर्ड प्रदर्शित करता है, तो आप सभी फ़ील्ड को प्रतीक्षा और सहेज सकते हैं। इस प्रकार के वृद्धिशील परिवर्तन करने से यह सुनिश्चित होता है कि डेटा हमेशा अद्यतित रहता है, लेकिन इसके लिए आपके डेटा मॉडल के अधिक सूक्ष्म प्रबंधन की आवश्यकता होती है। ...
गौर कीजिए: जो बचत करता है, वह इतनी बार-बार हो सकती है और इतनी कम मात्रा, कि माप सार्थक नहीं होगी।
आइटम-info.db
मैंने अपने स्थानीय मैक प्रतीत होने वाले सहकर्मी के लिए डेटाबेस ब्राउज़ करने के लिए SQLite डेटाबेस ब्राउज़र के साथ खिलवाड़item-info.db
किया। जैसा कि मुझे संदेह था, ऐप केवल ब्राउज़ कर सकता है जबकि सिस्टम डेटाबेस का उपयोग नहीं कर रहा था - Untitled.png
आईक्लाउड में संपादित करने के लिए पूर्वावलोकन का उपयोग करने के दो सेकंड के भीतर , मैं अब डेटाबेस को ब्राउज़ नहीं कर सकता ... और इसी तरह।
संदर्भ
iCloud डिजाइन गाइड
मैक ऐप प्रोग्रामिंग गाइड : द कोर ऐप डिज़ाइन: