4 คะแนน โดย GN⁺ 2 시간 전 | 2 ความคิดเห็น | แชร์ทาง WhatsApp
  • ฟีเจอร์แผนที่บน watchOS ของ Pedometer++ ถูกขัดเกลามานานกว่า 6 ปี โดยตั้งเป้าจะมอบประสบการณ์แผนที่ที่ดีที่สุดเท่าที่เป็นไปได้บน Apple Watch และการเปิดตัว Pedometer++ 8 ถือเป็นหมุดหมายสำคัญ
  • ความพยายามในช่วงแรกใช้วิธีสร้างแผนที่บนเซิร์ฟเวอร์แล้วแสดงผลบน Apple Watch แต่ต้องส่งข้อมูลการออกกำลังกายไป-กลับทุกครั้ง จึงไม่เหมาะกับการใช้งานแบบ นำทาง และการใช้งานประจำวัน อีกทั้งยังไม่สามารถทำงานแบบ ออฟไลน์ ได้
  • เพื่อให้ได้การควบคุมที่จำเป็นบน watchOS จึงสร้าง เอนจินเรนเดอร์แผนที่แบบเนทีฟด้วย SwiftUI ขึ้นมาเอง และภายในปี 2021 ก็สามารถเรนเดอร์แผนที่แบบไทล์ได้อย่างเสถียรพร้อมซ้อนข้อมูลตำแหน่งทับลงไปได้
  • เพื่อให้เข้ากับ watchOS 26 และ Liquid Glass จึงร่วมกับ Andy Allen สร้างแผนที่พื้นฐานชุดใหม่ โดยลดความซับซ้อนด้านภาพ เพิ่มคอนทราสต์และความอิ่มสี เพื่อให้อ่านได้ง่ายแม้อยู่ใต้ส่วนประกอบลักษณะคล้ายกระจก
  • ร่วมงานกับ Rafa Conde เพื่อออกแบบเลย์เอาต์ใหม่ที่ วางตัวชี้วัดซ้อนที่มุมซ้ายบน และให้แผนที่อยู่ในหน้าบนสุดของสแตกแนวตั้ง ก่อนนำผลจากการทดสอบภาคสนามหลายร้อยไมล์มาปรับเป็นดีไซน์สุดท้ายของ Pedometer++ 8

เส้นทางของแผนที่ watchOS ใน Pedometer++

  • นิสัยสำคัญในการไม่หลงทางบนภูเขาหรือกลางแจ้งคือการ ตรวจดูตำแหน่งปัจจุบันบ่อยมาก ระหว่างเคลื่อนที่ และแผนที่บนข้อมือก็เป็นวิธีที่เหมาะที่สุดสำหรับสิ่งนี้
  • ตั้งแต่ช่วงแรกที่ Apple Watch เปิดตัว ก็ต้องการแผนที่ดี ๆ บนข้อมือมาโดยตลอด แต่ในความเป็นจริงโอกาสเพิ่งเริ่มมีเมื่อ watchOS 6 นำ SwiftUI เข้ามาและทำให้สร้างแอปแบบ “จริงจัง” ได้
  • Apple Watch รุ่นแรก ๆ มีหน้าจอเล็กและโปรเซสเซอร์ช้า ทำให้ยากจะไปถึงระดับที่ต้องการ และความพยายามทำแผนที่ครั้งแรกของ Pedometer++ ก็เป็นวิธีสร้างแผนที่บนเซิร์ฟเวอร์
  • วิธีสร้างบนเซิร์ฟเวอร์นี้ต้องส่งข้อมูลการออกกำลังกายที่เกี่ยวข้องไป-กลับทุกครั้งจึงจะรีเฟรชหน้าจอได้ แม้จะมีประโยชน์สำหรับพิสูจน์แนวคิด แต่ก็ไม่เหมาะกับการนำทางหรือการใช้งานทั่วไป และไม่สามารถทำงานแบบออฟไลน์ได้

เอนจินแผนที่แบบกำหนดเองบน SwiftUI

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

ข้อจำกัดของการออกแบบหน้าจอบน watchOS

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

