يوميات التطوير / RideMeter-Simple GPS Computer

يوميات تطوير RideMeter: كمبيوتر بسيط لركوب الدراجات عبر نظام تحديد المواقع العالمي (GPS).

من النزهات بالدراجات القابلة للطي إلى كمبيوتر ركوب الدراجات المعتمد على الهاتف: الإيقاف المؤقت التلقائي لـ RideMeter، وتسجيل الرحلة، والملاحة MapKit، وتحديات تحويل الإحداثيات.

كانت هذه محاولتي الأولى لاستخدام تطبيق iOS بعد اكتشاف البرمجة الديناميكية. كانت أعمالي البرمجية السابقة قبل رحلتنا حول الصين، قبل أكثر من عام. في ذلك الوقت، كنت أكتب بشكل أساسي الأشياء التي أحتاجها للعمل، عادةً ما تكون نصوص المستخدم وإضافات Chrome.

ما هو نص المستخدم؟

برنامج المستخدم هو برنامج صغير يتم تشغيله في متصفحك لتعديل أو تحسين صفحة ويب موجودة. وهو يشبه امتداد المتصفح، ولكنه عادةً ما يكون أخف، حيث يعالج كل نص برمجي مشكلة واحدة محددة. يمكن لنص المستخدم إزالة الإعلانات، أو ضبط تخطيط الصفحة، أو إضافة أزرار التنزيل، أو ملء النماذج، أو حتى إعطاء ميزات موقع الويب التي لم تكن موجودة في الأصل. يشير اللقب الصيني "Youhou" عادةً إلى ملحق متصفح Tampermonkey. قم بتثبيت Tampermonkey، ثم قم بتثبيت البرنامج النصي، وسيتم تشغيل البرنامج النصي تلقائيًا عند زيارة موقع الويب ذي الصلة. بمعنى آخر، يوفر موقع الويب الصفحة الأصلية، ويقوم نص المستخدم بتعديلها داخل متصفحك.

من أين جاءت الفكرة

العودة إلى تطبيق iOS الأول الخاص بي:

بعد عودتنا إلى هانغتشو من رحلتنا حول الصين، كنت أنا ويانغ نركب الدراجات من حين لآخر. لقد بعت دراجة الطريق التي صنعتها مقابل 15000 يوان صيني واشتريت ليانغ دراجة قابلة للطي صينية الصنع على طراز برومبتون. ومع دراجتي داهون القابلة للطي، كلاهما يتناسبان بسهولة مع صندوق السيارة، حتى نتمكن من الذهاب إلى أي مكان في رحلة لطيفة. قبل ذلك، كنت من راكبي الدراجات الذين يريدون الحفاظ على سرعة 30 كم/ساعة حتى أثناء التنقل وشعرت بالضياع بدون جهاز كمبيوتر خاص بالدراجات. حتى أنني دفعت ثمن Strava، الذي كان باهظ الثمن للغاية.

عادةً ما يكون لدى الدراجين مثلي جهاز كمبيوتر خاص بالدراجات على الدراجة، وأحيانًا جهاز منفصل لكل دراجة. ولكن الأمر لا يكون معك دائمًا: ربما كنت تركب دراجة مشتركة، أو ببساطة تركت الكمبيوتر في المنزل. آخذ جهازي إلى المنزل لشحنه وعادة ما أفصله عند ركن السيارة حتى لا تتم سرقته. وفي تلك اللحظات، يمكن للهاتف أن يحل محله.

إعداد ركوب الدراجات خلف RideMeter
إعداد ركوب الدراجات خلف RideMeter

يختلف كمبيوتر ركوب الدراجات عن تطبيق الملاحة العادي بعدة طرق مهمة:

  1. يجب أن يستخدم الملاحة طرق ركوب الدراجات. يمكن لـ Amap القيام بذلك أيضًا.

  2. يجب أن يتوقف المؤقت عند التوقف. معظم تطبيقات الملاحة لا تفعل ذلك، وقد لا يحتاجها الدراجون العاديون، ولكنها مهمة للتدريب والركوب التنافسي. إذا كان وقت التوقف مهمًا، فإنه يخفض متوسط ​​سرعتك ويجعل من الصعب تقييم كيفية قيادتك لهذا القسم.

  3. يجب أن يكون حد السرعة للتسجيل قابلاً للتعديل، على سبيل المثال لبدء العد فوق 5 كم/ساعة أو 10 كم/ساعة. بعض الأشخاص الذين يطاردون إحصائيات Strava الرائعة حددوا هذه العتبة أعلى بكثير، عند 15 أو حتى 20 كم / ساعة. مع عتبة 15 كم/ساعة، فإن المقاطع البطيئة والوقت عند إشارات المرور لا يؤثر على الأداء المسجل.

إدخال RideMeter

RideMeter
RideMeter

وبالتالي فإن مشروع التدريب الخاص بي هو كمبيوتر بسيط للغاية لركوب الدراجات. تهدف واجهته المظلمة إلى استخدام أقل قدر ممكن من الطاقة على شاشة OLED، بينما توحي الألوان السوداء والصفراء بالسرعة والحركة.

قائمة الميزات قصيرة: التنقل؛ السرعة الحية ومتوسط ​​السرعة والمسافة ووقت الركوب؛ ومشاركة بيانات الرحلة. يعمل تسجيل المسار وعرض البيانات أيضًا بدون التنقل النشط، في وضع الرحلة. نموذج العمل بسيط تمامًا: إعلانات AdMob والشراء لمرة واحدة لإزالتها.

أردت أن يعمل هذا التطبيق الصغير في جميع أنحاء العالم دون إضافة تكلفة خدمة هامشية لكل مستخدم. ولهذا السبب اخترت MapKit من Apple بدلاً من واجهة برمجة تطبيقات الملاحة الصينية أو خرائط Google. وهذه هي فائدة شركة عالمية حقًا مثل Apple: فهي تتعامل مع البنية التحتية الدولية الصعبة، ويمكنني دمجها بطريقة مباشرة.

مأزق التنمية

كانت المشكلة الأكبر هي تحويل إحداثيات الخريطة. إذا لم تقم بإنشاء تطبيق خرائط من قبل، فقد لا تعلم أن الخرائط في الصين القارية غالبًا ما تستخدم نظام إحداثيات مختلفًا. لا يعني "خط العرض وخط الطول" دائمًا نفس النظام المرجعي. يوفر نظام تحديد المواقع العالمي (GPS) عادةً إحداثيات WGS-84. وبموجب اللوائح المحلية ومتطلبات رسم الخرائط، تستخدم خرائط الإنترنت الصينية عادةً الإحداثيات المحولة: تستخدم Amap وTencent بشكل أساسي GCJ-02، الملقب غالبًا بـ "إحداثيات المريخ"، وتضيف Baidu تحويلها BD-09. قم برسم إحداثيات GPS الأولية على تلك الخرائط ويمكن أن تكون النتيجة على بعد مئات الأمتار.

بعد إنشاء العرض التجريبي، ذهبنا أنا ويانغ في عدة جولات لاختباره، وكان موضع التنقل خاطئًا في كل مرة. ثم تذكرت مشكلة مماثلة من العمل على منتج مشاركة السيارات Aipinche في عام 2015. لقد راجعت مع GPT، والتي أكدت مشكلة التحويل WGS-84 ⇄ GCJ-02. لقد طلبت من Codex إضافة تحويل الإحداثيات، واختفى الإزاحة.