ชุมชน MIT App Inventor -...

Post on 02-Sep-2019

15 views 0 download

Transcript of ชุมชน MIT App Inventor -...

80

ปท 6 ฉบบท 1 เดอน มกราคม-มถนายน 2560

ภมนทร ดวงหาคลง1 พฒนนร ศรสมพนธ1

โรเบรท แบทซงเงอร2

1อาจารยประจ า คณะวทยาศาสตร มหาวทยาลยพายพ 2อาจารยพเศษประจ า ดร. คณะวทยาศาสตร มหาวทยาลยพายพ E-mail: iampumin@gmail.com

MIT App Inventor กบการพฒนาเพอการประยกตใชจรง Real-world Applications Development with MIT App Inventor บทคดยอ MIT App Inventor เปนเครองมอทใชสรางแอปพลเคชนทท างานบนระบบปฏบตการแอนดรอยด (Android) โดย MIT App Inventor ใชหลกการพฒนาซอฟตแวรเชงคอมโพเนนต (Component-based Software Development) ท าใหผใชสามารถพฒนาแอปพลเคชนไดงาย โดยไมตองเขยนรหสค าสง (Source code) ภาษาจาวา ท าใหบคคลทวไปมองวา MIT App Inventor ไมสามารถพฒนาแอปพลเคชนเพอการประยกตใชจรงได (Real-world application) ดงนนในบทความนจงตองการน าเสนอการน า MIT App Inventor ไปใชในการพฒนาแอปพลเคชนส าหรบใชงานจรงในดานตางๆ รวมถงปจจยตางๆ ทท าให MIT App Inventor เปนทนยมเพมมากขนในปจจบน ซงจะชวยใหผอานไดเหนศกยภาพทแทจรงของ MIT App Inventor ค าส าคญ: MIT App Inventor แอนดรอยด การประยกตใชจรง การพฒนาซอฟตแวรเชงคอมโพเนนต ABSTRACT MIT App Inventor is a tool used to create applications that run on the Android Operating System. MIT App Inventor uses component-based software development approach enabling users to develop applications so easily without coding in Java that many people have mentioned that MIT App Inventor cannot actually be used to develop real-world applications. This article introduces MIT App Inventor as a development environment for real-world application which are useful for various purposes and explains about various factors bring the MIT App Inventor is more and more popular nowadays. So readers can see the real potential of MIT App Inventor for creating practical applications. KEYWORDS: MIT App Inventor, Android, Real-world applications, Component-based Software Development

บทน า App Inventor ถกสรางขนดวยความรวมมอของ บรษท Google และ สถาบน MIT (Massachusetts Institute of Technology) ซงเปนมหาวทยาลยชนน าทางดานวทยาศาสตรและเทคโนโลย โดยมวตถประสงค

เพอใหผใชเขาใจหลกการการพฒนาแอปพลเคชนส าหรบใชงานบนอปกรณทใชระบบปฏบตการแอนดรอยด ดวย App Inventor ผใชสามารถสรางแอปพลเคชนไดงายโดยไมตองเขยนรหสค าสงภาษาจาวา แอปพลเคชนทพฒนาโดยใช MIT App Inventor จดเปนเนทฟแอปพลเคชน

สมาคมสถาบนอดมศกษาเอกชนแหงประเทศไทย ในพระราชปถมภ สมเดจพระเทพรตนราชสดาฯ สยามบรมราชกมาร 81

(Native Application) คอ มการจดเตรยมภาษา และเครองมอส าหรบพฒนาแอปพล เคชนส าหรบระบบ ปฏบตการแอนดรอยดเทานน ซงมขอดคอ สามารถเขาถงฟงกชนการท างานของระบบปฏบตการแอนดรอยดไดอยางครบถวนและมประสทธภาพ ท าใหแอปพลเคชนมประสทธภาพการท างานสงสด มความยดหยนสง (Hybrid & native application development, ม.ป.ป.) ตอมาบรษท Google ไดถอนตวออกจากโครงการน และสงมอบให MIT เปนผพฒนา App Inventor ตอ และไดเปลยนชอเปน MIT App Inventor โดยทางสถาบน MIT ใช เครองมอน เปนพนฐานส าหรบการเรยนการสอนทางดานการเขยนโปรแกรมเปนหลก ท าใหบคคลทวไปมองวา MIT App Inventor ใชส าหรบการเรยนการสอนเทานน ซงจรงๆ แลว MIT App Inventor ไดจดเตรยมคอมโพเนนต (Component) พนฐานท เพยงพอส าหรบสรางแอปพลเคชนพนฐานทสามารถท างานไดในระดบหนง อกทงในปจจบนม ชมชน MIT App Inventor (MIT App Inventor Community) ซงมการพดคยแลกเปลยนเทคนคใหมๆ และวธการแกปญหาเกยวกบการพฒนาแอปพลเคชน ท าใหการพฒนาแอปพลเคชน โดยใช MIT App Inventor กาวหนาไปอยางมาก สทธในแอปพลเคชน ทพฒนาโดยใช MIT App Inventor เปนสญญาอนญาตแบบเปดกวางโดยสงวนสทธเฉพาะแหลงทมา (Creative Commons Attribution 4.0 International License) คอ อนญาตใหน าแอปพลเคชนไปใชได ดดแปลงแกไขแอปพลเคชนได และน าแอปพลเคชนไปใชในเชงพาณชยได แตตองอางองถงแหลง ทมาหรอเจาของผลงาน ซงเปนประโยชนทงกบเจาของ แอปพลเคชน ทยงคงมสทธในแอปพลเคชน และยงสามารถเผยแพรและแบงปนใหผอนน าแอปพลเคชนนนไปใชงานและพฒนาตอยอดได (Creative Commons Attribution 4.0 International, ม.ป.ป.) ดงนนในบทความนจงตองการน าเสนอการน า MIT App Inventor ไปใชในการพฒนาแอปพลเคชนส าหรบใชงานจรงดานตางๆ รวมถงปจจยตางๆ ทท าให MIT App Inventor เปนทนยมเพมมากขนในปจจบน เพอใหผอานไดเหนศกยภาพทแทจรงของ MIT App Inventor

