ข้อใดมีการสร้างและเก็บไว้ใน library จะเรียกชื่อว่าอะไร

Mobile Application สำคัญอย่างไร ?

ในปัจจุบัน Windows Application ได้รับความนิยมน้อยลงเป็นอย่างมาก เนื่องจากผู้ใช้งานส่วนใหญ่ใช้งานผ่านมือถือ นักพัฒนาส่วนใหญ่ให้ความสนใจ Web Application มากขึ้นเนื่องจากสามารถทำงานได้ทุก Platform ไม่ว่าจะเป็น Windows, Ubuntu, Android, iOS, Windows Phone, ฯลฯ ขอแค่มีเบราเซอร์และอินเตอร์เน็ตก็สามารถเข้าใช้งานได้แล้ว แต่ทั้งนี้การพัฒนา Web Application ยังมีข้อจำกัดในหลายๆ ด้าน เช่น ไม่สามารถเข้าถึง Resource ของเครื่องผู้ใช้งานได้โดยตรง, จำเป็นต้องใช้อินเตอร์เน็ตในการเข้าถึง, ประสิทธิภาพไม่เร็วเท่า Native Application เป็นต้น การพัฒนา Native Mobile Application จึงเป็นสิ่งที่น่าสนใจที่สุด ถึงแม้ว่าอาจจะใช้งบประมาณในการพัฒนาเยอะกว่า ในบทความนี้จะเน้นไปที่การพัฒนา Native Android Application เนื่องจากง่ายสำหรับผู้เริ่มต้นและไม่ยุ่งยากเท่า iOS

Android Studio คืออะไร ?

Android Studio เป็น IDE Tool จาก Google ไว้พัฒนา Android สำหรับ Android Studio เป็น IDE Tools ล่าสุดจาก Google ไว้พัฒนาโปรแกรม Android โดยเฉพาะ โดยพัฒนาจากแนวคิดพื้นฐานมาจาก InteliJ IDEA คล้าย ๆ กับการทำงานของ Eclipse และ Android ADT Plugin โดยวัตถุประสงค์ของ Android Studio คือต้องการพัฒนาเครื่องมือ IDE ที่สามารถพัฒนา App บน Android ให้มีประสิทธิภาพมากขึ้น ทั้งด้านการออกแบบ GUI ที่ช่วยให้สามารถ Preview ตัว App มุมมองที่แตกต่างกันบน Smart Phone แต่ล่ะรุ่น สามารถแสดงผลบางอย่างได้ทันทีโดนไม่ต้องทำการรัน App บน Emulator รวมทั้งยังแก้ไขปรับปรุงในเรื่องของความเร็วของ Emulator ที่ยังเจอปัญหากันอยู่ในปัจจุบัน

ติดตั้ง Android Studio

