รูปแบบงานที่ดําเนินอยู่

คู่มือนี้จะอธิบายคอมโพเนนต์ต่างๆ ที่มีงานที่กําลังดําเนินอยู่ในรูปแบบของนาฬิกาจับเวลา งานที่ดําเนินอยู่จะแสดงการ์ดเรียลไทม์ในไทม์ไลน์ ตราบใดที่ผู้ใช้มีส่วนร่วมกับงาน และช่วยให้ผู้ใช้เริ่มเข้าและออกจากการ์ดสดได้เมื่อต้องการข้อมูล

ในขณะเดียวกัน คุณจะได้เรียนรู้เคล็ดลับด้านการออกแบบ การพัฒนา และการเผยแพร่ ที่สําคัญต่อการสร้าง Glassware ของคุณเอง

ข้อควรทราบก่อนที่จะเริ่มต้น

แหล่งที่มาทั้งหมดของนาฬิกาจับเวลามีให้ใช้งานใน GitHub นําเข้าเนื้อหาไปยัง Android Studio ก่อนเริ่มดําเนินการ เนื่องจากคู่มือนี้เกี่ยวข้องกับ Android เป็นหลัก

  1. จากหน้าจอการตั้งค่าด่วน ให้คลิกชําระเงินจากเวอร์ชันควบคุม > Git
  2. คัดลอก URL การโคลนจากนาฬิกาจับเวลา
  3. วาง URL การโคลนใน URL ของที่เก็บ CS แล้วคลิกโคลน
  4. คลิกใช่ในหน้าจอต่อไปนี้
  5. คลิกตกลงในหน้าจอต่อไปนี้
  6. สร้างโปรเจ็กต์และเรียกใช้ Glass ที่เชื่อมต่อโดยคลิกปุ่มเล่น อย่าลืมตรวจสอบ README ของตัวอย่างเพื่อดูรายละเอียดการเรียกใช้

สิ่งที่คุณจะได้เรียนรู้

คุณจะได้เรียนรู้วิธีใช้คอมโพเนนต์จาก Android SDK เพื่อสร้างงานต่อเนื่องจํานวนมากของนาฬิกาจับเวลา จากนั้นใช้ GDK เพื่อดึงดูดประสบการณ์การใช้งาน Glass นี่คือรายการหัวข้อสําหรับเรียนรู้

  • การสร้างมุมมองที่กําหนดเองเพื่อวาดลงในการ์ดสด
  • การสร้างบริการเพื่อจัดการบัตรที่ใช้งานอยู่
  • มีเมนูที่ช่วยให้ผู้ใช้นําการ์ดเรียลไทม์ออกจากไทม์ไลน์
  • การประกาศทริกเกอร์เสียงเพื่อเริ่มนาฬิกาจับเวลาจากเมนูเสียงหลัก

การออกแบบ

ก่อนที่จะเริ่มพัฒนา โปรดสละเวลา ออกแบบ Glassware ของคุณ การใช้วิธีนี้จะช่วยให้คุณเห็นภาพว่า UI ใดทํางานได้ดีที่สุดใน Glass จะใช้คําสั่งเสียงใดและจะทําอย่างไร

แน่นอนว่าการออกแบบ Glassware เป็นกระบวนการที่ต้องทําซ้ําๆ และสิ่งต่างๆ ที่คุณออกแบบตอนนี้จะเปลี่ยนไป แต่การทําหน้าที่ที่ดีในตอนเริ่มต้นนั้นสําคัญต่อการสร้างประสบการณ์ที่ดี

โฟลว์ UI

การออกแบบ UI เป็นกระบวนการง่ายๆ และช่วยให้คุณเห็นภาพ Glassware ก่อนที่จะเขียนบรรทัดโค้ด เราดําเนินการตลอดเวลาสําหรับ Glassware ที่เราสร้างขึ้นมา

มาดูองค์ประกอบสําคัญของ UI ของนาฬิกาจับเวลากัน เพื่อให้คุณเห็นภาพวิธีการทํางานของ UI และประโยชน์ที่กระบวนการนี้ได้จากการสร้าง Glassware ของคุณเอง

UI หลัก

นาฬิกาจับเวลามีขั้นตอนหลักเพียงขั้นตอนเดียว เนื่องจากได้รับประสบการณ์การใช้งานที่ค่อนข้างง่าย

เมื่อผู้ใช้เรียกใช้ Glassware ระบบจะแสดงโฆษณาคั่นระหว่างหน้าแบบนับถอยหลัง 3 วินาทีก่อนนาฬิกาจับเวลาจริงจะเริ่มขึ้น จากนั้นนาฬิกาจับเวลาจะนับจนกว่าผู้ใช้จะนําออกจากไทม์ไลน์ด้วยรายการในเมนูหยุด

คำสั่งเสียง

