ช่วงนี้มีโอกาสมาสอนการพัฒนา 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 ต้องฝึกเขียนกันบ่อย ๆ

ทำทุกอย่างให้สม่ำเสมอ
นั่นคือค่อย ๆ ศึกษาทีละเรื่องในทุก ๆ วัน ถ้าเป็นไปได้

การเริ่มต้นทำบางสิ่งนั้นมันง่าย
แต่การทำสิ่งเหล่านั้นต่อไปอย่างต่อเนื่องมันยากมาก ๆ
ดังนั้นแนะนำให้ทำแบบค่อยเป็นค่อยไป