"ท้อมีไว้ให้ลิงถือ"
ถึงเวลาปรับ Baseline ของการพัฒนาแอพฯบนแอนดรอยด์
7 Jul 2014 21:21   [10238 views]

หลังจากงาน Google I/O 2014 ที่ผ่านมา ทำให้ส่วนตัวแล้ว เรามีโอกาสได้เปลี่ยนแปลง "ครั้งใหญ่" ในหลายๆเรื่องของการพัฒนาแอพฯบนแอนดรอยด์ เลยเอามาแชร์ให้ทุกคนได้อ่านกัน เผื่อจะมีประโยชน์ครับ

สลับมาใช้ Android Studio อย่างเป็นทางการ

ก่อนหน้านี้ Android Studio ยังเป็น Preview Version อยู่ บั๊กเต็ม ปัญหาตูม ต้องคอยแก้เป็นครั้งๆไป ถึงจะพอทนฝืนใช้ได้ด้วยความชิน แต่ก็ยังรู้สึกอึดอัดและไม่มั่นใจเพียงพอที่จะแนะนำให้คนอื่นใช้

แต่จากงาน Google I/O ที่ผ่านมา ทางทีมแอนดรอยด์ก็ได้ปล่อย Android Studio Beta ออกมาแล้ว ปรับเวอร์ชั่นเป็น 0.8.0 (และ 0.8.1 ในอีกวันถัดไป)

หลังจากได้ลองแล้วต้องบอกว่า "มันสมบูรณ์เพียงพอแล้ว" และ "มันดีกว่า Eclipse + ADT ในเกือบทุกด้านแล้ว" และ มีค่าเพียงพอที่จะเลิกใช้ Eclipse + ADT แล้วสลับไปใช้ Android Studio อย่างเป็นทางการนับแต่นี้เป็นต้นไป

ตอนนี้เราก็เลยเปลี่ยนไปใช้ Android Studio เป็นการถาวรละ และแอบแนะนำให้ทุกท่านที่ใช้ Eclipse อยู่ สลับมาใช้ Android Studio ด้วยแหละ

แต่สำหรับคนที่จะสลับมาใช้ Android Studio ต้องทำความเข้าใจอะไรหลายๆอย่างก่อน เพราะ Android Studio เปลี่ยนตัว Build ไปใช้ Gradle และมีระบบ Dependency ที่ ADT ไม่มี แนะนำให้เริ่มต้นด้วยการ New Project บน Android Studio มาลองทำอะไรเล่นๆสักวันสองวันก่อน จนเข้าใจระบบ Gradle และ Dependency เรียบร้อย นอกจากนั้น โครงสร้างไฟล์ก็เปลี่ยนไปอีกด้วย ทำให้ Project มีความเป็นโปรเจคมากขึ้น ไม่ import อะไรมั่วซั่วอีกต่อไป โครงสร้างโค้ดสวยงามขึ้นมาก

วิธีการย้ายโปรเจคจาก Eclipse ไป Android Studio ก็มีอยู่ ใน Eclipse จะมีเมนูสำหรับ Export ไปเป็น gradle project ก็จัดการ Export ซะ แล้วลอง Import เข้า Android Studio ดูครับ =)

ปรับเวอร์ชั่น OS ที่สนับสนุนขั้นต่ำเป็น 4.0 (ICS)

ก่อนหน้านี้เวลาใครถามว่า "เราควรจะทำให้แอพฯสนับสนุนแอนดรอยด์เวอร์ชั่นต่ำสุดเวอร์ชั่นไหน?" เราก็จะตอบว่า "2.3.3" มาโดยตลอด

ทั้งนี้ทั้งนั้นเพราะในปีที่แล้ว Market Share ของ 2.3.3 นั้นสูงมาก จนทำให้แอพฯที่ไม่สนับสนุนเวอร์ชั่นนี้ต้องเสียโอกาสงามๆในการเติบโตไป

แต่ตอนนี้สถิติใหม่ได้ออกมาแล้วว่าเวอร์ชั่นที่ต่ำกว่า 4.0 นั้นหดต่ำลงเหลือ 15% แล้ว

