इस प्रोजेक्ट के बारे में
Sprawl//Run एक Flutter-आधारित Android ऐप है जो दौड़ने को साइबरपंक कूरियर कहानी के रूप में प्रस्तुत करता है। यह उन लोगों के लिए बनाया गया है जो स्प्लिट्स की स्प्रेडशीट के बजाय कथात्मक प्रेरणा चाहते हैं, और यह पूरी तरह से ऑफ़लाइन काम करने के लिए डिज़ाइन किया गया है।
कहानी और संरचना
दो अभियानों में बीस GPS-ट्रैक किए गए मिशन हैं। Sprawl Prime शुरुआती अभियान है; इसे पूरा करने पर Null Tide खुलता है। प्रत्येक मिशन से पहले आप एक लक्ष्य चुनते हैं — समय या दूरी — और कहानी आपके चुने हुए के अनुसार गति निर्धारित करती है। लक्ष्य हिट करने पर ऑपरेशन सफल होता है; कम पड़ने पर विफल होता है, खुला रहता है, और आप जब चाहें पुनः प्रयास कर सकते हैं। लक्ष्य से आगे दौड़ना भी गिना जाता है और अतिरिक्त हैंडलर संवाद ट्रिगर करता है।
पीछा करना केंद्रीय तंत्र है: कुछ मिशनों के दौरान कुछ आपका पीछा करता है, और आपके पास भागने के लिए सीमित समय होता है। आवश्यक प्रयास आपके पिछले तीन मिनट की अपनी गति के अनुसार समायोजित किया जाता है, न कि किसी निश्चित डिज़ाइनर-चुने नंबर के अनुसार, इसलिए यह किसी भी दौड़ने की गति पर वास्तविक प्रयास है और कभी असंभव नहीं है। कहानी को बनाए रखते हुए पीछा पूरी तरह से बंद किया जा सकता है।
नौ पात्रों को डिवाइस पर वाक् संश्लेषण द्वारा आवाज़ दी गई है, और README में कहा गया है कि अभियानों में संवाद की 492 पंक्तियाँ हैं। चालीस प्रविष्टियों का कोडेक्स केवल तभी अनलॉक होता है जब किसी पात्र ने वास्तव में किसी प्रविष्टि का उल्लेख किया हो, इसलिए यह रिकॉर्ड करता है कि आपको क्या बताया गया है, न कि पहले से पढ़ने वाले विकी के रूप में। वैकल्पिक हैंडलर अनुस्मारक और वैकल्पिक रन-बीच "सिग्नल शोर" संदेश सक्षम किए जा सकते हैं, बाद वाले रात में कभी नहीं आते।
ट्रैकिंग और मेट्रिक्स
GPS ट्रैकिंग स्क्रीन बंद होने पर भी जारी रहती है और इसमें ऑटो-पॉज़ शामिल है। लाइव HUD दूरी, गति, बीता समय, लक्ष्य रिंग और पीछा बार दिखाता है। कैलोरी ACSM चयापचय समीकरणों और आपके शरीर के द्रव्यमान से गणना की जाती है। मार्ग संग्रहीत GPS डेटा से नियॉन ट्रेस के रूप में खींचे जाते हैं और आपकी वास्तविक गति पर फिर से चलाए जा सकते हैं। ऐप जानबूझकर मानचित्रों को शामिल नहीं करता क्योंकि मानचित्र टाइलों के लिए नेटवर्क की आवश्यकता होती है।
प्रगति
साप्ताहिक और मासिक सारांश आपके पहले रन तक पीछे देखे जा सकते हैं। दीर्घकालिक इतिहास प्रति माह दूरी और एक डॉट कैलेंडर दिखाता है जहाँ प्रत्येक माह आपके द्वारा दौड़ी गई दूरी से प्रकाशित होता है। साठ उपलब्धियाँ छह श्रेणियों और चार स्तरों में फैली हैं, और प्रगति काउंटर के रूप में संग्रहीत होने के बजाय रन लॉग से पुनर्गणना की जाती है। स्ट्रीक्स आपके द्वारा स्वयं परिभाषित साप्ताहिक प्रतिबद्धता (मिनट, किलोमीटर या मिशन) का उपयोग करती हैं, और चालू सप्ताह कभी स्ट्रीक नहीं तोड़ता।
डेटा स्वामित्व
सेटिंग्स → डेटा प्रोफ़ाइल, अभियान प्रगति, उपलब्धियाँ, कोडेक्स और GPS ट्रेस के साथ हर रन को एक सादे JSON फ़ाइल के रूप में सिस्टम शेयर शीट को निर्यात करता है। आयात या तो डिवाइस को बदलता है (स्वच्छ पुनर्स्थापना) या विलय करता है, केवल वही जोड़ता है जो गायब है ताकि पुराना बैकअप किसी मिशन को फिर से लॉक न कर सके। दोनों दिशाओं में कोई स्टोरेज अनुमति उपयोग नहीं होती। व्यक्तिगत रन को OsmAnd, Strava या Komoot जैसे ऐप्स के लिए GPX 1.1 ट्रैक के रूप में निर्यात किया जा सकता है।
ऑडियो
किसी अन्य प्लेयर का संगीत ट्रांसमिशन के लिए कम हो जाता है और यदि प्लेयर गलत व्यवहार करता है तो फिर से शुरू हो जाता है। जब आप संगीत नहीं लाते हैं तो एक वैकल्पिक एम्बिएंट सिंथ बेड उपलब्ध है। वाक् दर और प्रभाव मात्रा समायोज्य हैं, और कहानी की आवाज़ को मौन किया जा सकता है।
गोपनीयता और अनुमतियाँ
README यहाँ असामान्य रूप से स्पष्ट है। कोई INTERNET अनुमति नहीं है, कोई खाता नहीं है, कोई विज्ञापन नहीं है, कोई एनालिटिक्स नहीं है और कोई Google Play Services नहीं है; ऐप मॉड्यूल com.google.android.gms समूह को बाहर करता है और AOSP LocationManager को मजबूर करता है। स्क्रीन बंद होने पर ट्रैकिंग ACCESS_BACKGROUND_LOCATION के बजाय फोरग्राउंड सेवा का उपयोग करती है, और चालू सूचना ही एकमात्र सूचना है जो ऐप दिखाता है। README यह भी नोट करता है कि android:allowBackup को Android के डिफ़ॉल्ट true पर छोड़ दिया गया है, इसलिए OS बैकअप एजेंट डिवाइस बैकअप सक्षम होने पर रन लॉग को उपयोगकर्ता के Google खाते में कॉपी कर सकता है — ऐप स्वयं ऐसा कभी नहीं करता। दो अनुमतियाँ अप्रत्यक्ष रूप से आती हैं: ACCESS_NETWORK_STATE ExoPlayer/just_audio के माध्यम से, और share_plus से एक स्व-परिभाषित डायनामिक-रिसीवर अनुमति।
तकनीकी नोट
Flutter 3.44.8 / Dart 3.12 के साथ निर्मित, Android पहले और iOS स्कैफोल्डिंग मौजूद है। निर्माण के लिए JDK 17 की आवश्यकता है। NDK की आवश्यकता है क्योंकि path_provider_android package:jni खींचता है। रन इंजन अपने स्थान स्रोत, कथावाचक और घड़ी को इंजेक्शन द्वारा लेता है, जो सिंथेटिक GPS के खिलाफ पूरे मिशनों को मिलीसेकंड में परीक्षण करने की अनुमति देता है; README 228 परीक्षण और एक स्वच्छ flutter analyze की रिपोर्ट करता है। ध्वनि प्रभाव, लॉन्चर आइकन और README स्क्रीनशॉट सभी tool/ में स्क्रिप्ट द्वारा उत्पन्न होते हैं, और स्क्रीनशॉट टूल सीडेड डेटा के साथ वास्तविक विजेट्स चलाता है।
मिशन पैक ऐप के दस्तावेज़ निर्देशिका में sprawlrun/mission_packs/ के तहत रखी गई एकल JSON फ़ाइलें हैं और सेटिंग्स से पुनः लोड की जाती हैं, बिना किसी पुनर्निर्माण की आवश्यकता के। ऐप कोड MIT है; बंडल किए गए फ़ॉन्ट (Orbitron, Rajdhani, Share Tech Mono) SIL OFL 1.1 हैं।
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.