การพฒนาแอปพลเคชนบนระบบปฏบตการแอนดรอยด ขนตอนของการพฒนาแอปพล เคชนบนระบบปฏบตการแอนดรอยดโดยทวไป (ขนตอนการ

พฒนาแอปพล เคชนแอนดรอยด , ม.ป.ป. ) จะม 4 ขนตอน ดงน 1. สรางโปรเจกต ในการพฒนาแอปพลเคชน โดยจะตองจดเตรยมโฟลเดอร เพอจดเกบรหสค าสง และไฟลตางๆ ทจ าเปนส าหรบการพฒนาแอปพลเคชน 2. ออกแบบและพฒนาหนาจอสวนตดตอกบผใช (User interface) โดยใชภาษาเอกซเอมแอล XML (Extensible Markup Language) ซ ง จ ะ ไ ด ไ ฟล ช อ main.xml ส าหรบใชเปนตวควบคมเคาโครง (Layout) ของสวนประกอบตางๆ เกบไวในโฟลเดอร res/layout 3. เขยนรหสค าส งส าหรบการท างานของแอปพลเคชนตามทตองการ โดยใชรหสค าสงภาษาจาวา (Java) ซงรหสค าสงจะเกบไวในโฟลเดอร src/package 4. ทดสอบแอปพลเคชนทพฒนาในอปกรณเสมอน AVD (Android Virtual Device) หรอ บนอปกรณทใชระบบปฏบตการแอนดรอยด โปรแกรมท ใชพฒนาแอปพลเคชนบนระบบ ปฏบตการแอนดรอยดทนยมใชในปจจบน ม 2 โปรแกรม คอ Eclipse ADT และ Android Studio ซงแตเดมจะใชโปรแกรม Eclipse ADT แตภายหลงทางทมพฒนา Eclipse ADT ไดพฒนาโปรแกรม Android Studio ออกมาแทน ซงท างานไดดและมประสทธภาพมากกวาโปรแกรม Eclipse ADT (Guideline ส าหรบการเรมตนเขยนแอปพลเคชนแอนดรอยด, ม.ป.ป.) จะเหนไดวาการพฒนาแอปพลเคชนแอนดรอยดวยวธมาตรฐาน ผพฒนาจะตองมความรและทกษะในการออกแบบหนาจอโดยใชภาษาเอกซเอมแอล และการเขยนรหสค าสงโดยใชภาษาจาวา

การพฒนาแอปพลเคชนโดยใช MIT App Inventor MIT App Inventor เปนเครองมอส าหรบพฒนาแอปพลเคชนทท างานบนระบบปฏบตการแอนดรอยด MIT App Inventor ในปจจบนเปนรน (Version) 2 ซงหลงจากนผเขยนจะใชชอ AI2 แทน MIT App Inventor 2 เพราะเปนชอทใชเรยกเครองมอนอยางแพรหลายในปจจบน โดย AI2 จะใชหลกการพฒนาซอฟตแวร เชงคอมโพเนนต (Component-based Software Development) คอ อนญาต ใหผ ใชน าคอมโพเนนตหรอชนสวนของซอฟตแวรมาประกอบกนเปนระบบหรอแอปพลเคชน โดย AI2 ได

82

ปท 6 ฉบบท 1 เดอน มกราคม-มถนายน 2560