คุณควรคิดคําสั่งเสียงออกตั้งแต่เนิ่นๆ ในกระบวนการออกแบบ คําสั่งเสียงช่วยให้ผู้ใช้เริ่มใช้ Glassware จากเมนู Glass (การ์ดนาฬิกา) ได้หากจําเป็น และเป็นส่วนสําคัญในการออกแบบ Glassware

ตัวอย่างเช่น คําสั่ง Post a update ทํางานได้ดีในรูปแบบที่เริ่มทํางานและลืมปัญหา ซึ่งผู้ใช้จะพูดข้อความและ Glassware ประมวลผลได้โดยไม่ต้องดําเนินการใดๆ เพิ่มเติม ซึ่งจะช่วยให้ผู้ใช้กลับไปยัง สิ่งที่กําลังทําได้อย่างรวดเร็ว

ในทางกลับกัน หากเป็นเนื้อหาอย่างเช่นเล่นเกม โดยทั่วไปคุณจะต้องนําผู้ใช้ไปยังหน้าจอแนะนําเพื่อให้ผู้ใช้มองเห็นทิศทางก่อน เนื่องจากคําสั่งเสียงนี้น่าจะเปิดตัวประสบการณ์การใช้งานแบบเกมหนึ่ง คุณคาดหวังได้ว่าผู้ใช้จะเห็นหน้าจอและเมนูเพิ่มเติมเพื่อเริ่มเกม การพาผู้ใช้เข้าสู่ประสบการณ์การเล่นเกมทันทีหลังใช้คําสั่งเสียงมักเป็นประสบการณ์ที่ไม่ดีสําหรับเกม

นาฬิกาจับเวลาใช้คําสั่งเสียงเริ่มต้นนาฬิกาจับเวลา หลังจากที่ผู้ใช้เรียกใช้คําสั่งเสียง นาฬิกาจับเวลาจะเริ่มขึ้นหลังจากหน้าจอนับถอยหลังข้ามโฆษณาสั้นๆ ทันที ซึ่งดีกว่าการระบุรายการเมนูสําหรับเริ่มต้น สําหรับงานที่กําลังดําเนินการอยู่ โดยทั่วไปคุณจะต้องมุ่งเน้นการทําให้ผู้ใช้ได้รับประสบการณ์ที่ดีที่สุดโดยเร็วที่สุดเท่าที่จะทําได้

เลย์เอาต์การ์ด

ไม่ว่าคุณจะกําลังสร้างฟีเจอร์ใหม่หรือการ์ดแบบสด คุณควรใช้ CardBuilder หรือเลย์เอาต์ XML เมื่อเป็นไปได้

บ่อยครั้งที่คุณยังคงต้องสร้างเลย์เอาต์ของคุณเองโดยเฉพาะ โปรดทําตามหลักเกณฑ์สําหรับ UI เพื่อให้มี Glassware ที่ดูดีที่สุด

นาฬิกาจับเวลาเป็นไปตามหลักเกณฑ์ทั่วไปเกี่ยวกับเลย์เอาต์ แต่ใช้เลย์เอาต์ UI ที่กําหนดเองโดยใช้คอมโพเนนต์ Android มาตรฐาน เช่น มุมมองและเลย์เอาต์

พัฒนา

หากต้องการพัฒนาการ์ดสด คุณต้องใช้เครื่องมือเดียวกับที่ใช้ในการพัฒนาแอป Android ในการสร้าง Glassware จํานวนมาก จากนั้นใช้ API ในส่วนเสริม GDK เพื่อเข้าถึงฟังก์ชันเฉพาะ Glass เช่น การ์ดสดและคําสั่งเสียง

คุณมักจะใช้คอมโพเนนต์ทั่วไปของ Android เพื่อสร้าง Glassware แต่โปรดทราบว่าบางแนวคิดอาจแตกต่างกันไป เช่น คุณแสดงผลและจัดการการ์ดสดด้วยบริการ Android ซึ่งไม่ใช่วิธีที่ใช้ทั่วไปในแอปในแอป Android แบบดั้งเดิม เช่น คุณจะได้เรียนรู้วิธีสร้างคอมโพเนนต์เหล่านี้ในภายหลังในคู่มือนี้

ส่วนที่เหลือของส่วน "พัฒนา" จะอธิบายโครงสร้างของนาฬิกาจับเวลาและองค์ประกอบหลักของโปรเจ็กต์ที่นําเข้าก่อนหน้านี้ การมี Android Studio เปิดอยู่ตอนนี้จะช่วยให้คุณติดตามไปพร้อมๆ กันได้ ซอร์สโค้ดนี้มีการแสดงความคิดเห็นไว้ ดังนั้นส่วนนี้จึงมีจุดประสงค์หลักสําหรับแต่ละไฟล์และเคล็ดลับที่เป็นประโยชน์ซึ่งคุณนําไปใช้กับ Glassware ของตนเองได้

คำสั่งเสียง