ดังนั้นเราก็เลยเปลี่ยนฐานเวอร์ชั่นแอนดรอยด์จาก 2.3.3 เป็น 4.0 (API Level 14) เป็นที่เรียบร้อย เพราะ 15% ที่เหลืออยู่ของ 2.x นั้น เป็นแค่ตัวเลขที่ไม่มีมูลค่าอะไร เนื่องจากเครื่องที่เหลืออยู่ส่วนใหญ่เป็นเครื่องที่ไม่ใช่เป็น Smartphone อยู่แล้ว

ประโยชน์ของการปรับฐานจาก 2.3.3 เป็น 4.0 จะทำให้การเขียนโปรแกรมทำได้ง่ายขึ้น ดีลกับ Fragmentation ทางด้าน API ได้ง่ายขึ้นอีกด้วย

อันนี้แล้วแต่มุมมองของแต่ละคนครับ ถ้ายังคิดว่า 2.3.x สำคัญอยู่ ก็สามารถทำให้สนับสนุน 2.3.x ต่อไปได้

ใช้ Fragment เป็นโครงของทุก Activity

ก่อนหน้านี้ไม่ค่อยทำให้แอพฯใช้บน Tablet ได้เท่าไหร่ ก็เลยใช้ Activity ดิบๆเป็นหลัก ส่วน Fragment เอาไว้ใช้ในเชิงเทคนิคเป็นชิ้นๆไปเสียมากกว่า

แต่นับจากนี้เป็นต้นไป เราเลือกที่จะฝัง Fragment ไว้บนทุก Activity ถึงแม้ Activity นั้นจะมีแค่ Fragment เดียวก็ตาม

สาเหตุมีอยู่สองอย่างคือ

1) ลอจิคการเขียนแบบ Activity เพียว กับการเขียนด้วย Fragment ค่อนข้างต่างกัน หากเขียนด้วย Activity เพียว แล้วจะเปลี่ยนมาใช้ Fragment ตอนหลัง จะทำค่อนข้างยาก ต้อง Organize พวกตัวแปรใหม่หมดเลย (เพราะ Fragment แต่ละตัวต้อง Independent ซึ่งกันและกัน ในขณะที่ Activity มีตัวเดียว ใช้ตัวแปรร่วมกันได้เลย) และตอนนี้ Fragment ก็เป็นวิธีที่ดีที่สุดที่จัดการ UI ที่แตกต่างกันของ Single-pane Layout บน Mobile และ Multi-pane Layout บน Tablet หากตอนแรกคิดว่าจะทำแค่บน Mobile อย่างเดียว แล้วเพิ่งมาอยากทำให้สนับสนุน UI สำหรับ Tablet ด้วย แล้วมาเปลี่ยนเป็น Fragment ทีหลังนี่ ถือว่านรกเลยนะ

2) Component ที่ออกมาในพักหลัง ล้วนแล้วแต่เป็น Fragment Base ทั้งสิ้น อนาคตของแอนดรอยด์ชี้ชัดแล้วว่าจะไปทาง Fragment แน่นอน ไม่ใช่เฉพาะบนมือถือ แต่รวมทั้งบน Wear, TV และ Auto อีกด้วย ดังนั้นควรเปลี่ยนนิสัยการเขียนให้ไปใช้ Fragment เป็นโครงเลยจะดีครับ

อันนี้แล้วแต่มุมมองของแต่ละคนเช่นกันครับ เป็นแค่คำแนะนำ เพราะสุดท้ายก็ขึ้นอยู่กับการดีไซน์และ Demand หากคิดว่า Activity เพียวๆพอก็อาจจะโอเคสำหรับโปรเจคนั้นๆครับ =)

ก็ถือเป็นการจดโน้ตอ่าโนะ หวังว่าจะมีประโยชน์ละกันนะครับ

ทั้งนี้ทั้งนั้น ทั้งหมดนี้ก็เพื่อเตรียมการสอนคอร์ส Android Programming ที่กำลังจะเปิดเร็วๆนี้ด้วย ไว้คอยติดตามกันครับ ได้สถานที่เรียบร้อยแล้ว มั๊วะะะ ^_^

บทความที่เกี่ยวข้อง

Jul 16, 2014, 10:44
13752 views
รู้สึกตัวอีกที ทุกอย่างของฉันก็อยู่บน Cloud
Jul 7, 2014, 21:21
10238 views
ถึงเวลาปรับ Baseline ของการพัฒนาแอพฯบนแอนดรอยด์
0 Comment(s)
Loading