จดเตรยมคอมโพเนนตพนฐาน เพอใหผใชน ามาประกอบเปนแอปพลเคชนตามทตองการได ดงแสดงในรปท 1 ใน AI2 มการแบงคอมโพเนนตพนฐานเปนกลมดงน User Interface components เปนกลมของคอมโพเนนตทใชตดตอกบผใช เชน สวนรบขอความ หรอ ปมค าสง เปนตน Layout components เปนกลมของคอมโพเนนตทควบคมการวางต าแหนงของคอมโพเนนตทใชตดตอกบผใชบนหนาจอ Media components เปนกลมของคอมโพเนนตทใชแสดงสอในรปแบบตางๆ เชน รปภาพ วดโอ เสยง เปนตน Drawing and Animation components เป นกลมของคอมโพเนนตทใชวาดรป และแสดงภาพเคลอนไหว Sensor components เปนกลมของคอมโพเนนตทใชท างานรวมกบเซนเซอรของอปกรณตางๆ เชน จพเอส (GPS) และ เขมทศ Social components เปนกลมของคอมโพเนนตทใชสอสารกบสงคมออนไลน เชนการสงเอสเอมเอส (SMS) การเรยกดสมดโทรศพท หรอ การแชรกบสงคมออนไลน เปนตน Storage components เปนกลมของคอมโพเนนตทใชจดการกบขอมลในฐานขอมลขนาดเลก หรอขอมลในไฟล Connectivity components เป นกล มของคอมโพเนนตทใชสรางการเชอมตอกบอปกรณอนผาน บลทธ และเชอมตอกบแอปพลเคชนทพฒนาโดยใชภาษาจาวา (Java Application) LEGO® MINDSTORMS® components เปนกลมของคอมโพเนนตท ใชควบคม หนยนตเลโก (Lego Mindstorms NXT Robot) ประโยชนของคอมโพเนนตเหลาน คอ ท าใหการพฒนาแอปพลเคชนเรวขน เพราะแตละคอมโพเนนตมหนาทเฉพาะ มการจดการกบขอมลของมนเอง ท าใหนกพฒนาไมตองเสยเวลาในการท างานพนฐานเหลานน แตจะใชเวลาในการเลอกคอมโพเนนตทเหมาะสมเพอน ามาประกอบกนเปนแอปพลเคชนแทน ซงการพฒนาแอปพลเคชนในลกษณะน จะเปนการใชประโยชนจากแนวคดของการน ากลบมาใชใหม (Reuse) โดยการน า

คอมโพเนนตมาตรฐานใน AI2 หรอ คอมโนเนนตทมการแบงปนกน(Share) ในชมชนนกพฒนามาใช การใชงาน AI2 เปนแบบมองเหนไดในขณะออกแบบ (Visually design) คอ เปนลกษณะของภาษาภาพทมสวนตดตอกบผใชแบบลากแลววาง ท าใหผใชสามารถพฒนาแอปพลเคชนไดโดยไมตองเขยนรหสค าสง ผใชสามารถมองเหนการออกแบบแอปพลเคชนบนหนาจอไดทนท ผใชสามารถก าหนดองคประกอบหรอชนสวนของแอปพลเคชน แลวระบลกษณะหรอเหตการณการท างานของแอปพลเคชน โดยการก าหนดคาทตองการลงในบลอค (Block) เหมอนกบการเขยนโปรแกรมดวยภาษาใดภาษาหนง เชน การก าหนดตวแปร การสรางเงอนไข การท าซ า หรอแมแตการค านวณ การเกบขอมลในฐานขอมล และสรางการพดคยกบบรการเวบ เชน ทวตเตอร (Twitter) หรอ เฟซบ ค (Facebook) (Guideline ส าหรบการเร มตน เขยนแอปพล เคชน แอนดรอยด, ม.ป.ป.) เปนตน ดงตวอยางในรปท 2

รปท 1 กลมของคอมโพเนนตใน MIT App Inventor (Component types, n.d.)

สมาคมสถาบนอดมศกษาเอกชนแหงประเทศไทย ในพระราชปถมภ สมเดจพระเทพรตนราชสดาฯ สยามบรมราชกมาร 83

รปท 2 การก าหนดรายละเอยดในบลอค (The App Inventor environment, n.d.)

โครงสรางบลอกทใชใน AI2 Inventor จะอยในรปแบบของรปทรงทมส โดยแตละสกจะเปนสวนของขอมล เงอนไข โครงสรางการควบคม และการท างาน ทแบงแยกจากกนอยางชดเจน ซงจะชวยใหการพฒนาแอปพลเคชนงายตอความเขาใจ และมความถกตองมากกวาการใชผงงาน (Flowcharts) ในการพฒนาแอปพลเคชนแบบดงเดม ถงแมวธการพฒนาแอปพลเคชนใน AI2 จะท าดวยวธการงายๆ แตกสามารถท างานไดอยางหลากหลาย เชน 1) การเพมสอมลตมเดย ไมวาจะเปนเสยง รปภาพ หรอ ภาพเคลอนไหว ดงรปท 3

รปท 3 การก าหนดรปภาพ และเสยง (MIT App Inventor, n.d.)

2) การแสดงเสยง อานขอความ (Speech recognition) ดงรปท 4

รปท 4 การแสดงเสยงอานขอความ (MIT App Inventor, n.d.)