คุณสามารถสร้างคําสั่งเสียงด้วยไฟล์ทรัพยากร XML ที่ระบุคําสั่งที่คุณใช้ จากนั้นระบุทรัพยากร XML ในไฟล์ AndroidManifest.xml

ไฟล์ต่อไปนี้เชื่อมโยงกับคําสั่งเสียงของนาฬิกาจับเวลา

  • res/xml/voice_trigger_start.xml - ประกาศคําสั่งเสียงที่จะใช้
  • AndroidManifest.xml - ประกาศบริการการ์ดแบบสดเพื่อเริ่มใช้งานเมื่อพูดคําสั่งเสียง

มุมมองนับถอยหลัง

นาฬิกาจับเวลาแสดงการนับถอยหลังก่อนการบันทึกเวลาจริง เพื่อแจ้งให้ผู้ใช้ทราบว่าเวลากําลังจะผ่านพ้นไป

ไฟล์ต่อไปนี้เชื่อมโยงกับมุมมองการนับถอยหลัง

  • res/layout/card_countdown.xml - กําหนดเลย์เอาต์สําหรับผู้ดูการนับถอยหลัง
  • src/com/google/android/glass/sample/stopwatch/CountDownView.java- กําหนดมุมมองสําหรับการนับถอยหลัง

มุมมองโครโนมิเตอร์

นี่คือมุมมองหลักของนาฬิกาจับเวลา ซึ่งแสดงเวลาที่ผ่านไปนับตั้งแต่การนับถอยหลังในการนับถอยหลังเสร็จสมบูรณ์ ไฟล์ต่อไปนี้มีการเชื่อมโยงกับมุมมองของ Chroometer

  • res/layout/card_chronometer.xml - กําหนดเลย์เอาต์สําหรับมุมมองนาฬิกาจับเวลา
  • src/com/google/android/glass/sample/stopwatch/ChronometerDrawer.java - กําหนดวิธีแสดงผล บริการการ์ดแบบสดจะเรียกชั้นเรียนนี้เพื่อแสดงบริการบัตรสด
  • src/com/google/android/glass/sample/stopwatch/ChronometerView.java - มุมมองนาฬิกาจับเวลาที่ใช้ เลย์เอาต์ก่อนหน้าเป็น UI

บริการนาฬิกาจับเวลา

ซึ่งเป็นบริการที่จัดการวงจรและการแสดงผลของการ์ดการถ่ายทอดสด ไฟล์ต่อไปนี้เชื่อมโยงกับบริการนี้

  • src/com/google/android/glass/sample/stopwatch/StopwatchService.java - จัดการการ์ดสดของนาฬิกาจับเวลาและจัดการวงจรบริการ

การ์ดแบบสดไม่มีบริบท UI ของตัวเองเพื่อแสดงเมนูเนื่องจากการแสดงผล UI ในบริบทของไทม์ไลน์

เพื่อหลีกเลี่ยงข้อจํากัดนี้ คุณสร้างกิจกรรมแบบโปร่งแสงที่ปรากฏที่ด้านบนของไทม์ไลน์ แล้วแสดงเมนูของกิจกรรมนั้นทันทีหลังจากที่ผู้ใช้แตะการ์ดแบบสด

  • src/com/google/android/glass/sample/stopwatch/MenuActivity.java - ประกาศกิจกรรมเมนูแบบโปร่งแสงที่แสดงเมนูทันทีเมื่อกิจกรรมปรากฏ
  • res/values/styles.xml - กําหนดรูปแบบโปร่งแสงที่ใช้กับเมนู
  • res/menu/stopwatch.xml - ทรัพยากรของเมนูที่มีรายการในเมนูหยุดที่จําเป็น

ไฟล์ Manifest ของ Android

ไฟล์ AndroidManifest.xml อธิบายส่วนประกอบหลักของ Glassware ที่จะทําให้ระบบรู้ว่าจะเรียกใช้ได้อย่างไร ไฟล์ Manifest สําหรับ Charades ประกาศสิ่งเหล่านี้

  • ไอคอนและชื่อของ Glassware Glass แสดงข้อมูลนี้บนเมนูหน้าจอสัมผัสหลัก หากมี Glassware มากกว่า 1 รายการที่ตอบสนองต่อคําสั่งเสียงเดียวกัน
  • บริการและกิจกรรมทั้งหมดที่เกี่ยวข้องกับนาฬิกาจับเวลา ระบบต้องการคําแนะนํานี้เพื่อให้ทราบวิธีเริ่มต้นคอมโพเนนต์ของ Glassware
  • คําสั่งเสียงและตัวกรอง Intent ที่เริ่มบริการการ์ดสดเมื่อพูดคําสั่งเสียง
  • รหัสเวอร์ชันสําหรับ Glassware ต้องอัปเดตโค้ดนี้ (โดยทั่วไปจะเป็นชื่อเวอร์ชันด้วย) ทุกครั้งที่อัปโหลด APK เวอร์ชันใหม่ไปยัง MyGlass