การสร้างคู่มือแอปแบบโต้ตอบได้

ทีมสนับสนุนมักประสบปัญหาเมื่อต้องใช้งานแอปที่พวกเขาไม่เคยติดตั้งมาก่อน

การใช้ไฟล์ PDF พร้อมภาพสกรีนช็อตเป็นวิธีแก้ปัญหามาตรฐาน แต่คนส่วนใหญ่ไม่ค่อยอ่าน PDF ผมจึงอยากสร้างสิ่งที่ดียิ่งกว่า ผมต้องการคู่มือที่ให้ความรู้สึกเหมือนใช้งานแอปจริง คุณเห็นหน้าจอหลัก คลิกปุ่ม แล้วหน้าถัดไปก็ปรากฏขึ้นมา

ผมได้สร้างคู่มือแบบโต้ตอบได้โดยใช้ภาพสกรีนช็อตจริงและจุดคลิก (hotspots) ที่สามารถกดได้

วิธีการทำงาน

ผมใช้ Firebase Storage สำหรับจัดเก็บรูปภาพ และใช้ vanilla JavaScript สำหรับส่วนตรรกะ (logic) โดยไม่ใช้ไลบรารีภายนอกเลย

  • แต่ละหน้าจอคือรูปภาพเต็มหนึ่งรูป
  • ผมวางรูปสี่เหลี่ยมที่มองไม่เห็น เรียกว่า hotspots ไว้บนรูปภาพ
  • hotspots เหล่านี้ใช้หน่วยเป็นเปอร์เซ็นต์แทนพิกเซล เพื่อให้ตำแหน่งยังคงตรงกันเมื่อขนาดหน้าต่างเปลี่ยนไป
  • ใช้ state machine แบบง่ายในการจัดการการนำทาง (navigation) โดยแต่ละหน้าจอจะมี ID, รูปภาพ และรายการของ hotspots

ตัวแก้ไข (The Editor)

การวัดพิกัดด้วยมือเป็นเรื่องที่ล่าช้า ผมจึงสร้างตัวแก้ไข HTML แบบ standalone ขึ้นมาเพื่อช่วยให้กระบวนการนี้เร็วขึ้น

  • อัปโหลดภาพสกรีนช็อต
  • ลากเมาส์เพื่อวาด hotspot
  • เชื่อมโยง hotspot เข้ากับหน้าจอเป้าหมาย
  • ส่งออกโค้ดได้โดยตรง

การตัดสินใจด้านการออกแบบ

ไม่ใช่ทุกหน้าจอที่จะมีการนำทางแบบเต็มรูปแบบ เพื่อป้องกันความสับสน ผมจึงเพิ่มแสงสีฟ้าแบบกะพริบ (pulsing blue glow) ลงในพื้นที่ที่คลิกได้ เพื่อแสดงให้ผู้ใช้เห็นชัดเจนว่าพวกเขาสามารถแตะตรงไหนได้บ้าง

บทเรียนทางเทคนิคที่สำคัญ

  • Firebase Storage: อย่าสร้าง URL ด้วยตัวเอง ให้ใช้เมธอด getDownloadURL ของ SDK ซึ่งจะรวม auth token ที่จำเป็นสำหรับการข้ามกฎความปลอดภัย (security rules) ไว้ด้วย
  • CSS Flexbox: หากคุณใช้ flex: 1 ในเลย์เอาต์แบบคอลัมน์ (column layout) ตัว parent จะต้องมีการกำหนดความสูงที่ชัดเจน และควรตั้งค่า min-height: 0 ที่ตัว child เพื่อป้องกันการล้น (overflow)
  • ประสิทธิภาพ (Performance): การเรียกใช้ Firebase ทุกครั้งที่มีการคลิกจะทำให้เกิดอาการหน่วง ผมจึงใช้วิธีทำ in-memory cache และโหลดรูปภาพทั้งหมดล่วงหน้า (preload) เมื่อเปิด modal ขึ้นมา ซึ่งช่วยให้การนำทางทำได้อย่างรวดเร็วทันที
  • การปรับขนาด (Scaling): ใช้คุณสมบัติ CSS transform: scale() เพื่อให้แน่ใจว่ารูปภาพและ hotspots จะยังคงจัดวางตำแหน่งได้ตรงกันอย่างสมบูรณ์ไม่ว่าขนาดหน้าจอจะเป็นอย่างไร

ผลลัพธ์ที่ได้

  • หน้าจอ 20 หน้าที่นำทางได้เหมือนโทรศัพท์จริง
  • 52 hotspots พร้อมสัญญาณภาพ (visual cues)
  • โหลดได้อย่างรวดเร็วผ่านการ preload และการทำ cache
  • การออกแบบที่รองรับการแสดงผลทุกขนาด (Responsive design) ให้เข้ากับขนาดของ modal ใดๆ ก็ได้

Source: https://dev.to/androve2k/building-an-interactive-app-guide-with-clickable-hotspots-on-real-screenshots-o9e