MyDiaryคอร์ส Flutter · 6 สัปดาห์ ทุกสัปดาห์
สัปดาห์ที่ 1 · งานมอบหมาย · การบ้าน
สารบัญหน้านี้

การบ้าน สัปดาห์ที่ 1: MyDiary ของฉัน

คะแนนเต็ม 15 คะแนน | กำหนดส่ง: ........................ ส่ง: ไฟล์ main.dart + ภาพหน้าจอ 3 ภาพ (รายการ / รายละเอียด / เกี่ยวกับ) — ตั้งชื่อ รหัสนักศึกษา_HW1


โจทย์

นำแอป MyDiary ที่ทำใน Lab มา ปรับให้เป็นของตัวเอง — เปลี่ยนธีมแอปจาก "ไดอารี" เป็นหัวข้อที่คุณสนใจ พร้อมทำให้ครบตามเกณฑ์

เลือกธีมของคุณเอง 1 อย่าง (หรือคิดใหม่): - ไดอารีบันทึกประจำวัน (ตามตัวอย่าง) - รีวิวร้านอาหารที่เคยไป - รายการหนัง/ซีรีส์ที่อยากดู - หนังสือที่อ่านแล้ว - สถานที่ที่อยากไปเที่ยว

หัวใจ: ใช้โครงเดิม (รายการ → รายละเอียด → เมนูล่าง) แค่เปลี่ยนเนื้อหาให้เป็นเรื่องที่คุณสนใจ


เกณฑ์ให้คะแนน (15 คะแนน)

ก. หน้ารายการ (5 คะแนน)

ข้อ รายละเอียด คะแนน
ก1 มี Model (class) ที่มี field ≥ 3 (เช่น ชื่อ, รายละเอียด, วันที่/คะแนน) 2
ก2 ListView.builder แสดงข้อมูล ≥ 5 รายการ 2
ก3 ใช้ Card + ListTile จัดแต่ละแถวสวยงาม (มีไอคอน) 1

ข. การนำทาง (5 คะแนน)

ข้อ รายละเอียด คะแนน
ข1 แตะรายการ → เปิดหน้ารายละเอียด (Navigator.push + MaterialPageRoute) 3
ข2 หน้ารายละเอียดแสดงข้อมูลครบทุก field (ส่งผ่าน constructor) 2

ค. เมนูและความสมบูรณ์ (5 คะแนน)

ข้อ รายละเอียด คะแนน
ค1 BottomNavigationBar สลับ ≥ 2 หน้าได้ 2
ค2 หน้าเกี่ยวกับใส่ชื่อ-รหัสตัวเอง + จัดหน้าสวย 1
ค3 เปลี่ยนธีมเป็นเรื่องของตัวเอง (ไม่ใช่ไดอารีตามตัวอย่างเป๊ะ) 1
ค4 แอป build ผ่าน ไม่มี error / จัด layout ไม่ล้นจอ 1

โบนัส (+2)

  • (+1) ทำ Challenge สีการ์ดสลับ (จาก Lab)
  • (+1) เพิ่มลูกเล่นเอง เช่น เปลี่ยนสีไอคอนตามหมวด, เพิ่ม field คะแนนดาว, จัดหน้ารายละเอียดสวยเป็นพิเศษ

สรุปคะแนน

หมวด คะแนน
หน้ารายการ 5
การนำทาง 5
เมนู + ความสมบูรณ์ 5
โบนัส +2
รวม 15 (+2)

คำถามท้ายงาน (ตอบในคอมเมนต์ท้ายไฟล์ หรือไฟล์แยก)

  1. ListView.builder กับการเขียน Column ใส่ Card ทีละอันเอง ต่างกันยังไง? อันไหนเหมาะกับข้อมูลเยอะ?
  2. ตอนแตะรายการเพื่อเปิดหน้ารายละเอียด ข้อมูลถูกส่งไปหน้าใหม่ได้อย่างไร? (ผ่านอะไร)
  3. ตอนนี้ถ้าอยากเพิ่มรายการใหม่ ต้องทำยังไง? สะดวกไหม? (คิดว่าสัปดาห์หน้าจะแก้ปัญหานี้อย่างไร)

คำแนะนำ

  • ก็อปโครงจาก Lab มาแก้ — ไม่ต้องเขียนใหม่ทั้งหมด เปลี่ยนแค่ Model และข้อมูล
  • รันบ่อยๆ (F5) ทุกครั้งที่แก้ จะได้เจอ error เร็ว แก้ง่าย
  • เปิดคลังโค้ด Widget พื้นฐาน ประกอบ ถ้าลืมว่า Widget ไหนเขียนยังไง
  • ติด error → อ่านข้อความสีแดงข้างล่างจอ มักบอกบรรทัดที่ผิด

เงื่อนไข: แอปต้อง build ผ่าน (รันขึ้น) — รันไม่ได้เลยได้ไม่เกินครึ่ง | ห้ามใช้รูป/ไอคอนละเมิดลิขสิทธิ์

หมายเหตุ: เก็บโปรเจกต์นี้ไว้ — สัปดาห์หน้าต่อยอดเป็นแอปที่เพิ่ม/ลบ/แก้ข้อมูลได้จริง