4 คะแนน โดย zxavi 2025-04-10 | 4 ความคิดเห็น | แชร์ทาง WhatsApp

สวัสดีครับ ผมเป็นนักพัฒนาเดี่ยว

ช่วงนี้ผมมีงานอดิเรกคือการวิ่ง แต่ในแอปดัง ๆ ที่มีอยู่เดิมไม่มีฟีเจอร์ที่ผมต้องการ เลยลองทำขึ้นมาเองครับ

พัฒนาด้วย Flutter โดยเวอร์ชันแรกสำหรับทดสอบคอนเซปต์ใช้เวลาทำประมาณ 2 สัปดาห์ แต่กว่าจะขัดเกลาและยกระดับให้พร้อมเปิดตัวใช้งานจริงก็ใช้เวลาราว 3~4 เดือน

ตอนนี้เปิดให้ดาวน์โหลดแล้วทั้งบน Apple และ Google Store โดยสามารถเข้าเว็บไซต์แล้วกดลิงก์ไปยังแต่ละสโตร์เพื่อดาวน์โหลดได้อย่างสะดวก

แนะนำบริการ

Pace Teller เป็นแอปที่บอกเวลาคาดการณ์ของการวิ่ง 10 กม., ฮาล์ฟมาราธอน และฟูลมาราธอนแบบเรียลไทม์ระหว่างที่คุณกำลังวิ่ง

ทำไมถึงสร้างขึ้นมา

  • ตอนที่ผมกำลังทำชาเลนจ์ "วิ่งทุกวัน 5~6 กม." อยู่ จู่ ๆ ก็สงสัยขึ้นมาว่า ถ้าวิ่งต่อด้วยความเร็วช่วงท้ายแบบนี้ไปเรื่อย ๆ สถิติคาดการณ์สำหรับ 10 กม. จะออกมาเป็นเท่าไร
  • แม้แอปวิ่งจะมีฟีเจอร์ให้ดูความเร็วเฉลี่ย แต่การคาดเดาสถิติจริงในหัวตามสภาพร่างกายช่วงท้ายไม่ใช่เรื่องง่าย
  • คนที่วิ่งบ่อยอาจพอคาดได้คร่าว ๆ แต่ผมจึงพัฒนาแอปนี้ขึ้นมาเพื่อคนที่คำนวณเวลาคาดการณ์คร่าว ๆ ได้ยาก
  • พอได้ฟังเวลาคาดการณ์ระหว่างวิ่งจริง ก็พบว่ามันช่วยเรื่องแรงจูงใจต่อเป้าหมายและการปรับสภาพการวิ่ง เช่น การผ่อนเพซ ได้มาก
  • เดิมทีทำไว้ใช้คนเดียว แต่พอลองใช้แล้วดีมาก เลยรวบรวมความกล้ามาโพสต์ใน Show GN ครับ

วิธีคำนวณเวลาคาดการณ์

  • ระยะทางที่วิ่งไปแล้วจะคำนวณด้วยความเร็วเฉลี่ย ส่วนระยะทางที่เหลือจะคำนวณโดยอิงเพซของช่วงล่าสุด 20% เพื่อแสดงเวลาคาดการณ์แบบเรียลไทม์
  • นอกจากนี้ยังสามารถฟังสถิติผ่านการแจ้งเตือนด้วยเสียง (TTS) ได้
  • อย่างไรก็ตาม ข้อจำกัดของวิธีคำนวณนี้คือ หากเพซช่วงท้ายดีมาก เวลาคาดการณ์ก็อาจออกมาดีเกินจริงได้
  • ตอนนี้ยังไม่ได้คำนึงถึงกรณีที่เพซดีขึ้นหรือแย่ลงตามสภาพร่างกาย แต่ในอนาคตมีแผนจะปรับแก้ผ่านคำถามหลังจบการออกกำลังกายเพื่อสอบถามสภาพร่างกายของผู้ใช้

จุดเด่นของบริการ

  • สามารถบันทึกตัวชี้วัดส่วนใหญ่ที่แอปรันนิ่งพื้นฐานทั่วไปมีให้ได้
  • มีฟังก์ชันกรองตามการออกกำลังกาย มุมมองปฏิทิน และมุมมองสถิติ
  • รองรับการนำเข้า/ส่งออกไฟล์ GPX (ทำไว้ให้ย้ายสถิติจากแอปนี้ไปบริการอื่นได้สะดวก)
  • มีฟังก์ชันนำเข้าข้อมูลจาก Strava หรือส่งต่อไปยัง Strava แบบ (อัตโนมัติ)
  • สำหรับบริการที่ส่งออก GPX ทั้งหมดให้เหมือน RunKeeper หากรับไฟล์มาแล้วแตกไฟล์บีบอัดเพื่อนำเข้า ก็สามารถใส่ข้อมูลทั้งหมดได้ในครั้งเดียว
  • ผู้ใช้เครื่อง Galaxy สามารถนำเข้าข้อมูลสุขภาพและแมปข้อมูลอัตราการเต้นหัวใจกับข้อมูลการออกกำลังกายได้
  • ใช้ SQLite DB ภายในแอป และไม่เก็บข้อมูลไว้บนเซิร์ฟเวอร์ภายนอก จึงทำงานได้รวดเร็ว
  • หากผู้ใช้กรอก Open Weather Map API key ของตนเอง ระบบจะบันทึกข้อมูลอากาศให้อัตโนมัติด้วย (แต่ความแม่นยำอาจลดลงบ้าง)
  • รองรับภาษาอังกฤษ/เกาหลี