สร้างแผนที่ใหม่ให้เข้ากับ Liquid Glass

  • ระหว่างที่ยังคิดเรื่องโครงสร้างแอปอย่างต่อเนื่อง Apple ก็ประกาศเปิดตัว watchOS 26 และ Liquid Glass
  • องค์ประกอบสำคัญของการออกแบบ Liquid Glass คือการซ้อนเลเยอร์ขององค์ประกอบหลายชั้น และประเภทของสีที่เข้ากันได้ดีก็มีความสำคัญเช่นกัน
  • ก่อนหน้านี้แอปใช้ Thunderforest Outdoors เป็นแผนที่พื้นฐานหลัก ซึ่งคอนเทนต์ที่มีมาให้นั้นดีอยู่แล้ว แต่เมื่อวางองค์ประกอบคล้ายกระจกทับลงไป กลับไม่เข้ากับ Liquid Glass มากนัก
  • จึงร่วมกับผู้ทำแผนที่ Andy Allen สร้าง แผนที่พื้นฐานชุดใหม่ทั้งหมด ให้ดูชัดเจนบน Liquid Glass
  • ในแผนที่ใหม่นี้ได้ลดความซับซ้อนด้านภาพ เพิ่มคอนทราสต์ขององค์ประกอบ และเพิ่มความอิ่มสีขององค์ประกอบบนแผนที่เพื่อไม่ให้ดูขุ่นมัวเมื่ออยู่ใต้ชั้นกระจก
  • งานนี้ยังทำให้สามารถสร้าง เวอร์ชันดาร์กโหมด ของไทล์แผนที่ได้ด้วย
  • ดาร์กโหมดมีประโยชน์บน iOS เช่นกัน แต่ให้ผลเด่นชัดเป็นพิเศษบน watchOS และมีการปรับแต่งโดยตั้งเป้าให้เป็นแผนที่ที่อ่านได้ง่ายมากแม้มองจากระยะช่วงแขน
  • ผลลัพธ์คือได้แผนที่ที่เหมาะกับ watchOS แต่การออกแบบแอปที่สมน้ำสมเนื้อกับมันยังไม่ลงตัวนัก

เลย์เอาต์ใหม่กับ Rafa Conde

  • เพื่อหลุดจากภาวะชะงักงันด้านการออกแบบ จึงร่วมงานกับดีไซเนอร์ Rafa Conde
  • จากเลย์เอาต์ทางเลือกหลายแบบ แนวทางสุดท้ายคือการ วางตัวชี้วัดซ้อนที่มุมซ้ายบน และให้แผนที่อยู่ในหน้าบนสุดของสแตกแนวตั้ง
  • ดีไซน์นี้จัดการปัญหาของแผนที่แบบโต้ตอบได้ด้วยการให้ผู้ใช้แตะแผนที่ก่อนจึงจะเข้าสู่ โหมดสำรวจ
  • หลังจากกำหนดคอนเซปต์โดยรวมได้แล้ว ก็เข้าสู่ขั้นตอนสร้างแอปจริงและเกลารายละเอียดต่าง ๆ
  • คอนเซปต์ของ Rafa ถูกทำเป็นต้นแบบที่ใช้งานได้รวดเร็ว และนำไปทดสอบภาคสนามด้วยการเดินหลายร้อยไมล์
  • หลังจากนั้นยังปรับแต่งฟอนต์และรายละเอียดการออกแบบที่ละเอียดอ่อนยิ่งขึ้น จนไปถึงดีไซน์สุดท้ายที่รวมอยู่ใน Pedometer++ 8
  • หน้าจอสุดท้ายจึงออกมาอ่านง่าย ใช้งานได้จริง เข้ากับแพลตฟอร์ม watchOS อย่างเป็นธรรมชาติ และยังคงมีดีไซน์ที่สดใหม่และเป็นเอกลักษณ์

เหตุผลที่ไม่ใช้ MapKit

  • งานพัฒนาแผนที่แบบกำหนดเองเริ่มต้นขึ้นก่อนที่ Apple MapKit สำหรับ watchOS จะปรากฏ และเหตุผลที่ทำเองแทนการใช้ MapKit ก็เพราะมันขาดความสามารถในการปรับแต่งและยูทิลิตีที่ Pedometer++ ต้องการ
  • MapKit เหมาะกับการใช้งานพื้นฐาน แต่ไม่สามารถให้ระดับการควบคุมที่ Pedometer++ ต้องการนำเสนอได้
  • MapKit บน watchOS จะแสดงผลเป็น ดาร์กโหมด เสมอ ซึ่งอาจดีในฐานะค่าเริ่มต้น แต่ก็สร้างข้อจำกัดด้านการเข้าถึงและทางเลือกของผู้ใช้ จึงควรเปิดให้ผู้ใช้เลือกได้
  • แม้ MapKit บน watchOS จะทำอะไรได้มากขึ้นเรื่อย ๆ ตามกาลเวลา แต่ในด้านแอนิเมชันและโอเวอร์เลย์ก็ยังมีข้อจำกัดอยู่
  • การแสดงเส้นชั้นความสูงและเส้นทางเดินบน MapKit กำลังดีขึ้น แต่ก็ยังมีหลายสถานที่ที่ต้องการรายละเอียดมากกว่า แม้ในพื้นที่ที่แผนที่ของ MapKit ดูแทบว่างเปล่า
  • มีการยกตัวอย่างเปรียบเทียบความต่างระหว่างแผนที่แบบกำหนดเองกับ MapKit ที่ทางเข้าของเส้นทางเดินเขาโปรดในสกอตแลนด์

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

 
xguru 1 시간 전

