เขียน App เองก็ได้ ง่ายนิดเดียว

หากเราแม่นใน “หลักการเขียนโปรแกรม” ไม่ว่ายุคสมัยจะเปลี่ยนไปอย่างไร หรือ Hardware จะเปลี่ยนไปอย่างไร ยังไงยังไง เราก็สามารถ “เขียนได้ทุก App”

App (แอพ) ย่อมาจาก Application (แอพลิเคชั่น) Software หรือ “โปรแกรมประยุกต์” ซึ่งมีหลายประเภท และหลายหน้าที่ให้เลือกใช้งานตามความต้องการ
ต่างจาก System Software หรือ “โปรแกรมระบบ” (Operating System) ที่มีบทบาทโดยตรงในการประสานงานกับ Hardware หรือตัวเครื่องกับผู้ใช้งานและ Application Software
โดย Operating System มีหน้าที่อำนวยความสะดวกและจัดเตรียมสิ่งที่จำเป็น
Operating System ซึ่งเป็นที่รู้จักกันดีก็เช่น DOS, UNIX, Linux, Windows, Mac OS, iOS หรือ Android ใช้สำหรับการ Boot หรือเปิด-ปิดเครื่อง หรือ Restart เครื่องใหม่ และใช้ในการติดต่อสื่อสารระหว่างอุปกรณ์ต่างๆ ภายใน Hardware กับ Application Software และผู้ใช้
กลับมาที่ Application Software ก็มีตัวอย่างเด่นๆ เช่น Microsoft Office, Anti-Virus, PDF Reader, Dictionary, Computer Game ต่างๆ ไปจนกระทั่งโปรแกรมดูหนังฟังเพลงอ่านหนังสือ หรือ Twitter, Instagram, Facebook หรือ Line ทั้งหมดนี้ ปัจจุบัน เรียกกันย่อๆ ว่า App

Developer

จะเห็นได้ว่า Application Software ที่ยกตัวอย่างมาข้างต้นนี้ เป็น App ที่มีผู้ใช้งานอยู่ทั่วไป
นั่นหมายถึง เป็น Application Software แบบสำเร็จรูป คือผู้สร้าง App สร้างขึ้นมาเพื่อวัตถุประสงค์ใดวัตถุประสงค์หนึ่ง สร้างขึ้นมาครั้งเดียวแล้วใช้งานกันได้หลายครั้งครั้งละหลายคนพร้อมกัน
ทำให้ในบางครั้ง มีผู้เรียก Application Software แบบสำเร็จรูปว่า Package Software
ขณะเดียวกัน ยังมี Application Software อีกประเภทหนึ่ง เป็น App แบบเฉพาะเจาะจง หรือ Tailor-Made ตั้งชื่อเหมือนร้านตัดเสื้อที่ต้องวัดตัวของใครของมัน ไม่ใช่เสื้อโหล หรือเสื้อ Brand Name ในห้าง
ส่วนการเขียน App ก็คือการเขียนโปรแกรม Application Software โดยจะให้เป็นทั้งแบบ Tailor-Made หรือแบบ Package ก็ได้ สุดแท้แต่ความถนัด หรือตามความต้องการของผู้เขียนโปรแกรม และโดยเฉพาะอย่างยิ่งก็คือ ตามความต้องการของผู้ใช้งานโปรแกรม แล้วแต่ความเหมาะสม
หากเราแม่นใน “หลักการเขียนโปรแกรม” ไม่ว่ายุคสมัยจะเปลี่ยนไปอย่างไร หรือ Hardware จะเปลี่ยนไปอย่างไร ยังไงยังไง เราก็สามารถ “เขียนได้ทุก App”

ตามทฤษฎีแล้ว หลักการเขียนโปรแกรม หมายถึง หลักการเขียน App นั้น ก็มีหลักการใหญ่ๆ ในทางตรรกะอยู่ 3 ข้อ กล่าวคือ
1. If-Else หรือการกำหนดเงื่อนไข ใช่-ไม่ใช่
2. Switch-Case หรือการสร้างตัวเลือกให้เลือกอย่างใดอย่างหนึ่ง
3. For-Loop หรือการทำซ้ำจนกว่าจะได้ผลลัพธ์ที่ต้องการ
การเขียนโปรแกรมในระบบ Text Mode หรือการแสดงผลด้วยตัวอักษร มีคำสั่งที่ตรงไปตรงมา ไม่ซับซ้อนเนื่องจากตัวอักษรของ Text Mode มีแค่ 2 มิติ คือกว้างคูณยาว และมีการแสดงผลเป็นบรรทัด โดยอาจจะแสดงผลที่ละบรรทัด หรือทีละหลายบรรทัดพร้อมกัน หรือไม่พร้อมกันก็ได้ แล้วแต่ความต้องการ
ส่วนการเขียนโปรแกรมในระบบ Graphic Mode มีขั้นตอนที่ยุ่งยากเพิ่มเข้ามาจากระบบ Text Mode ก็ตรงที่ การเขียนโปรแกรมในระบบ Graphic Mode จะมีอุปกรณ์เพิ่มเข้ามานอกจาก Keyboard ในระบบ Text Mode ซึ่งก็คือ Mouse ที่สามารถเคลื่อนไหว และกดปุ่มคลิกได้อย่างอิสระ