ฟีเจอร์ที่วางแผนไว้ในอนาคต

  • อยากลองทำแอปที่ทำงานบนสมาร์ตวอทช์
  • โดยเฉพาะฟีเจอร์คาดการณ์เวลาฟูลมาราธอน มีคนบอกว่าผู้ใช้ Garmin สนใจกันมาก ถ้าจะทำก็น่าจะต้องสร้างแอป Garmin
  • ตอนนี้ผมเปิดทั้งแอปบนนาฬิกาและแอปนี้ แล้วกดเริ่มสองแอปพร้อมกันก่อนออกวิ่ง
  • มีแผนจะปรับปรุงจุดที่ยังไม่สมบูรณ์เกี่ยวกับ cadence และกราฟเพซ
  • ฟังก์ชันเก็บข้อมูลไว้บนเซิร์ฟเวอร์ยังอยู่ระหว่างชั่งใจ แต่มีโอกาสสูงที่จะพัฒนา เพราะตอนนี้ถ้าไม่ส่งออกเป็นไฟล์ GPX ข้อมูลทั้งหมดอาจหายเมื่อถอนการติดตั้งแอป อย่างไรก็ตาม ถ้าตั้งค่าให้ส่งไป Strava อัตโนมัติ ข้อมูลก็จะถูกเก็บไว้ใน Strava จึงอุ่นใจได้
  • กำลังพิจารณาเพิ่มฟีเจอร์โซเชียล เช่น ชุมชนหรือการอวดสถิติ แต่เพราะ Strava ทำส่วนนี้ไว้ดีอยู่แล้ว เลยยังลังเลว่าจำเป็นต้องเพิ่มหรือไม่
  • การทำคอร์สวิ่งให้เป็น "Route" แล้วทำเป็นบริการแนวว่า "ย่านนี้มีคอร์สไหนน่าวิ่งบ้าง" ก็มีแอปอื่นทำอยู่แล้ว จึงยังลังเลในส่วนนี้เช่นกัน

ความรู้สึกหลังพัฒนา

  • สิ่งที่รู้สึกระหว่างพัฒนาคือ... "ว้าว แอปแบบนี้ นักพัฒนาเดี่ยวทำได้เร็วขนาดนี้เลยเหรอ??" เป็นบริการที่ทำให้ผมได้สัมผัสความน่าทึ่งของการ 'พัฒนาด้วย AI' แบบที่หลายคนน่าจะเคยเจอเหมือนกัน
  • เมื่อก่อนถ้าทำแอป iOS กับ Android แบบ native ทั้งสองฝั่ง พอทำอันหนึ่งเสร็จแล้วต้องไปทำอีกอัน มักจะมีช่วงหมดไฟอยู่บ่อย ๆ
  • เลยลองเริ่มด้วย Flutter และในแง่ของ "ความเครียดทางจิตใจ" นั้นถือว่าพอใจมาก
  • แต่แพ็กเกจและไลบรารีมีการอัปเกรดบ่อย ทำให้เกิดปัญหา dependency จนเหนื่อยพอสมควร และก็กังวลว่าจะเป็นแบบนี้ต่อไป
  • ข้อมูลอย่างความเร็วที่ได้จาก GPS ไม่ได้สมบูรณ์แบบ จึงต้องลองหลายวิธีเพื่อเพิ่มความแม่นยำของสูตรคำนวณ ทำให้ใช้เวลามากในการยกระดับความสมบูรณ์ของแอป
  • แน่นอนว่าผมพึ่งพา AI มากจนมีหลายครั้งที่วนไปวนมา แต่ก็ไม่สามารถไม่ใช้มันได้
  • งานผูกระบบสมัครสมาชิกแบบรายเดือนเข้ากับทั้งสองสโตร์ยังคงเป็นเรื่องยากเสมอ

4 ความคิดเห็น

 
kipsong133 2025-04-10

จริง ๆ แล้วเรื่องปัญหา dependency หรืออะไรทำนองนี้ ต่อให้ทำแบบเนทีฟก็ต้องกังวลเหมือนกันครับ.. ฮ่า

ไม่ทราบว่าพอจะแชร์ได้ไหมครับว่าเป็นแพ็กเกจไหน?

 
zxavi 2025-04-10

ใช่ครับ ก็เป็นอย่างนั้นแหละ ^^ หมายถึงแพ็กเกจไหนหรือครับ? กำลังจะบอกว่าคุณเจอปัญหา dependency ในแพ็กเกจไหนใช่ไหมครับ? มันเกิดขึ้นบ่อยมากด้วย แล้วก็เป็นปัญหาที่ผมเจอตอนที่ยังเข้าใจ Flutter ไม่มากนัก เลยจริง ๆ แล้วจำรายละเอียดไม่ค่อยได้ครับ ^^

 
seonymoon 2025-04-10

Strava กำลังจะยุติการให้บริการในเกาหลีเร็วๆ นี้..!

 
zxavi 2025-04-10

ใช่ ตอนนี้ถูกถอดออกจากสโตร์ไปแล้ว แต่ไม่ได้หมายความว่าจะใช้งานบริการไม่ได้ ผู้ใช้เดิมยังใช้งานได้ และยังใช้งานผ่านเว็บได้ด้วย