418546 ภาคต้น 2555

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา

ขอต้อนรับเข้าสู่เว็บไซต์วิชา 01418546 การพัฒนาโปรแกรมประยุกต์สำหรับอุปกรณ์เคลื่อนที่ ภาคการศึกษาที่ 1 ปีการศึกษา 2555

ประกาศ

  • นิสิตรหัสต่อไปนี้ มีปัญหาเรื่องการตั้งค่า repository ให้แก้ไขให้เสร็จภายในวันที่ 8 กรกฎาคม 2555 ไม่เช่นนั้นจะถือไว้ขาดส่งงานในครั้งแรก
    • g5514401642 เอาสิ่งที่ไม่เกี่ยวข้องมาใส่ใน repository (กลับไปอ่านคำสั่งอีกครั้งว่าผมให้คุณทำอะไร)

ข้อควรทราบ

สิ่งที่จะสอน

  • การออกแบบและพัฒนาโปรแกรมประยุกต์"ที่ดี"สำหรับอุปกรณ์เคลื่อนที่
  • ในการสอนครั้งนี้จะใช้ระบบปฏิบัติการ Android และใช้การพัฒนาแบบ native (ไม่สอนการพัฒนาโดยใช้ HTML5)

สิ่งที่จะไม่สอน (ควรรู้ก่อนเรียน)

  • โปรแกรมภาษา Java
  • การออกแบบฐานข้อมูลและภาษา SQL
  • หลักการเขียนโปรแกรมแบบ OOP

การให้งานและส่งงาน

  • การให้งานและส่งงานจะใช้ Git (เหมือนกับ Mercurial ที่เคยใช้ในวิชา Computer Programming)
  • วิธีการส่งงานดูได้จาก ที่นี้ แต่ให้เปลี่ยนจาก works418496mobileapp เป็น works418546mobileapp แทน
  • วิชานี้ไม่มีการสอบข้อเขียนใช้การส่งการบ้านและโปรเจค ดังนั้นจึงมีการบ้านและโปรเจคที่ต้องส่งอย่างน้อย 2 สัปดาห์/ครั้ง
  • นิสิตต้องทำ final project หนึ่งชิ้นต่อกลุ่ม และ แต่ละงานต้องไม่ซ้ำกัน

การให้คะแนน

  • การบ้านและโครงงานย่อย 60 %
  • final project 40 %

โปรเจค

โปรเจคครั้งที่ 1

  • กำหนดส่งวันที่ 28 กรกฎาคม 2555 ก่อนเที่ยงคืน
  • ตัวอย่าง
  • ให้สร้างโปรแกรมที่ทำงานได้เหมือนกับโปรแกรมตัวอย่าง โดยที่โปรแกรมมีความสามารถในการทำงานดังนี้
    • วาดรูป polygon ได้อย่างน้อย 2 ถึง 12 เหลี่ยม
    • แสดงชื่อรูป polygon ที่วาด (ดูวิธีการตั้งชื่อได้จาก Wikipedia)
    • เปลี่ยนลักษณะของเส้นที่ใช้วาดได้ 2 แบบ คือ เส้นปะ และ เส้นทึบ
    • เปลี่ยนขนาดของเส้นที่ใช้วาดได้ ตั้งแต่ 1 ถึง 20 pixel
    • สามารถหมุนรูป polygon โดยใช้ gesture
    • สามารถย้ายรูป polygon โดยใช้ gesture
    • โปรแกรมต้องสามารถเก็บฐานะของการวาดได้ นั้นคือเมื่อผู้ใช้ปิดโปรแกรมไปแล้ว เปิดมาอีกครั้งต้องเห็นรูปแบบการวาดครั้งล่าสุดอยู่
  • การส่งงาน
    • ให้ตั้งชื่อโปรเจคว่า HelloPoly แล้วเก็บไว้ที่ไฟร์เดอร์ projects
    • ให้สร้างไฟล์ README (ไม่ต้องใส่ .txt) โดยใช้ encoding แบบ UTF-8 ใส่ไว้ในโปรเจคโดยในไฟล์นี้ ให้เขียนว่าได้ทำฟังก์ชั่นใดตามตัวอย่างที่ให้ไปและทำโดยใช้วิธีไหน
    • ตัวอย่างในการเขียน README
วาดรูป และ แสดงชื่อ polygon ได้ 15 เหลี่ยม โดยใช้ slider bar ที่หน้าจอ
เปลี่ยนลักษณะของเส้นได้ 2 แบบ โดยใช้ Preference Screen
เปลี่ยนขนาดของเส้นได้ 1 ถึง 20 pixel โดยใช้ปุ่มกดที่หน้าจอ
ไม่สามารถหมุนรูปได้
สามารถย้ายรูปได้โดยการกดค้างแล้วลาก
โปรแกรมสามารถเก็บฐานะการวาดรูปได้บางส่วน ยกเว้นตำแหน่งของรูปเมื่อมีการย้ายรูป