3) การก าหนดการเคลอนไหวของวตถจากจดหนงไปยงอกจดหนง โดยการระบเวลาทตองการ ดงรปท 5

รปท 5 การก าหนดการเคลอนไหวโดยระบเวลา (MIT App Inventor, n.d.)

84

ปท 6 ฉบบท 1 เดอน มกราคม-มถนายน 2560

4) การก าหนดการเคลอนไหวของวตถ โดยการคลกปม เพอเรมหรอหยดการเคลอนไหว ดงรปท 6 รปท 6 การก าหนดการเคลอนไหว โดยการกดปม Start

หรอ Stop (MIT App Inventor, n.d.)

5) การก าหนดการเคลอนไหว โดยใชวธการเอยงมอถอ ดงรปท 7

รปท 7 การก าหนดการเคลอนไหว โดยการเอยงโทรศพทมอถอ (MIT App Inventor, n.d.)

6) การก าหนดการเคลอนไหวของวตถ โดยการใชนวลากไปบนหนาจอโทรศพทมอถอ ดงรปท 8 รปท 8 การก าหนดการเคลอนไหว โดยการใชนวบงคบบนหนาจอโทรศพทมอถอ (MIT App Inventor, n.d.)

7) การสมตวเลข เพอการใชในการก าหนดต าแหนงของการแสดงวตถ (x,y) ดงรปท 9

รปท 9 การสมตวเลขเพอก าหนดต าแหนงการแสดงวตถ (MIT App Inventor, n.d.)

8) การวาดเสนหรอวตถโดยการลาก (drag) นวแตะบนหนาจอมอถอ ดงรปท 10

รปท 10 การวาดวตถโดยการลากนว (MIT App Inventor, n.d.)

9) การก าหนดการท างานโดยผานการเขยาโทรศพทมอถอ ดงรปท 11

รปท 11 การก าหนดการท างานโดยการเขยาโทรศพทมอถอ (MIT App Inventor, n.d.)

10) การก าหนดการท างานหรอการเคลอนไหว เมอวตถ 2 วตถชนกน ดงรปท 12

รปท 12 การก าหนดการท างานเมอวตถมาชนกน (MIT App Inventor, n.d.)

สมาคมสถาบนอดมศกษาเอกชนแหงประเทศไทย ในพระราชปถมภ สมเดจพระเทพรตนราชสดาฯ สยามบรมราชกมาร 85

ซงการสรางแอปพลเคชนเพอท างานพนฐานเหลานผใชสามารถเรยนรดวยตนเองผานเวบไซตของ AI2 ดงแสดงในรปท 13 รปท 13 เวบไซตสอนการพฒนาแอปพลเคชนพนฐาน

โดยใช MIT App Inventor (The App Inventor environment, n.d.)

การใช MIT App Inventor เพอพฒนาแอปพลเคชนใชงานจรงดานตางๆ ในสวนนผเขยนจะกลาวถงการใช AI2 พฒนาแอปพลเคชนใชงานจรงดานตางๆ นอกเหนอจากการพฒนาแอปพลเคชนพนฐาน ทมการกลาวถงในคมอ หรอเวบไซตของ AI2

1) การตดตอกบฐานขอมล ฐานขอมลเปนสงทส าคญทสดของแอปพลเคชนทางธรกจ (Business application) เพราะตองใชเกบขอมลตางๆ เพอการด าเนนการทางธรกจ ซง AI2 สามารถสรางแอปพลเคชนส าหรบตดตอกบฐานขอมลชนดตางๆ ไดอยางหลากหลาย AI2 ไดจดเตรยมคอมโพเนนตพนฐานส าหรบตดตอกบฐานขอมล ไดแก TinyDB และ TinyWebDB โดย TinyDB เปนคอมโพเนนตทใชตดตอกบฐานขอมลขนาดเลกทอยในโทรศพทมอถอ สวน TinyWebDB เปนคอมโพเนนตทใชตดตอกบฐานขอมลทอยบนเวบไซต และนอกจากนนเรายงสามารถใช AI2 สรางแอปพลเคชนเพอตดตอกบฐานขอมลมายเอสควแอล (MySQL) ซงเปนฐานขอมลทนยมใชในการเกบขอมลส าหรบธรกจตางๆ ในปจจบน เนองจากเปนโปรแกรมทมขนาดเลก มความเรวสง และไมเสยคาใชจาย โดยการตดตอกบฐานขอมลมายเอสควแอล จะตดตอผ าน Web API (Application Programming Interface) โดยใชภาษาพเอชพ (PHP) คอ จะตองท าการเขยนรหสค าสงภาษาพเอชพ เพอสรางชองทางการ

เชอมตอกบฐานขอมลมายเอสควแอลเตรยมไว ดงบทความเรอง App Inventor-MySQL interface (MIT App Inventor, n.d.) และบทความ Connect App Inventor to Mysql Database (Connect App Inventor to MySQL Database, n.d.)

