บทที่ 17 – สร้างแอพ Pomodoro

คุณสมบัติของแอพ

ในบทนี้ จะสอนสร้างแอพ Pomodoro ซึ่งเป็นเครื่องตั้งเวลาเพื่อช่วยให้โฟกัสกับงานตามหลักการ Pomodoro โดยแอพนี้จะใช้คอมโพเนนต์ Clock ในการจับเวลาการทำงาน และการพัก
พร้อมกับสาธิตการสร้างแอพที่มีหลายสกรีน รวมทั้งสอนเทคนิคในการใช้ VerticalArrangement มาสร้างให้แอพเหมือนมีหลายสกรีน ทั้งๆ ที่อยู่ใน Screen1
นอกจากนี้ ยังสอนใช้ TinyDB ซึ่งเป็นคอมโพเนนต์ในการจัดเก็บข้อมูลไว้ในแอพ มาใช้เก็บค่าเซตติ้งต่างๆ ของแอพเอาไว้ด้วย

คอมโพเนนต์ที่กล่าวถึง

  • Clock ในบทนี้ ใช้เป็น Timer เพื่อจับเวลาการทำงาน 25 นาที และการพัก 5 นาที เมื่อหมดเวลาที่ตั้งไว้ ก็จะเกิดอีเวนต์ Timer ขึ้น
  • VerticalArrangement ในบทนี้ จะสอนเทคนิคที่ใช้ VA ทำหน้าที่เหมือนเป็นสกรีนหนึ่ง แล้วใช้บล็อก set Visible เพื่อแสดงหรือซ่อนแต่ละ VA เหมือนเป็นการเปิด-ปิดสกรีนนั่นเอง
  • TinyDB เป็นพื้นที่เก็บข้อมูลต่างๆ ซึ่งจะอยู่ในแอพ ไม่สามารถเปิดดูข้อมูลจากแอพอื่น ในบทนี้ จะใช้ TinyDB ในการเก็บค่าเวลาต่างๆ จากสกรีน Settings
  • Sound ในบทนี้ ใช้สั่นเครื่องเมื่อหมดเวลาแต่ละช่วงทำงาน และช่วงพัก

บล็อกที่สำคัญ

  • set TimerEnabled ใช้สั่งให้ Timer เริ่มหรือหยุด จับเวลา
  • Sound Vibrate ใช้สั่งให้สั่นอุปกรณ์
  • BackPressed เป็นอีเวนต์ที่เกิดขึ้นเมื่อผู้ใช้กดปุ่ม back บนเครื่อง
  • open another screen ใช้เปิดสกรีนอื่น ตามชื่อสกรีนที่กำหนด
  • close screen ใช้ปิดสกรีน แล้วกลับไปทำงานต่อยังสกรีนก่อนหน้าที่สั่งให้เปิดสกรีนนี้ขึ้นมา
  • TinyDB GetValue ใช้อ่านข้อมูลที่เก็บไว้ใน TinyDB โดยระบุชื่อ tag ของข้อมูลที่ต้องการ
  • TinyDB StoreValue ใช้เก็บข้อมูลลงใน TinyDB โดยจะต้องระบุชื่อ tag และข้อมูลที่จะเก็บ
  • HideKeyboard เป็นคำสั่งให้ซ่อนคีย์บอร์ด

ความรู้อื่นๆ

  • ความรู้เกี่ยวกับหลักการ Pomodoro
  • เทคนิคการใช้ VerticalArrangement มาทำหน้าที่เหมือนเป็นสกรีน
  • การออกแบบหน้าตาของแอพ ให้เปลี่ยนแปลงได้เสมือนมีหลายๆ สกรีน
  • การสร้างแอพที่มีหลายสกรีน ซึ่งมีรายละเอียดที่ต้องรู้ไว้ ดังนี้
    • แอพจะเริ่มทำงานที่ Screen1 เสมอ
    • Screen1 มี properties ต่างๆ ที่เป็นคุณสมบัติของแอพ แต่สกรีนอื่นๆ จะไม่มี
    • สามารถเพิ่มสกรีนได้ แต่ไม่ควรเกิน 10 สกรีนต่อ project
    • สามารถลบสกรีนที่เพิ่มเข้าไปได้ แต่ไม่สามารถลบ Screen1 ได้
    • ไม่สามารถเปลี่ยนชื่อสกรีน หรือก็อปปี้สกรีนได้
    • การทำงานของแต่ละสกรีนแยกกันเด็ดขาด ไม่สามารถใช้ตัวแปร, คอมโพเนนต์ และ code ข้ามสกรีน
    • สั่งเปิดสกรีนด้วยบล็อก open another screen หรือ open another screen with start value
    • สั่งปิดสกรีนด้วยบล็อก close screen หรือ close screen with value
    • ในระหว่างทดสอบแอพที่มีหลายสกรีนด้วยแอพ MIT AI2 Companion หรือ Thunkable Live แอพอาจทำงานช้า เนื่องจากต้องเปลี่ยนสกรีนไปมา

Comments

Popular posts from this blog

บทที่ 4 - เรียนรู้เกี่ยวกับ User Interface

บทที่ 13 – รู้จักกับ Orientation sensor