หรือถ้าใครทำได้เหมือนในตัวอย่างทุกประการ อาจเขียนว่า

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

การบ้าน

การบ้านครั้งที่ 1

  • ให้ตั้งชื่อโปรเจคว่า Homework01 แล้วใส่ไว้ในโฟร์เดอร์ exercises ใน repository ของคุณ
  • สีที่ใช้ในการ random ต้องมีไม่ต่ำกว่า 5 สี
  • ห้ามสร้างโปรเจคจากโปรเจคตัวอย่างเด็ดขาด ให้สร้างโปรเจคใหม่เสมอ แต่สามารถคัดลอกโค้ดบางส่วนของตัวอย่างมาใช้ได้ แต่ผมแนะนำว่าควรพิมพ์เองจะดีกว่า เพราะจะทำให้คุณคุ้นเคยกับการเขียน Android ได้ดีขึ้น
  • ทุกครั้งที่ส่งงานให้ตรวจสอบดูด้วยว่าโปรเจคของคุณขึ้นไปอยู่ใน repository เรียบร้อยหรือยัง เพราะผมจะ clone repository ของคุณมาตรวจ ถ้าครบกำหนดส่งแล้วผมไม่สามารถเห็น project ของคุณบน repository ผมจะถือว่าคุณขาดส่งงานในครั้งนั้น
  • การ clone งานมาตรวจผมจะใช้คำสั่ง git clone git@bitbucket.org:your_user_name/works418546mobileapp.git โดยที่ your_user_name คือ username ที่ผมให้คุณส่ง E-Homework ใน Maxlearn
  • ให้ตรวจสอบความถูกต้องเรื่องสิทธิ์ในการเข้าถึงว่าคุณให้สิทธิ์ในการอ่านกับผม (ssutee) หรือเปล่า และ ชื่อ repository ถูกต้องหรือเปล่า
  • ห้ามส่งงานทางอีเมลโดยเด็ดขาด ใครส่งมานอกจากผมจะไม่ตรวจ ผมจะหักคะแนนเพิ่มอีกด้วย
  • การ compile งานเพื่อตรวจผมจะทำผ่านทาง command line โดยใช้คำสั่ง ant ดังนั้นก่อนส่งโปรเจคให้คุณสั่งคำสั่งบน command line ว่า android update project -p . (android เป็น tool ที่มาพร้อมกับ Android SDK คุณต้องกำหนด PATH ไปที่โฟร์เดอร์ tools ของ Android SDK ก่อนถึงจะเรียกใช้คำสั่งนี้ได้) ถ้าทำได้ถูกต้องไฟล์ชื่อ build.xml จะปรากฎขึ้น
  • เพื่อความแน่ใจให้ทดลองสั่งคำสั่ง ant debug เพื่อตรวจสอบว่าสามารถสร้าง binary ไฟล์ของโปรเจคได้หรือไม่ (โปรแกรม ant บน Windows ผมไม่แน่ใจว่ามันอยู่ที่โฟรเดอร์ไหน แต่เข้าใจว่ามันจะมาพร้อมกับ Java SDK ส่วนบน OS X สามารถเรียกใช้ผ่านทาง command line ได้อยู่แล้ว)
  • เมื่อทุกอย่างเรียบร้อยแล้วจึง commit และ push ขึ้นไปยัง repository เพื่อรอการตรวจต่อไป

การบ้านครั้งที่ 2

  • ให้ตั้งชื่อโปรเจคว่า Homework02 แล้วใส่ไว้ในโฟร์เดอร์ exercises ใน repository ของคุณ
  • ให้สร้าง DotView เหมือนตัวอย่างที่แสดงให้ดูในห้องเรียน แต่ให้ จุด สามารถเปลี่ยนแปลงสีและขนาดแบบสุ่มได้ เหมือนในการบ้านครั้งที่ 1 ที่ทำกับ ListView
    • เมื่อสัมผัสหน้าจอให้สร้างจุดใหม่ที่มีสีและขนาดคงที่ขึ้นมาหนึ่งจุดตรงจุดที่สัมผัส
    • การเพิ่ม แก้ไข หรือ ลบ จุด ทั้งบน ListView และ DotView ต้องสัมพันธ์กัน
    • การแก้ไขและลบ จุด ให้ทำผ่านทาง ListView ก็พอ แต่ถ้าใครสามารถทำผ่านทาง DotView ได้จะมีคะแนนพิเศษให้

ตัวอย่างในห้องเรียน

ดูได้ที่นี้

การเรียนการสอน

วัน หัวข้อ เอกสาร
17 มิถุนายน 2555 Introduction to Android PDF (แก้ไข)
24 มิถุนายน 2555 Intents and IntentFilters ใช้ slide ของครั้งแรก
1 กรกฎาคม 2555 ListView ใช้ slide ของครั้งแรก
8 กรกฎาคม 2555 UI PDF
15 กรกฎาคม 2555 Building your own widgets PDF
22 กรกฎาคม 2555 Life cycle
State instance data
Persistent data

PDF PDF