2) การตดตอกบอปกรณตางๆ AI2 ไดจดเตรยมคอมโพเนนตส าหรบการเชอม ตอกบอปกรณต างๆ ไดแก Bluetooth Client และ Bluetooth Server ส าหรบใชสรางการเชอมตอกบอปกรณตางๆ ผานทางบลทธ ท าใหแอปพลเคชนทพฒนาโดยใช AI2 สามารถเชอมตอกบอปกรณตางๆ ไดอยางหลากหลาย โดยเฉพาะการเชอมตอกบอาดยโนบอรด (Arduino board) ซงเปนบอรดไมโครคอนโทรลเลอรทมการพฒนาแบบเปดเผยรหส (Open source) ทมผนยมใชเปนอยางมาก เพราะสามารถน าไปใชไดอยางอสระและสามารถน าไปพฒนาตอยอดได ในปจจบนมผใชน าอาดยโนบอรดไปควบคมอปกรณชนดตางๆ อยางหลากหลาย และการท AI2 สามารถตดตอกบอาดยโนบอรดผานทางบลทธ ท าใหนกพฒนาสามารถพฒนาแอปพลเคชนเพอควบคมอปกรณตางๆ เหลานนไดเชนกน ดงตวอยางในรปท 14

รปท 14 การพฒนาแอปพลเคชนเพอเชอมตอกบอาดยโนบอรด (How to control arduino board using an android phone, 2013)

3) แอปพลเคชนใชงานจรงอนๆ บนเวบไซตของ AI2 ไดมการน าเสนอแอปพลเคชนใชงานจรง (MIT App Inventor stories. n.d.) ทพฒนาโดยใช AI2 ตวอยางเชน การพฒนาแอปพลเคชนส าหรบค านวณน าหนกสทธของระเบดโดยใชโทรศพทมอถอ ซงพฒนาโดยทหารนาวกโยธนสหรฐอเมรกา เพอทจะน าระเบดทค านวณหาน าหนกแลวไปท าลายดวยวธการทเหมาะสม

86

ปท 6 ฉบบท 1 เดอน มกราคม-มถนายน 2560

อยางปลอดภย ดงรปท 15 หรอการพฒนาแอปพลเคชนส าหรบเกบรวบรวมและบนทกขอมลปรมาณน าฝนจากเครองวดปรมาณน าฝนทกระจายอยทวประเทศเฮต เพองานชวยเหลอดานมนษยธรรมในประเทศเฮต ดงรปท 16 รปท 15 แอปพลเคชนส าหรบค านวณน าหนกสทธของ

ระเบด (MIT App Inventor stories, n.d.) รปท 16 แอปพลเคชนส าหรบเกบรวบรวมและบนทก

ขอมลปรมาณน าฝนในประเทศเฮต (MIT App Inventor stories, n.d.)

เนองจากทางเวบไซตเปดโอกาสใหนกพฒนาสามารถเผยแพรเรองราวของแอปพลเคชนทพฒนาแลวน าไปใชงานจรงได ท าใหตวอยางของแอปพลเคชนบนเวบน มจ านวนเพมขนอยางตอเนอง ท าใหเหนไดวา AI2 สามารถพฒนาแอปพลเคชนเพอน าไปใชงานจรงไดอยางหลากหลายและมประสทธภาพ

แอปพลเคชนพฒนาโดยคนไทย มงคล และนวพร (2558) ไดพฒนาระบบตรวจจบกลน และแอปพลเคชนตดตามกลนบนโทรศพทสมารทโฟน แทนการใชงานสนขดมกลนในสวนของแอปพลเคชนตดตามกลนบนโทรศพทสมารทโฟน คณะผวจยไดเลอกใชโปรแกรม AI2 เปนเครองมอในการพฒนา ซงชวยใหคณะผวจยสามารถพฒนาแอปพลเคชนบนโทรศพทสมารทโฟนไดโดยงาย แอปพลเคชนทพฒนาขนสามารถตดตอและควบคมระบบตรวจจบกลนทพฒนาบนอาดยโนได อกทงแอปพลเคชน สามารถแสดงผลลพธในรปแบบของกราฟไดอยางสวยงาม นอกจากนแอปพลเคชนสามารถอานออกเสยงเปอรเซนตของการเปรยบเทยบกลนได (รปท 17) ประสงค (2558) ไดพฒนาโปรแกรมชวยตดตงจานดาวเทยมบนระบบปฏบตการแอนดรอยด เพอชวยลดขนตอน อปกรณ และเครองมอในการตดตงจานดาวเทยม โดยใชคณสมบตของเซนเซอรตางๆ ทมอยในอปกรณสมารทโฟนชวยคนหาต าแหนงทศทางของดาวเทยม ซงโปรแกรมหรอแอปพลเคชนนพฒนาขนโดยใช AI2 และไดมการทดสอบการท างานของแอปพลเคชนโดยเปรยบเทยบกบการตดตงดวยเครองมอแบบเดม ปรากฏวาแอปพลเคชนทพฒนาขน สามารถบอกขอมล ระบพกดและใชงานเปนเครองมอชวยในการตดต งจานดาวเทยมได อยางมประสทธภาพ (รปท 18)