ซึ่งแน่นอนว่า ย่อมต่างจากการกดเลื่อน Cursor ไปที่ละหนึ่งตัวอักษรผ่าน Keyboard ในระบบ Text Mode เพราะ Cursor ของ Mouse ในระบบ Graphic Mode เลื่อนไหลได้อย่างเสรี
ดังนั้น การเขียนโปรแกรมในระบบ Graphic Mode จึงต้องมีกระบวนการควบคุม Mouse เพิ่มเข้ามา
แต่นี่ก็ยังไม่ซับซ้อนเท่ากับการเขียนโปรแกรมในยุคปัจจุบัน ที่นอกจากจะต้องมีพื้นฐานของการเขียนโปรแกรมในระบบ Graphic Mode แล้ว ยังมีต้องทักษะการเขียนโปรแกรมในระบบ Multi-Touch เพิ่มเติมเข้ามา เนื่องจากทุกวันนี้ เรามีรูปแบบหน้าจอ Touch Screen เพิ่มเข้ามาในการใช้งาน
เพราะยุคนี้เป็น Touch Screen คือโทรศัพท์มือถือ หรือ Smart Phone
ดังนั้น การเขียนโปรแกรมเพื่อรองรับรูปแบบหน้าจอ Touch Screen ในระบบ Multi-Touch จึงต่างจากการเขียนโปรแกรมในระบบ Graphic Mode ที่ต้องควบคุม Mouse ซึ่งมี Cursor เดียวเหมือนกับการเขียนโปรแกรมในระบบ Text Mode เพราะการเขียนโปรแกรมระบบ Multi-Touch มีหลาย Cursor นั่นเอง
นี่คือหลักการและพื้นฐานของการเขียนโปรแกรม หรือการเขียน App เบื้องต้น

การเขียนโปรแกรมระบบ Multi-Touch มีรูปแบบที่เรียกว่า Pinch-to-Zoom หรือการใช้นิ้วมือหนึ่งนิ้วขึ้นไป ถ้าหนึ่งนิ้วก็หมายถึง หนึ่ง Cursor ถ้าใช้สองนิ้วก็สอง Cursor ถ้าใช้หลายนิ้วพร้อมกันก็หลาย Cursor นอกจากนี้ เขียนโปรแกรมระบบ Multi-Touch ยังมีฟังก์ชั่นการขยาย-หด และสไลด์
และเป็นที่รู้กันทั่วไปในหมู่นักเขียนโปรแกรม ว่าการจะเริ่มต้นลงมือเขียนโปรแกรมได้นั้น จะต้องผ่านขั้นตอนการวิเคราะห์และออกแบบระบบมาเป็นอย่างดีเสียก่อน ในที่นี้คงไม่มีพื้นที่พอจะอธิบายทฤษฎีการวิเคราะห์และออกแบบระบบได้อย่างละเอียด สรุปง่ายๆ ก็คือต้องคิดให้จบก่อนว่าจะเขียนโปรแกรมอะไร
จากนั้นต้องคิดต่อว่าใครจะเป็นผู้ใช้โปรแกรมที่เราจะเขียน และสุดท้ายก็คือเราจะเขียนโปรแกรมดังกล่าวขึ้นมาด้วยวิธีการใด ซึ่งแน่นอนว่าต้องหมายถึงเราจะเลือกใช้เครื่องมือตัวใดในการเขียนโปรแกรม ต่อจากนั้นเราต้องจินตนาการถึงหน้าจอที่เราจะเขียนว่าจะมีหน้าตาอย่างไร มีกี่หน้า ลำดับหน้าเป็นอย่างไร
กล่าวอย่างรวบรัดตัดความโดยไม่ต้องอธิบายทฤษฎีการวิเคราะห์และออกแบบระบบอย่างละเอียดก็คือต้องคิดในประเด็นข้างต้นทั้งหมดให้เรียบร้อย หรือให้จบแบบครบถ้วนกระบวนความเสียก่อน จึงจะเริ่มลงมือเขียนโปรแกรม ก็จะทำให้ช่วยประหยัดได้หลายๆ อย่าง ไม่ว่าจะประหยัดเวลา หรือประหยัดงบประมาณ
ต่อจากนั้นก็จะเข้ามาสู่ขั้นตอนของการเขียน App
ในส่วนของ Android ผมขอแนะนำโปรแกรม AppInventor ซึ่งหากหลายท่านได้ลองใช้แล้ว อาจจะบอกว่าง่าย
เนื่องจาก โปรแกรม AppInventor ที่แม้ว่าจะมีลักษณะ “เลือก-ลาก-วาง” ง่ายๆ แต่ AppInventor จะเป็นลักษณะคล้ายกับการต่อ Jigsaw ซึ่งหากแต่ละชิ้นต่อไม่เข้าเหลี่ยมกันก็จะถือว่าเรามาผิดทิศผิดทาง
ในทางตรงกันข้ามถ้าต่อ Jigsaw ถูกต้อง ก็จะเขียน App ได้ง่ายมากครับ เครื่องมือของ AppInventor ทั้งหมดอยู่ที่ http://appinventor.mit.edu
ส่วน iOS หรือระบบปฏิบัติการบน iPhone ผมลองมาแล้วหลายตัวเลย แต่ก็มาลงเอยที่ App Maker ครับ แม้ว่า ตัว App Maker เองจะสามารถเขียน App ของ Android ได้ด้วย ซึ่งทุกอย่างที่เกี่ยวข้องกับ App Maker รวมอยู่ที่ www.appmakr.com
กล่าวโดยสรุป ผมเน้น “หลักการเขียนโปรแกรม” มากกว่า “เทคนิคการเขียนโปรแกรม” เหตุผลก็คือในยุคปัจจุบัน เรามีเครื่องมือช่วยมากมาย และในอนาคตก็จะมีเครื่องมือใหม่ๆ เข้ามาช่วยเขียนโปรแกรมอีกมากมาย
ดังนั้น หากเราแม่นใน “หลักการเขียนโปรแกรม” ไม่ว่ายุคสมัยจะเปลี่ยนไปอย่างไร หรือ Hardware จะเปลี่ยนไปอย่างไร ยังไงยังไง เราก็สามารถ “เขียนได้ทุก App” ครับ!