ช่วงนี้มีโอกาสมาสอนการพัฒนา Android app สำหรับมือใหม่
เหมือนกับการมาแบ่งปันประสบการณ์ในการพัฒนาระบบงาน
ว่ามีสิ่งใดที่ต้องศึกษา ต้องรู้
ว่ามีสิ่งใดที่ควรศึกษา
ว่ามีสิ่งใดที่ไม่ควรทำ
เลยสรุปไว้เป็นข้อ ๆ ไว้นิดหน่อย
เผื่อจะมีประโยชน์กันบ้าง
1. ต้องรู้และเข้าใจในสิ่งที่นำมาใช้งาน นั่นคือการทำงานภายในของ Android
ตัวอย่างเช่น
จะใช้งาน Activity/Fragment ก็ต้องเข้าใจ
และจัดการ Lifecycle ของมันได้
การทำงานของ Main Thread และ Background Thread
ว่ามันทำงานอย่างไร
ว่ามันมีปัญหาอย่าง
ว่ามันมีวิธีการแก้ไขปัญหาอย่างไร
ดังนั้นเอกสารต่าง ๆ จาก Android Developer มันก็สำคัญมาก ๆ
ดังนั้นจำเป็นต้องอ่านกันบ้างนะ
แต่การจะเรียนรู้ทั้งหมด มันเป็นไปไม่ได้เลย
ดังนั้นให้เรียนรู้เท่าที่จำเป็นและเพียงพอต่อการใช้งาน สำหรับพัฒนา app
2. เริ่มต้นด้วยการไปอ่านและศึกษาจาก code ของคนอื่น
เพียงแค่การเขียนอย่างเดียวยังไม่เพียงพอ
สิ่งที่ต้องทำเพิ่มคือ ไปอ่านและศึกษาจาก code ของคนอื่น
ซึ่งมีให้ศึกษาเยอะเลย
ยกตัวอย่างเช่น Opensource Android App
จะทำให้เราเห็นรูปแบบการเขียน code
ทั้งโครงสร้างของ app
ทั้งแนวคิดต่าง ๆ
ซึ่งทำให้เราพัฒนาความสามารถได้อย่างต่อเนื่อง
3. รีดความสามารถของ IDE ที่ใช้ออกมาให้ได้เยอะ ๆ
เครื่องมือที่นำมาใช้งานนั้น เพื่อช่วยทำให้เราสะดวกและง่ายต่อการพัฒนา
IDE ก็เช่นกัน ยกตัวอย่างเช่น Android Studio
เราก็สามารถปรับแต่งค่าต่าง ๆ
และใช้ความสามารถที่มันมีมาให้เยอะ ๆ
ลองศึกษาเพิ่มเติมได้ที่ Use Android Studio like a pro
จะช่วยเพิ่ม productivity ในการพัฒนาได้อย่างมาก
4. ให้ความสำคัญต่อการเลือกโครงสร้างของระบบ
บ่อยครั้งเรามักพบว่า class ต่าง ๆ ของระบบงานนั้น
มีจำนวนบรรทัดต่อ class เยอะมาก ๆ (God class)
ซึ่งมันส่งผลต่อเวลาในการพัฒนาอย่างมาก
รวมไปถึงยากต่อการดูแลรักษา และ ทดสอบอีกด้วย
โดยโครงสร้างของระบบมีมากมาย เช่น
- MVP
- MVC
- MVVM
- VIPER
- Clean Architecture
- Redux
- Architecture Component
สามารถเริ่มได้จาก Android Architecture
อีกทั้งยังมี guildeline สำหรับการเขียน code ที่ดีอีกด้วย Android guildeline
5. ต้องทำการศึกษาแนวปฏิบัติที่ดีสำหรับการพัฒนา Android app
หลังจากที่พัฒนาระบบงานได้ดีแล้ว
สิ่งที่ต้องทำการศึกษาเพิ่มเติมคือ แนวปฏิบัติที่ดีต่าง ๆ
ว่าอะไรบ้างที่ควรทำ
ว่าอะไรบ้างที่ไม่ควรทำ
ยกตัวอย่างเช่น Better Practices in Android Development
- การใช้งาน Gradle
- การจัดการ sensitive data
- การจัดการข้อมูล JSON
- การจัดการข้อมูลผ่านระบบ network
- การระมัดระวังเรื่อง 65k method limit
- การจัดการ layout
- การใช้งาน shared preference
- การใช้งาน Leak canary สำหรับหาจุดที่ทำให้เกิด memory leak
6. จำเป็นอย่างมากที่ต้องศึกษาเรื่องการออกแบบ (UX/UI)
โดยปกติแล้วผมจะเน้นที่การเขียน code ให้ดีมากกว่า
การออกแบบ UI ที่สวยงามและใช้งานได้ง่าย
ดังนั้นสิ่งที่ยังขาดคือ เรื่องของการออกแบบ
ที่ Android developer ควรที่จะเข้าใจ
7. เริ่มเขียนชุดการทดสอบขึ้นมาเรื่อย ๆ แต่ให้เริ่มนับ 1 ก่อนนะ
สิ่งที่มักจะแนะนำคือ
อะไรที่เราทดสอบด้วยมือหรือ manual test ได้
ให้ทำการจดบันทึกไว้เพื่อนำมาทดสอบอีกครั้งให้ได้
นั่นคือการเขียนชุดของการทดสอบ หรือ automated test ไว้
เพื่อช่วยบอกว่า เราทดสอบอะไรบ้าง
เพื่อช่วยบอกว่า เราไม่ทดสอบอะไรบ้าง
เพื่อช่วยทำให้เรามีความเชื่อมั่นต่อ code ที่เขียน
ที่สำคัญ เราจะไม่ผิดซ้ำที่เดิม ๆ
8. ซื้อเครื่องดี ๆ สำหรับการพัฒนานะครับ
เพราะว่าในการพัฒนานั้น เครื่องมือต่าง ๆ มันใช้งาน resource เยอะเหลือเกิน
ทั้ง CPU และ Memory เช่น
Android Studio ก็กิน Memory ในช่วงเริ่มต้น 1 GB แล้ว
ถ้าใช้ Emulator อีกก็ 1 GB
ทางที่ดีก็ใช้มือถือจริง ๆ ดีกว่า !!
สุดท้ายแล้ว Android developer ต้องฝึกเขียนกันบ่อย ๆ
ทำทุกอย่างให้สม่ำเสมอ
นั่นคือค่อย ๆ ศึกษาทีละเรื่องในทุก ๆ วัน ถ้าเป็นไปได้
การเริ่มต้นทำบางสิ่งนั้นมันง่าย
แต่การทำสิ่งเหล่านั้นต่อไปอย่างต่อเนื่องมันยากมาก ๆ
ดังนั้นแนะนำให้ทำแบบค่อยเป็นค่อยไป