आप उपयोगकर्ता आधार, एक अद्यतन स्थापित तो अपने उपयोगकर्ताओं को अपनी नए/अपडेट पहले से भरे डेटा एक स्वीकार्य दृष्टिकोण हो सकता है पाने के लिए मजबूर करने की तुलना में, लेकिन नहीं एक महान उपयोगकर्ता अनुभव को नियंत्रित करते हैं अगर वे अद्यतन करने के लिए मजबूर आवेदन हर समय ... लेकिन यह काम करता है ...
यह वह जगह है जहां आपको अपने आवेदन में शामिल पूर्व-जनसंख्या वाले डेटा पर बहुत सावधान रहने की आवश्यकता है।
डेटा बासी हो जाता है और आप अपने नए इंस्टॉल पर स्थापित करने के लिए स्टोर करने के लिए एक अद्यतन एप्लिकेशन संस्करण पुश करने के लिए, सावधान रहना है कि यह दिन (या हफ्तों या यहाँ तक कि महीने +) हो सकता है कि दुकान में नए एप्लिकेशन प्राप्त करने की आवश्यकता ।
हम नियमित रूप से 48-72 घंटे की देरी देखते हैं और यादृच्छिक रूप से अस्वीकार हो जाते हैं और इस प्रकार ऐप्पल स्टोर में अपडेट ऐप प्राप्त करने में एक सप्ताह या अधिक समय लग सकता है। हम महीने से अधिक के लिए एक ऐप अपडेट में देरी को अस्वीकृत कर दिया था और अपील प्रक्रिया में चले गए हैं और यहां तक कि हटाया पहले से ही विद्यमान सुविधाओं को पाने के लिए फिर से प्रकाशित
यह डेटा लागत आपका अंतिम उपयोगकर्ता और आप क्या है?
ऐप डेवलपर के रूप में आपके लिए नकारात्मक लागत खराब समीक्षा और अनइंस्टॉल हैं। देखें कि यह "डेटा" अंत उपयोगकर्ताओं को आपके एप्लिकेशन तक कैसे पहुंचता है और वे कैसे प्रतिक्रिया करते हैं। लंबे समय तक डाउनलोड समय, आमतौर पर स्वीकार्य। लंबे प्रारंभिक ऐप स्टार्टअप समय, कम स्वीकार्य ... आदि ....
आपके ऐप का उपयोग किस बाजार में किया जाएगा? नेटवर्क की गति और दुनिया भर के कई बाजारों में डेटा ट्रांसफर की लागत धीमी और महंगी है ...
डेटा का सही आकार वास्तव में क्या है?
मैं एक वास्तविक डेटा उदाहरण पूर्व-पॉप्युलेट करता हूं जिसमें हजारों पंक्तियों के साथ 5 एमबी JSON डेटा के साथ एक सेकंड के नीचे होता है। SQLite लंबा लगता है, लेकिन यह अभी भी बुरा नहीं है।डेटा को एक ज़िप में संग्रहीत किया जाता है और एक स्थिर फ़ाइल (https- आधारित प्राप्त) के रूप में उपयोग किया जाता है और 80% संपीड़न कारक पर, एलटीई सेलुलर डेटा का उपयोग कर एक सेकंड के नीचे संपीड़ित डेटा को 1 सेकंड से संपीड़ित डेटा खींच लिया जाता है जेएसओएन ऑन-फ्लाई को रीयलम इंस्टेंस अपडेट करने के लिए deserializing जबकि गति और इसे असंपीड़ित करते हुए एक और सेकंड जोड़ता है ...
तो, उपयोगकर्ता प्रभाव बहुत छोटा है और मैं इस प्रारंभिक प्री-पॉप्यूलेट अपडेट को पहले "छुपा" टाइम स्क्रीन और कुछ पाठ कि उपयोगकर्ता उम्मीद है कि पहले "असली" एप्लिकेशन स्क्रीन के लिए हो रही से पहले पढ़ता का स्वागत करते हैं ...
नोट: यह मान कि उपयोगकर्ता नेटवर्क डाटा पहली बार वे खोलने के लिए उपयोग होगा करता है ऐप ... दुनिया भर के कई बाजारों में, यह है सच नहीं है, तो इसे अपने ऐप डिज़ाइन में कारक बनाएं।
मैं ऐप को भी आर्किटेक्ट करता हूं, इसलिए इसका डेटा पृष्ठभूमि लॉन्च (प्रारंभिक एक या नहीं) के दौरान पृष्ठभूमि धागे पर अपडेट किया जा सकता है और इस प्रकार उपयोगकर्ता कताई व्यस्त इंडिकेटर को देखकर वहां खड़ा नहीं होता है, वे कम से कम डेटा से बातचीत कर सकते हैं कि उनके पास है।
तो क्या आपको अपने ऐप बंडल में कोई भी पूर्व-जनसंख्या वाला डेटा शामिल करना चाहिए?
निश्चित रूप से, जब उपयोगकर्ता को उपयोगकर्ता अनुभव को बढ़ाने के लिए जितनी जल्दी संभव हो सके और चलाने के लिए वह डेटा आवश्यक है। गेम 100 मेगाबाइट्स या यहां तक कि गीगाबाइट्स को .obb
के माध्यम से ... विभिन्न स्तरों, मीडिया फाइलों आदि के साथ ऐप में बंडल करने का एक शानदार उदाहरण है ताकि उपयोगकर्ता को 10+ मिनट का अनुभव न हो। ऐप को पहली बार खोलने पर समय प्रतीक्षा करें।
अब इसका मतलब यह है कि इंस्टॉल के लिए उनका प्रारंभिक डाउनलोड समय ऐप के भीतर डेटा को बंडल कर दिया गया था, इसलिए उपयोगकर्ता का डाउनलोड बेहतर/बेहतर समय था क्योंकि उपयोगकर्ता डाउनलोड/इंस्टॉल समय स्वीकार करते थे और इसे एक वाहक/फोन/वास्तव में एक कार्यात्मक स्क्रीन पर जाने के लिए पहली बार अपना ऐप खोलने के लिए सेवा योजना मुद्दा बनाम।
तो क्या करें?
व्यक्तिगत रूप से मैं इस मामले को मामले के आधार पर देखता हूं। मैं डेटा देखता हूं और यदि यह बदलने वाला नहीं है और केवल समय के साथ जोड़ा जा सकता है और संभावित रूप से छंटनी की जाती है, तो इसे प्री-पॉप्युलेटेड SQLite या Realm store के रूप में शामिल करें या ... उपयोगकर्ता को वेब अनुरोधों का इंतजार क्यों करना है, डेटाबेस अद्यतन और अतिरिक्त नेटवर्क डेटा उपयोग और संबंधित लागत। यदि डेटा बासी जा रहा है, तो इसे अपने ऐप में बंडल न करें।
पूर्व आबादी वाले डेटा को स्थापित करने के यांत्रिकी के लिए के रूप में:
इस पर मेरा उत्तर देखें एसओ के बारे में सवाल "Bundle prebuilt Realm files"
आप देख सकते हैं डेटाबेस से मौजूद है। यदि ऐसा नहीं होता है, तो डेटा बीज करें, अन्यथा कुछ भी नहीं करें। –
बीज में बड़ी संख्या में पंक्तियां हैं। क्या आप ऐसा करने के लिए किसी भी अनुशंसित तरीके से जानते हैं? क्या मुझे फ़ाइल में डेटा से बीज करने की कोशिश करनी चाहिए? – Alan2
मैं इसे संसाधन के रूप में रखूंगा। यदि इसकी केवल 500 किलोबाइट है, तो इसकी बहुत अधिक जगह नहीं है। जब ऐप पहली बार शुरू होता है, तो इसे संसाधन से डिस्क पर कॉपी करें और आप – lokusking