สามารถดาวน์โหลด Android Studio เวอร์ชั่นล่าสุดได้จากลิ้งค์ Official นี้ (https://developer.android.com/studio/index.html)

Android SDK คืออะไร ?

Android Software Development Kit (Android SDK) เปรียบเสมือน Library ที่ใช้ในการพัฒนา Application สำหรับ Android เนื่องจากตัว Android มีหลายเวอร์ชั่นและแต่ละเวอร์ชั่นมี Feature, GUI ที่ไม่เหมือนกันทำให้เกิด Android SDK ออกมาหลายเวอร์ชั่นให้เลือกใช้งาน

API Level คืออะไร ?

API Level หมายถึงเวอร์ชั่นของ API ที่ให้นักพัฒนานำมาใช้งานใน SDK เวอร์ชั่นนั้นๆ เช่น มือถือของผมใช้ Android 8 ก็จะสามารถใช้งาน API Level 26 ซึ่งอาจจะมี Feature ใหม่ๆ เพิ่มขึ้นมา ทำให้มือถือที่ใช้ Android เวอร์ชั่นเก่ากว่านี้จะไม่สามารถใช้งาน API Level นี้ได้

การใช้งาน Android Studio เบื้องต้น

หลังจากติดตั้ง Android Studio เสร็จและดาวน์โหลด SDK เรียบร้อยแล้ว (SDK จะถูกดาวน์โหลดให้อัตโนมัติหลังจากติดตั้ง Android Studio หรือสามารถจัดการ SDK ได้ในเมนู SDK Preferences) เริ่มต้นสร้างแอพพลิเคชั่นโดยการ Create New Project ขึ้นมา

Application Name — ใส่ชื่อแอพพลิเคชั่นที่เราต้องการ

Company Domain — ใส่โดเมนอะไรก็ได้ของเรา (ตรงนี้สำคัญเพราะถ้าหากซ้ำกับของผู้อื่นจะไม่สามารถนำลง Play Store ได้ แต่ถ้าพัฒนาแอพเพื่อใช้เองไม่ได้ต้องการนำลง Play Store ก็ไม่มีปัญหาใดๆ)

Project Location — ไดเร็คทอรี่ที่ต้องการเก็บไฟล์ไว้

Include C++/Kotlin Support — ทำให้โปรเจ็คต์ของเราสามารถใช้งานภาษา C++, Kotlin ได้ซึ่งอาจจะช่วยอำนวยความสะดวกมากยิ่งขึ้น แต่ในที่นี้จะทดลองสร้างโดยใช้ภาษา Java เพียวๆ ก่อน

ต่อมา เลือกแพลตฟอร์มที่เราต้องการให้แอพพลิเคชั่นของเรารันได้ ในที่นี้ขอเลือกเป็น Phone and Tablet เนื่องจากจะเน้นใช้งานแค่ในมือถือและแท็บเล็ต เลือก Android API เวอร์ชั่น 23 สำหรับใช้กับ Android 6.0 (Marshmallow) เนื่องจากเป็นเวอร์ชั่นที่ค่อนข้างเสถียร

หลังจากเลือก Android API แล้วด้านล่างจะมีบอกว่าจำนวนผู้ใช้งาน Android กี่เปอร์เซ็นต์จากทั้งหมดบนโลกที่กำลังใช้งาน Android Version นี้และสามารถรันแอพนี้ได้

เลือกรูปแบบ Activity ที่ต้องการใช้งาน (Activity ก็เปรียบเสมือน Class GUI ของแอพของเรา)

ใส่ชื่อ Activity, ชื่อ Layout หลักของแอพ (ตรงนี้ปล่อยเป็นค่า Default ไว้ได้)

มารู้จักในส่วนของไดเร็คทอรี่ที่เก็บโปรเจ็คต์ของเรากันก่อน โดยโปรเจ็คต์ของเราจะเก็บไว้ในโฟลเดอร์ app และแบ่งออกเป็น 3 เลเวลคือ manifests, java, res

manifests —สำหรับเก็บไฟล์ .xml ที่ใช้สำหรับตั้งค่าต่างๆ ของแอพของเรา เช่น ชื่อแอพ, ชื่อ Activity หลักที่จะให้เรียกใช้งานตอนรันแอพ, Permission ต่างๆ ของแอพของเรา

java — สำหรับเก็บไฟล์ .java ของแอพ เป็นส่วน Controller หลักของแอพที่ใช้ในการประมวลผล

res — สำหรับเก็บไฟล์ .xml เพื่อใช้สร้าง GUI ของแอพ และเก็บ Resource ต่างๆ เช่นรูปภาพ, สีธีม เป็นต้น

ในส่วนของ Menu หลักที่ใช้งานเป็นประจำ

  1. Make Project (รูปค้อนสีเขียว) สำหรับ Compile แอพของเรา
  2. Run (รูปสามเหลี่ยมสีเขียว) สำหรับใช้ Compile แอพของเราและรันบน Emulator
  3. Apply (รูปสายฟ้าสีเหลือง) สำหรับใช้ Compile แอพและอัพเดทแอพบน Emulator (ในกรณีที่แอพเรารันบน Emulator อยู่แล้วให้ใช้ปุ่มนี้แทนปุ่ม Run จะเร็วกว่า)
  4. SDK Manager (รูปลูกศรชี้ลงสีฟ้า) สำหรับใช้จัดการเวอร์ชั่น SDK ในเครื่อง
  5. AVD Manager (รูปโทรศัพท์สีม่วง) สำหรับใช้จัดการ Emulator ในเครื่อง

Checkpoint 1

Emulator คืออะไร ?

Emulator คือโปรแกรมจำลอง Android Device ขึ้นมาบนเครื่องของเราเพื่อใช้สำหรับ Debug

โดยใน Android Studio สามารถกดปุ่ม AVD Manager เพื่อสร้างและรัน Emulator โดยสามารถเลือก Device ที่ต้องการ, CPU Core, RAM, เวอร์ชั่นของ Android ที่ต้องการได้

Checkpoint 2

เริ่มต้นสร้าง Application แรก

ในที่นี้ผู้เขียนจะสร้างแอพง่ายๆ สำหรับคำนวณอุณหภูมิเป็นองศาต่างๆ โดยสามารถดาวน์โหลด Source Code ได้จาก GitHub (https://github.com/palmmymumu/TempView)

เมื่อเปิดโปรเจ็คต์มาจะมาหน้าตาดังนี้ ซึ่งประกอบไปด้วย 2 Activity ได้แก่ activity_main (หน้าเริ่มต้น) และ activity_result (หน้าแสดงผลลัพธ์ที่ได้จากการคำนวณ)

นอกจากนี้ยังมี Class ทั้งหมด 3 Class ได้แก่ MainActivity สำหรับใช้ใน activity_main และ ResultActivity สำหรับใช้ใน activity_result และ Temperature เป็นคลาสสำหรับเก็บและคำนวณอุณหภูมิ

ในส่วนของคลาส Temperature จะมี 3 Method ได้แก่ getCelsius(), getFahrenheit(), getKelvin() สำหรับคำนวณค่าเป็นองศาต่างๆ และ Constructor จะรับค่าอุณหภูมิและองศานั้นๆ มาแปลงเป็น Celsius เก็บไว้ใน Attribute ชื่อ celsius

ในส่วนของ MainActivity หลักการเบื้องต้นคือประกาศตัวแปร edtTemp, spnUnit, btnSubmit ขึ้นมาเพื่อใช้เข้าถึง EditText, Spinner, Button ที่ใช้แสดงผล (รับ Input มาทาง edtTemp และ spnUnit จากนั้นคำนวณเมื่อกด btnSubmit)

ในส่วนนี้จะเป็นการสร้าง ArrayAdapter ขึ้นมาเพื่อเก็บ Array ที่ใช้เป็น Item ใน Spinner โดย Array นี้เก็บไว้ชื่อว่า tempUnit อยู่ในโฟลเดอร์ res/values/strings.xml จากนั้นเซ็ต spnUnit ให้มี Item จาก ArrayAdapter นี้

ส่วนนี้จะเป็นการทำ Event Handler ของปุ่ม btnSubmit คือถ้ามีการกดปุ่มนี้ (onClick) จะให้เรียกใช้ฟังก์ชั่นนี้ โดยขั้นตอนแรกจะตรวจสอบ edtTemp ว่าเป็นค่าว่างหรือไม่

getText() — เป็น Method สำหรับดึงข้อความที่ผู้ใช้งานพิมพ์

toString() — เป็นการแปลงชนิดให้เป็นสตริง

trim() — คือการตัด Space ซ้ายขวาออกไป

equals() — เป็นการเปรียบเทียบสตริงว่าตรงกันหรือไม่) โดยหากข้อความที่ผู้ใช้พิมพ์มาแล้วมีค่าว่างเปล่า จะเรียกใช้ setError() เพื่อแจ้งเตือนให้ผู้ใช้ทราบ

ถ้าผู้ใช้ใส่ตัวเลขเข้ามาจะเริ่มต้นคำนวณโดยประกาศ tmp ขึ้นมาเป็น Object Temperature โดยส่งค่า Input แปลงเป็น Double และชนิดของอุณหภูมิ

จากนั้นสร้าง Intent ขึ้นมา Intent เปรียบเสมือนการเปิดหน้าต่างใหม่ขึ้นมาซ้อนหน้าเดิม ในที่นี้จะให้เปิด ResultActivity ขึ้นมาเพื่อแสดงผลลัพธ์

ใช้คำสั่ง putExtra() เพื่อส่งค่าพารามิเตอร์ผลลัพธ์ที่ได้ทั้ง 3 องศาไปแสดงผลยังหน้าใหม่ที่ Intent ขึ้นมา

ผลลัพธ์ที่ได้ (Checkpoint 3)

หากไม่ป้อนค่าจะขึ้นข้อความแสดงผลลัพธ์ดังภาพที่ 1 หากป้อนตัวเลขที่ถูกจะแสดงผลลัพธ์ดังภาพที่ 2

บทสรุป Android Application

จากบทความข้างต้นจะเห็นว่าการสร้างแอพพลิเคชั่นสำหรับใช้งานบน Android นั้นไม่ใช่เรื่องยาก เพียงแต่ต้องทำความเข้าใจในส่วนของการออกแบบ GUI (Constrain Layout, Liner Layout, ฯลฯ) ที่ไม่ได้พูดถึงในนี้ ส่วน Controller ก็ใช้เป็นภาษา Java ทั่วๆ ไป อีกทั้งตัว Android Studio ยังอำนวยความสะดวกโดยการทำ Highlight Syntax, Autocomplete, Emulator และอื่นๆ อีกมาก

References

  • http://www.thaicreate.com/mobile/android-studio-ide.html