रियल-टाइम रनिंग रिकॉर्ड की भविष्यवाणी करने वाला ऐप - Pace Teller
(paceteller.tera.co.kr)नमस्ते, मैं एक solo developer हूँ।
इन दिनों दौड़ना मेरा शौक है, लेकिन मौजूदा मशहूर ऐप्स में मुझे जो फीचर चाहिए था वह नहीं था, इसलिए मैंने इसे खुद बना लिया।
इसे Flutter से विकसित किया गया है, और शुरुआती concept validation वाला version लगभग 2 हफ्तों में पूरा हो गया था, लेकिन इसे निखारकर release के स्तर तक लाने में लगभग 3~4 महीने लगे।
यह फिलहाल Apple और Google स्टोर पर जारी हो चुका है और डाउनलोड के लिए उपलब्ध है। वेबसाइट पर जाकर हर स्टोर के लिंक पर क्लिक करें, तो आसानी से इसे प्राप्त कर सकते हैं।
सेवा परिचय
Pace Teller एक ऐसा ऐप है जो दौड़ते समय रियल-टाइम में 10km, half course, और full course marathon के अनुमानित रिकॉर्ड बताता है।
इसे क्यों बनाया
- 'रोज़ 5~6km दौड़ने का challenge' करते समय, अचानक यह जिज्ञासा हुई कि अगर मैं आखिरी स्पीड से लगातार दौड़ता रहूँ तो 10km का अनुमानित रिकॉर्ड कितना होगा।
- रनिंग ऐप्स में average speed देखने का फीचर तो होता है, लेकिन आखिरी condition के आधार पर वास्तविक रिकॉर्ड का दिमाग में अनुमान लगाना आसान नहीं था।
- जो लोग अक्सर दौड़ते हैं वे मोटा-मोटी अनुमान लगा सकते हैं, लेकिन जिन लोगों के लिए अनुमानित रिकॉर्ड निकालना मुश्किल है, उनके लिए मैंने यह ऐप बनाया।
- वास्तव में दौड़ते हुए अनुमानित रिकॉर्ड सुनना, लक्ष्य के लिए motivation और pace down जैसी condition control में बहुत मददगार रहा है।
- मैंने इसे शुरुआत में सिर्फ अपने इस्तेमाल के लिए बनाया था, लेकिन इस्तेमाल करने पर इतना अच्छा लगा कि हिम्मत करके Show GN में यह पोस्ट लिख रहा हूँ।
अनुमानित रिकॉर्ड की गणना का तरीका
- अब तक दौड़ी गई दूरी की गणना average speed से की जाती है, और बची हुई दूरी की गणना हाल के 20% सेक्शन की pace के आधार पर की जाती है, जिससे रियल-टाइम अनुमानित रिकॉर्ड दिया जाता है।
- साथ ही, voice (TTS) guidance के ज़रिए रिकॉर्ड सुना भी जा सकता है।
- हालांकि, इस गणना पद्धति की सीमा यह है कि अगर आखिरी pace अच्छा हो तो अनुमानित रिकॉर्ड ज़रूरत से ज़्यादा अच्छा दिख सकता है।
- फिलहाल इसमें pace के बेहतर या खराब होने वाली condition को ध्यान में नहीं रखा गया है, लेकिन आगे चलकर workout खत्म होने के बाद user से condition के बारे में पूछकर correction करने की योजना है।
सेवा की विशेषताएँ
- एक basic running app में मिलने वाले ज़्यादातर metrics रिकॉर्ड किए जा सकते हैं।
- workout-आधारित filter, calendar view, और statistics view उपलब्ध हैं।
- GPX file import/export फीचर समर्थित है। (ताकि इस ऐप का रिकॉर्ड दूसरी services में आसानी से ले जाया जा सके)
- Strava data import करने या Strava पर (automatic) भेजने का फीचर है।
- RunKeeper की तरह, GPX को पूरा export करने वाली services में अगर file डाउनलोड करके compress करके import करें, तो एक बार में data दर्ज हो जाता है।
- Galaxy device उपयोगकर्ता health data import करके heart rate को workout data से map कर सकते हैं।
- ऐप के अंदर SQLite DB का उपयोग होता है, और बाहरी server पर data store नहीं किया जाता, इसलिए यह तेज़ी से काम करता है।
- अगर कोई व्यक्ति अपना Open Weather Map API key दर्ज करे, तो weather information भी अपने-आप रिकॉर्ड हो जाती है (हालांकि accuracy कुछ कम हो सकती है)।
- यह English/Korean को support करता है।
आगे की योजनाबद्ध सुविधाएँ
- मैं ऐसा ऐप बनाना चाहता हूँ जो watch पर काम करे।
- खासकर full course के अनुमानित रिकॉर्ड को लेकर Garmin उपयोगकर्ताओं की जिज्ञासा ज़्यादा बताई गई है, इसलिए अगर यह किया तो शायद Garmin app बनाना पड़ेगा।
- अभी मैं watch app भी चलाता हूँ, और इस ऐप को भी चलाता हूँ, यानी दोनों को एक साथ चालू करके दौड़ता हूँ।
- cadence और pace chart से जुड़ी कमियों को सुधारने की योजना है।
- data को server पर store करने वाला फीचर अभी विचाराधीन है, लेकिन इसे विकसित करने की संभावना ज़्यादा है। अभी अगर GPX file में export नहीं किया जाए, तो ऐप delete होने पर सारा data गायब हो सकता है। हालांकि, अगर Strava automatic transfer सेट किया हो, तो data Strava में store हो जाएगा, इसलिए निश्चिंत रहा जा सकता है।
- community या achievement sharing जैसे social features जोड़ने पर भी विचार हो रहा है। हालांकि Strava पहले से यह काम अच्छी तरह कर रहा है, इसलिए इसे जोड़ना चाहिए या नहीं, इस पर सोच रहा हूँ।
- रनिंग कोर्स को 'Route' बनाकर, 'इस इलाके में कौन-सा कोर्स अच्छा है?' जैसी service भी दूसरे ऐप्स पहले से दे रहे हैं, इसलिए इस पर भी विचार चल रहा है।
विकास के बाद के अनुभव
- विकास करते समय जो बात महसूस हुई, वह यह थी: "वाह, ऐसा ऐप solo development से, इतनी जल्दी बन सकता है??" — और यह मेरे लिए भी 'AI-सहायता प्राप्त विकास' के आश्चर्य को महसूस कराने वाला अनुभव था, जैसा शायद बहुतों ने किया होगा।
- iOS और Android ऐप्स को दोनों को native में बनाते समय, एक पूरा करने के बाद दूसरे को बनाते हुए अक्सर थकान और निराशा महसूस होती थी।
- इसलिए मैंने Flutter से शुरुआत की, और कम-से-कम इस तरह के 'मानसिक stress' के मामले में मैं बेहद संतुष्ट हूँ।
- हालांकि packages और libraries अक्सर upgrade होती रहती हैं, और dependency समस्याएँ पैदा करती हैं, जिससे काफी परेशानी हुई; आगे भी इसकी चिंता है।
- GPS से मिलने वाला speed data पूरी तरह सटीक नहीं होता, इसलिए calculation formula की accuracy बढ़ाने के लिए कई तरीके आज़माने पड़े, और इसी वजह से completion level बढ़ाने में काफी समय लगा।
- स्वाभाविक रूप से AI की मदद भी बहुत ली, इसलिए कई बार चक्कर भी काटने पड़े, लेकिन इसे न इस्तेमाल करना संभव नहीं था।
- हमेशा की तरह दोनों स्टोर्स पर regular subscription जोड़ने का काम कठिन होता है।
4 टिप्पणियां
डिपेंडेंसी जैसी समस्याओं को लेकर चिंता तो सच में native में भी उतनी ही रहती है.. हाहा
क्या आप बता सकते हैं कि वह कौन-सा package है?
हाँ, सही है^^ आप किस package की बात कर रहे हैं? क्या आपका मतलब यह है कि आपने किस package में dependency problem का सामना किया था? यह काफी बार होता था, और Flutter के बारे में मेरी समझ कम होने की स्थिति में हुई समस्या भी थी, इसलिए सच कहूँ तो मुझे ठीक से याद नहीं है^^
लगता है Strava जल्द ही कोरिया में अपनी सेवा बंद करने वाला है..!
हाँ, यह पहले ही स्टोर से हट चुका है. लेकिन इसका मतलब यह नहीं है कि आप सेवा का उपयोग नहीं कर सकते. मौजूदा उपयोगकर्ता इसे इस्तेमाल कर सकते हैं, और वेब पर भी इसका उपयोग किया जा सकता है.