สมาคมสถาบนอดมศกษาเอกชนแหงประเทศไทย ในพระราชปถมภ สมเดจพระเทพรตนราชสดาฯ สยามบรมราชกมาร 87

รปท 17 แอปพลเคชนบนทกกลนและตดตามกลนเปาหมาย (มงคล และ นวพร, 2558)

รปท 18 การใชงานโปรแกรมคนหามม ต าแหนง และดาวเทยม (ประสงค, 2558) ชมชน MIT App Inventor (MIT App Inventor Community) ปจจยทส าคญทท าใหการพฒนาแอปพลเคชนโดยใช AI2 เปนทรจกแพรหลายมากขนในปจจบนคอ ชมชน MIT App Inventor ซงมการสรางกลมอภปรายแบบฟอรม (Forum) หรอกลมยอย เพอพดคย แลกเปลยนความรความคดเหน และเทคนคการพฒนาแอปพลเคชนใหมๆ ผานบรการกเกลกรปส (Google Groups) ดงแสดง

ในรปท 19 ตวอยางของกลมอภปราย เชน กลมทพดคยปญหาเกยวกบการเขยนโปรแกรม หรอ กลมทพดคยเกยวกบการน า AI2 ไปใชในการเรยนการสอน หรอ กลมทพดคยเกยวกบเทคนคการพฒนาแอปพลเคชนโดยใช AI2 (MIT App Inventor Support Forum, n.d.) เป นต น นอกจากกลมอภปรายผานบรการกเกลกรปสแลว ยงมการสร างกล มพ ดค ยบนเฟซบ ค (Facebook) (MIT App Inventor Facebook, n.d.)

88

ปท 6 ฉบบท 1 เดอน มกราคม-มถนายน 2560

รปท 19 กลมอภปรายแบบฟอรม ชมชน MIT App Inventor ดงเดมกอตงมานานกวา 3 ป (MIT App Inventor Classic RIP, 2015) ถงแมจดประสงคของการกอตงครงแรกเปนเพยงโครงการน ารองเพอให MIT App Inventor เปนทรจก แตกถอวาประสบความส าเรจเปนอยางมาก มการเผยแพรแอปพลเคชนมากกวา 3.97 ลานแอปพลเคชน โดยนกพฒนา 1.7 ลานคน และเมอเกด AI2 กเกดชมชนใหมทมอตราการเตบโตอยางตอเนองและรวดเรว ชมชนจะท าใหเกดปญญาสะสม (Collective Intelligence) (ววฒน, 2555) ซงจะชวยสงเสรมและกระตนใหเกดแนวคดในการพฒนาแอปพลเคชนทสรางสรรค และซบซอนกวาการพฒนาแอปพลเคชนโดยล าพง นอกเหนอจากกลมอภปราย หรอกลมพดคยแลกเปลยนทกลาวมา ยงมการจดประกวดแอปพลเคชนดเดนทพฒนาดวย AI2 โดยทนกพฒนาสามารถสง แอปพลเคชน ไปยงเวบไซตของ AI2 เพอเขารวมประกวด จะมการตดสนและประกาศผลแอปพล เคชนทชนะเลศประจ าเดอนประเภทตางๆ ไดแก ประเภทการออกแบบ ประเภทสรางสรรค ประเภทนวตกรรม และประเภทสงประดษฐ ดงรปท 20 ซงการประกวดนเปนสวนส าคญทชวยสงเสรมนกพฒนาใหน า AI2 ไปพฒนาแอปพลเคชนดานตางๆ อยางหลากหลาย

รปท 20 การจดประกวดแอปพลเคชนดเดนประจ าเดอน

(App of the Month winners, n.d.) การแจกจายแอปพลเคชน (Application Distribution) ทพฒนาโดย MIT App Inventor เม อพฒนาแอปพล เคชนโดยใช AI2 เสรจสมบรณ นกพฒนาสามารถแจกจายแอปพลเคชนไดใน 2 รปแบบ คอ รปแบบของรหสค าสง (Source code form) ทมนามสกลเปน .aia เพอใหนกพฒนาคนอนสามารถเปดแอปพลเคชนนเพอศกษาหรอแกไขได และรปแบบทรนได (Executable form) ซงมนามสกลไฟล .apk เหมอนกบแอปพลเคชนทพฒนาโดยใชเครองมอมาตรฐานอน เชน Android Studio โดยการแจกจายสามารถใชค าสงใน AI2 ไดโดยตรง ดงรปท 21 และ 22 ตามล าดบ แอปพลเคชนทมนามสกลไฟล .apk สามารถท างานไดบนอปกรณตางๆ ท ใชระบบปฏบตการแอนดรอยด นกพฒนาสามารถแจกจายแอปพลเคชนทมนามสกลไฟล .apk ทพฒนาโดยใช AI2 ออกสสาธารณะ โดยโอนยาย (Publish) แอปพลเคชนนนไปไวบน Google Play Store เพอใหผทสนใจในแอปพลเคชนนนสามารถดาวนโหลดแอปพลเคชนไปใชงานได