ไม่ได้เดินป่า แต่ทุ่มเทกับแอปนี้หนักมากจริง ๆ
ถึงขั้นจ้างคนทำแผนที่เลยนี่นา..

 
GN⁺ 2 시간 전
ความคิดเห็นจาก Hacker News
  • การที่ Apple Watch ไม่มีแผนที่เดินเขา·ภูมิประเทศที่ Apple ทำเอง ดูเป็นความพลาดครั้งใหญ่ แม้แต่ Watch Ultra รุ่น “สำหรับนักผจญภัย” ที่แพงที่สุดก็ยังไม่มี และฟีเจอร์อย่างการนำเข้า GPX ก็แทบเป็นได้แค่ความฝัน
    สุดท้ายถึงจะเป็นอุปกรณ์สายไลฟ์สไตล์ แต่ก็ยังน่าเสียดายอยู่ดี

    • ถ้าจำไม่ผิด แอปเครื่องคิดเลขสำหรับ iPad ก็ใช้เวลาทำนานเกิน 10 ปีไม่ใช่หรือ
    • พูดตรง ๆ คือยิ่งมี แอปที่ Apple ทำเอง น้อยลงเท่าไร ก็ยิ่งดีกับ ecosystem และคุณภาพแอปโดยรวมมากขึ้นเท่านั้น แอปที่ Apple “sherlock” ช่วงหลัง ๆ ก็ไม่ได้มีคุณภาพดีอะไรเป็นพิเศษ แต่พอถูกทำให้เป็นแอปที่มีมาให้เลย ฝั่ง third-party ก็ยิ่งแข่งได้ยากขึ้นมาก
  • พัฒนาการนั้นยอดเยี่ยมมาก และยังทำให้เห็นด้วยว่าถ้าออกนอก ธรรมเนียมการออกแบบ อย่าง UI แบบจัดกึ่งกลาง·สมมาตร จะสร้างอะไรได้บ้าง จนทำให้อยากได้ Apple Watch เลย
    ในภาพหน้าจอของบทความยังเห็น Hidden Valley ที่ Glen Coe ในสกอตแลนด์ ซึ่งเป็นหนึ่งในเส้นทางเดินสั้น ๆ ที่ชอบ
    แต่ความทรงจำเกี่ยวกับบ้านใต้หุบเขานั้นไม่น่ารื่นรมย์นัก เมื่อก่อนตอนขับรถผ่าน ฉันเคยมองบ้านที่ปิดเงียบอยู่ตลอดตรงมุมโดดเดี่ยวท่ามกลางภูเขาอย่างเคลิบเคลิ้ม และคิดว่าถ้าได้อยู่ในที่แบบนั้นจะพิเศษแค่ไหน ลานจอดรถของเส้นทางเดินเขาอยู่เลยขึ้นไปตามถนนแค่ไม่กี่ร้อยเมตร
    หลายปีต่อมาฉันจำบ้านหลังนั้นได้จากสารคดีของ Louis Theroux ซึ่งมีตอนที่ไปเยือนที่นั่นพร้อมกับเจ้าของบ้านอย่างบุคคลดังทางทีวี Jimmy Saville หลังจากนั้นเมื่อกลับออสเตรเลีย ก็มีการเปิดเผยว่า Saville หลังเสียชีวิตแล้วคือหนึ่งในผู้ก่ออาชญากรรมต่อเด็กและทางเพศที่อื้อฉาวที่สุดคนหนึ่งของอังกฤษ มันน่าขยะแขยงมาก และบนแผนที่ในภาพหน้าจอด้านบนก็เห็นชื่อกับเค้าโครงของกระท่อมนั้นจริง ๆ

  • ลองค้นดูด้วยความสงสัยแล้ว ดูเหมือนว่าเขาจ้างนักทำแผนที่เพื่อใส่รายละเอียดที่ Apple Maps ไม่มีอย่างเส้นทางเดินเขา แล้วทำภาพแผนที่คัสตอมขนาดใหญ่ที่ดูดี
    เพราะงั้นจึงเป็นวิธีแสดง image tile เป็นหลัก ต่างจาก Apple Maps ที่เรนเดอร์แบบไดนามิก ทำให้สร้างแผนที่ที่สวยกว่าและละเอียดกว่าได้ แต่ก็มีผลกับเรื่องอย่างการดาวน์โหลดแยกตามระดับการซูม การหมุน และความเป็นไปได้ในการอัปเดต

    • การจ้างนักทำแผนที่มาออกแบบแยกต่างหาก กับเทคโนโลยีที่ใช้เรนเดอร์·ส่งมอบงานออกแบบนั้น เป็นปัญหาคนละเรื่องกันโดยสิ้นเชิง
      ผู้ให้บริการแผนที่เดิมมีทั้งบริการ vector tile และ raster tile: https://www.thunderforest.com/maps/outdoors/
      วิธีที่พบได้บ่อยคือใช้บริการ vector tile กับ style definition โดยตรง หรือถ้าจำเป็นก็ค่อยสร้าง raster tile
    • ฉันคิดว่า Apple อาจไม่ได้เปิด Metal graphics API บน Apple Watch ให้ third-party developer ใช้ เลยอาจทำให้การเรนเดอร์แบบไดนามิกลักษณะนี้เป็นไปไม่ได้ตั้งแต่ต้น
  • ในฐานะผู้ใช้ Pedometer++ ฉันทึ่งกับความหมกมุ่นในรายละเอียดที่ David รักษาไว้ตลอดหลายปี พัฒนาการของแอปนั้นยอดเยี่ยมจริง ๆ

    • เป็นนักพัฒนาที่ทุ่มเทมาก ตัวอย่างที่สมบูรณ์แบบก็คือประโยคที่ว่า “แล้วก็เลย... ไปจ้างทำแผนที่คัสตอม” หรือก็คือจ้างนักทำแผนที่นั่นเอง
      ก่อนหน้านี้เขาทุ่มกับ Watchsmith มากจนแทบกลายเป็นผู้เชี่ยวชาญระดับโลกด้านวิดเจ็ต และเส้นทางที่ต่อมาประสบความสำเร็จอย่างมากกับ Widgetsmith ก็น่าประทับใจมาก เป็นกรณีที่คนที่สมควรสำเร็จได้สำเร็จจริง ๆ
  • สำหรับนาฬิกา static tile เป็นตัวเลือกที่ถูกต้อง ฉันเคยทำ dynamic rendering บนอุปกรณ์ที่มีข้อจำกัดสูงมากมาก่อน แล้วการเลื่อน·ย่อ/ขยายก็ถูกช่วงหยุดของ garbage collection กลืนกินไปแทบทุกเฟรม

    • watchOS ไม่มี garbage collection และใช้ ARC
  • Apple Maps บน WatchOS ค่อนข้างดี แต่ปกติเวลาฉันขึ้นจักรยาน ตั้งเส้นทางไว้ แล้วผ่านไปประมาณ 3 นาที หน้าจอ “กำลังออกกำลังกายอยู่หรือเปล่า?” ก็จะเด้งมาทับ จนกว่าจะกดหยุดหรือปิด ทำให้ดูแผนที่ไม่ได้เลย
    ฉันคิดว่าหน้าจอนั้นไม่ควรกินเต็มจอ แต่ควรเปลี่ยนเป็นการแจ้งเตือน หรือไม่ก็เมื่อเวลาผ่านไปก็ควรเริ่มบันทึกแบบเงียบ ๆ ไปเลย
    ถ้ามีคนที่ Apple พัฒนาสิ่งนี้อยู่ ก็น่าแปลกที่พวกเขาคงต้องเคยเจอปัญหานี้แน่
    ถ้าแผนที่ของแอปนี้สามารถยึดหน้าจอไว้ได้ สำหรับฉันมันน่าจะเป็น killer feature เลย แต่พอลองไล่ดูหน้า App Store ก็ยังไม่ชัดเจนว่าฟีเจอร์ไหนอยู่หลัง subscription และฟีเจอร์ไหนไม่อยู่ ฉันไม่ชอบแอปที่ไม่บอกจนกว่าจะตั้งค่าทุกอย่างเสร็จ สุดท้ายก็คงพยายามจำให้ได้ว่าให้เริ่มการออกกำลังกายแบบแมนนวลแทน

    • ฟีเจอร์ “กำลังออกกำลังกายอยู่หรือเปล่า?” ปิดได้ ไปปิด Check In Reminders ในการตั้งค่าเกี่ยวกับการออกกำลังกาย