- UK Cancer Centre की "दिन में 100 push-up challenge" में हिस्सा लेने के लिए ऐप ढूंढते समय, खुद push-up गिनने वाली एक मजेदार चीज़ बनाने का फैसला किया
- iOS के Core Motion framework की पड़ताल
- sensor data का उपयोग करने के तरीकों पर विचार करते हुए
CMHeadphoneMotionManager का इस्तेमाल कर AirPods के motion data को उपयोग में लेने का निर्णय किया
- Core Motion accelerometer, gyroscope, magnetometer जैसे sensors का data देता है
- यह सटीक और भरोसेमंद motion और orientation मापने में उपयोगी है
- user privacy की सुरक्षा के लिए data access permission की आवश्यकता होती है
- AI को लागू करने के तरीके पर विचार
- ARKit जैसे frameworks का उपयोग करने वाले ऐप पहले से काफी हैं
- इसके बजाय लगा कि AI इस आइडिया को लागू करने में मदद कर सकता है
- Core Motion पर प्रशिक्षित GPT का उपयोग करके natural language में सवाल पूछे और समाधान प्राप्त किए
- ऐप architecture डिज़ाइन
- Motion Manager: sensor data stream करता है और device sensor updates को संभालता है
- Pushups Detector: streamed data का विश्लेषण कर predefined thresholds के आधार पर push-up को detect और count करता है
- SwiftUI View: user के push-up करने पर real-time में update होने वाला responsive UI देता है
- Motion Manager का implementation
- delegate pattern का उपयोग करके update होने वाली values तक पहुंच बनाई
CMHeadphoneMotionManager का उपयोग करके device motion data लाया
startUpdates() और stopUpdates() से sensor updates को शुरू और बंद किया
pitch और accelerationY values को update किया और delegate को सूचित किया
- Pushups Detector का implementation
- data stream analysis को शुरू और बंद करने के लिए "session" की अवधारणा लाई गई
- raw data की व्याख्या करके user की posture और push-up की स्थिति का निर्धारण किया
- thresholds का उपयोग करके push-up के नीचे जाने और ऊपर आने को detect किया और count बढ़ाया
MotionManagerDelegate को implement करके acceleration और pitch values में बदलाव को संभाला
- SwiftUI से एक सरल view implementation
- इसमें session start/end button और push-up count दिखाने वाला बड़ा नंबर शामिल है
- user की posture सही है या नहीं, यह दिखाने वाला text भी जोड़ा गया
- data analysis और visualization
- Swift Charts का उपयोग करके raw sensor data को visualize किया और patterns की पहचान की
- Y-axis acceleration में push-up के नीचे जाने (-1.0) और ऊपर आने (+0.5) के patterns पाए गए
- वास्तविक परीक्षणों के जरिए thresholds को समायोजित कर accuracy बेहतर की गई (+0.4, -0.7)
- real-time tracking का आकर्षण
- AirPods पहनकर start button दबाते ही push-up count अपने आप update हो जाता है
- यह user interaction के बिना भी काम करता है
- इस project से सीखी गई बातें
- शुरुआती validation और iterative improvement के महत्व की फिर से पुष्टि हुई
- कुछ अर्थपूर्ण बनाने का मज़ा और संतोष महसूस हुआ
- UI improvement और कई दिनों तक push-up counting जैसी सुधार की गुंजाइश भी है
- AirPods के जरिए audio feedback जोड़कर visual interface के अलावा भी user experience बेहतर किया गया
- निष्कर्ष
- Core Motion, SwiftUI और AI को मिलाकर 24 घंटे में fitness tracking को नया आयाम देने वाला ऐप विकसित किया गया
- यह चुनौती महत्वपूर्ण है कि नई तकनीकों को रोज़मर्रा की समस्याओं पर कैसे लागू किया जा सकता है
2 टिप्पणियां
फिर से महसूस होता है कि 3 बड़े lifts की reps गिनने वाली Galaxy Watch वाकई कमाल की है।
कुछ साल पहले मैंने iPhone के proximity sensor का इस्तेमाल करने वाला Thirty नाम का एक push-up challenge app बनाया था, लेकिन AirPods से करने का तरीका भी है.. Dynamic Island जुड़ने के बाद proximity sensor की accuracy थोड़ी कम हो गई लगती है, उदास सा।