สมาคมสถาบนอดมศกษาเอกชนแหงประเทศไทย ในพระราชปถมภ สมเดจพระเทพรตนราชสดาฯ สยามบรมราชกมาร 89

รปท 21 การแจกจายแอปพลเคชนในรปแบบรหสค าสง ( .aia) (Sharing and packaging apps, n.d.)

รปท 22 การแจกจายแอปพลเคชนในรปแบบทรนได ( .apk)

(Sharing and packaging apps, n.d.) ขอจ ากดของ MIT App Inventor แอปพลเคชนทพฒนาโดยใช AI2 ในปจจบนยงมขอจ ากดบางประการ (App Inventor capabilities and limitations, n.d.) เชน คอมโพเนนตในกลมทใชตดตอกบผใชบางตวยงมขอจ ากดบางประการ ยงมขอจ ากดในเรองการเขาถงอปกรณโทรศพท มอถอ เนองจากยงขาดคอมโพเนนตทท าหนาทบางอยาง เชน การขาดคอมโพเนนตทท าหนาทในการบนทกและอานแฟม (File) ทอยในระบบจดเกบแฟมของโทรศพทมอถอ และการขาดคอมโพเนนตทท าหนาทจดการกบรายชอผตดตอ (Contact list) ยงขาดคอมโพเนนตส าหรบเขาถงเวบโดยตรง ตองตดตอผาน API คอ ตองท าการเขยนรหสค าสงเพอสรางชองทางการเชอมตอเตรยมไวบนเวบไซต จากตวอยางของขอจ ากดทไดกลาวมาจะเหนวาเปนขอจ ากดทไมไดเกดจากการท างานของตว AI2 แตเปนเพยงการขาดคอมโพเนนต หรอสวนเสรมทชวยท าใหการพฒนาแอปพลเคชนงายและสะดวกขน และดวย

การท AI2 เปนทรจกอยางแพรหลายมากขนในปจจบน (Xie et al., 2015) มการแลกเปลยนความคดเหน และขอเสนอแนะของนกพฒนาในชมชน AI2 อยางกวางขวาง ผ เขยนคดวาทมพฒนา AI2 คงจะรบทราบถงขอจ ากดเหลานน และพฒนาปรบปรง AI2 เพอตอบสนองตอความตองการของนกพฒนาในอนาคตอนใกลน บทสรป บทความนน าเสนอการน า MIT App Inventor ไปใชในการพฒนาแอปพลเคชนส าหรบใชงานจรง ซง MIT App Inventor หรอ AI2 ใชหลกการพฒนาซอฟตแวรเชงคอมโพเนนต และมการใชงานแบบมองเหนไดในขณะออกแบบ ท าใหงายในการพฒนาแอปพลเคชนโดยทผใชไมจ าเปนตองออกแบบหนาจอโดยใชภาษาเอกซเอมแอล และเขยนรหสค าสงภาษาจาวาเพอควบคมการท างาน ท าใหผท ไมมความรในการเขยนโปรแกรมสามารถพฒนาแอปพลเคชนส าหรบท างานบนระบบปฏบตการแอนดรอยดได ถงแมการพฒนาแอปพลเคชนใน AI2 ท าไดโดยง าย (Pokress and Veiga, 2013) แตนกพฒนากสามารถสรางแอปพลเคชนทมประสทธภาพ และท างานไดอยางหลากหลาย ดงตวอยางทไดกลาวมาในบทความ อกทงยงมชมชน MIT App Inventor ทคอยใหความชวยเหลอและแลกเปลยนเทคนคใหมๆ ในการพฒนาแอปพลเคชน ท าให MIT App Inventor เปนทนยมเพมขนเปนอยางมากในปจจบน ซงผ เขยนคดวาในอนาคต MIT App Inventor จะถกพฒนาและปรบปรงใหมความสามารถในการพฒนาแอปพลเคชนมากกวาปจจบน ซงจะเปนการปฏวตรปแบบการพฒนาแอปพลเคชนบนระบบปฏบตการแอนดรอยดใหมความงายและมประสทธภาพมากยงขน นอกจากการใช AI2 ในการพฒนาแอปพลเคชนใชงานจรง การน า AI2 มาใชในการเรยนการสอนจะท าใหนกเรยน นกศกษา มโอกาสใหมๆ ในการพฒนาทกษะทจ าเปนในศตวรรษท 21 โดยเฉพาะความรวมมอและการสอสารกบชมชนนกพฒนาทงภายในประเทศและตางประเทศ เพอมสวนรวมในการพฒนาแอปพลเคชนเพอแกปญหาในโลกแหงความเปนจรง

90

ปท 6 ฉบบท 1 เดอน มกราคม-มถนายน 2560

เอกสารอางอง ขนตอนการพฒนาแอปพลเคชนแอนดรอยด .ม.ป.ป. สบคน

เม อว นท 24 พฤศจ กายน 2559 จาก : http://androidthai.in.th/conternt-android/ 108-step-developer-application-android.html

ประสงค วงศชยบตร. 2558. การพฒนาโปรแกรมชวยตดตงจานดาวเทยมบนระบบปฏบตการแอนดรอยด. 2558. การประชมวชาการงานวจยและพฒนาเชงประยกต ครงท 7 (ECTI-CARD 2015) เรองรคาพลงงานและสงแวดลอมเพอกาวสศตวรรษท 21. ว นท 8 กรกฎาคม 2558 จ ดโดยมหาวทยาลยเทคโนโลยราชมงคลศรวชย วทยาเขตตรง และสมาคมวชาการไฟฟา อเลคทรอนคส โทรคมนาคม และสารสนเทศ

มงคล สมาวงษ และนวพร วสฐพงศพนธ . 2558. ระบบตรวจจบกลนและแอปพลเคชนตดตามกลนบนโทรศพทสมารทโฟน. การประชมวชาการระดบชาตดานคอมพวเตอร และเทคโนโลยสารสนเทศ ครงท 11 (NCCIT2015). วนท 2 – 3 กรกฎาคม 2558 ณ โรงแรมอโนมา กรงเทพฯ จดโดยคณะเทคโนโลยสารสนเทศ มหาวทยาลยเทคโนโลยพระจอมเกลาพระนครเหนอ

ววฒน มสวรรณ. 2555. “ปญญาสะสม” บนสงคมออนไลน. วารสารศกษาศาสตร มหาวทยาลยนเรศวร 14(1): 1-10.

App Inventor capabilities and limitations. n.d. Retrieved November 24, 2016, from https://sites.google.com/site/appinventor/capabilities-limitations

App of the Month winners. n.d. Retrieved November 24, 2016, from http://appinventor.mit.edu/ explore/app-month-gallery.html

Connect App Inventor to MySQL Database. n.d. Retrieved November 24, 2016, from http://www.newthinktank.com/2014/05/connect-app-inventor-mysql-database

Component types. n.d. Retrieved November 24, 2016, from http://ai2.appinventor.mit. edu/reference/components/

Creative Commons Attribution 4.0 International. ม.ป.ป. สบคนเมอวนท 17 มนาคม 2560 จาก : https://creativecommons.org/licenses/by/4.0/

Guideline ส าหรบการเรมตนเขยนแอปพลเคชนแอนดรอยด. ม.ป.ป. สบคนเมอวนท 24 พฤศจกายน 2559 จ า ก : http://www.akexorcist.com/2 014 / 05/android-dev-tips-guideline.html

How to control arduino board using an android phone. 2013. Retrieved November 24, 2016, from https://blog.arduino.cc/2013/ 07/18/how-to-control-arduino-board-using -an-android-phone/

Hybrid & native application development. ม.ป.ป. สบคนเมอวนท 17 มนาคม 2560 จาก : https://www.codebee.co.th/อะไรคอ-hybrid -vs-native-application.html

MIT App Inventor. n.d. Retrieved November 28, 2016, from http://appinventor.mit.edu/ explore/

MIT App Inventor Classic RIP. 2015. Retrieved November 24, 2016, from http://app inventor.mit.edu/explore/blogs/hal/2015/07/mit-app.html

MIT App Inventor Facebook. n.d. Retrieved November 24, 2016, from https://www. facebook.com/MITAppInventor/

MIT App Inventor stories. n.d. Retrieved November 24, 2016, from http://app inventor.mit.edu/explore/stories.html

MIT App Inventor Support Forum. n.d. Retrieved November 24, 2016, from https://groups. google.com/forum/#!forum/mitappinventortest

Pokress, S.C. and Veiga, J.J.D. 2013. MIT App Inventor enabling personal mobile computing. arXiv preprint arXiv: 1310. 2830v2. 24 Oct 2013.

Sharing and packaging apps. n.d. Retrieved November 2 4 , 2 0 1 6 , from http://app inventor.mit.edu/explore/ai2/share.html

สมาคมสถาบนอดมศกษาเอกชนแหงประเทศไทย ในพระราชปถมภ สมเดจพระเทพรตนราชสดาฯ สยามบรมราชกมาร 91

The App Inventor environment. n.d. Retrieved November 24, 2016, from http://www.app inventor.org/HelloPurr2

Xie, B., Shabir, I., and Abelson, H. 2015. Measuring the usability and capability of app inventor to create mobile applications. Proceedings of the ACM SIGPLAN Conference on Systems, Programming, Languages and Applications: Software for Humanity (SPLASH). October 25-30, 2015 in Pittsburgh, Pennsylvania, United States.