นักพัฒนา Android App มักพบเจอปัญหาใหญ่ๆ 8 ข้อ (ตอนที่ 2)

จากบทความครั้งก่อน เราได้รู้จักปัญหา ของการพัฒนา App Android ไปแล้ว4ข้อนั้นคือ
1. ไม่มีความเข้าใจเรื่องของ Fragmentation ใน Android 2. ไม่มีความรู้ด้านหลักการออกแบบ Android ที่ดี
3. CPU ของ Android
4. การจัดการ Memory ใน Android

วันนี้เราจะมาพูดถึงข้อต่อไปนั้นก็คือ

5. นักพัฒนา ไม่เข้าใจถึง Life Cycle ของ Activity ในระบบ Android Activity คือ ส่วนที่ใช้แสดงผลต่างๆเพื่อให้ User ได้เห็นภาพ เปรียบเสมือน แผ่นกระดาษเปล่าๆ ที่รอให้นักพัฒนามาวาดอะไรใส่ลงไป เอ๊ะ แล้วมันทำงานยังไงกันนะ

รูปภาพจาก http://developer.android.com/training/basics/activity-lifecycle/starting.html#lifecycle-states
ในขณะที่เราเริ่มทำงาน Application ตัว method onCreate() จะเริ่มทำการ สร้าง Activity เมื่อทำจนกระบวนการสร้าง method onStart() ก็จะเริ่มสั่งให้ Activity ทำงาน และmethod onResume() เพื่อทำการโต้ตอบกับผู้ใช้ หากมีActivityอื่น interrupt เข้ามา หรือผู้ใช้ทำการกด ปุ่ม back หรือ กด ปุ่ม Home method onPause() จะทำงานเพื่อ หยุดสถานการทำงานของ application เมื่อ Activity ที่ทำการ interrupt ทำงานเสร็จ หรือผู้ใช้งานกลับเข้ามาสู่ Application method onResume() จะกลับมาปลุกให้ Application ทำงานต่อทันที ถ้าหาก Activity ถูก pause นานจนเกินไป method onStop() จะย้ายการทำงานของActivityนั้นไปอยู่ส่วนของ background ส่วน onDestroy() จะทำงานเพื่อปิดและทำลาย Activity ทิ้ง

6. ไม่เขียน Handle Exception หรือไม่สนใจ Case ที่ fail ก่อนอื่น ควรต้องแยกให้ออกก่อนระหว่าง Error กับ Exception
Error เป็นข้อผิดพลาดที่ไม่สามารถแก้ไขและจัดการได้ เช่น VirtualMachineError,OutOfMemoryError

Exception เป็นข้อผิดพลาดที่สามารถแก้ไขหรือจัดการได้ เช่น ArrayIndexOutOfBoundsException, FileNotFoundException

แล้วยังไง เกิดข้อผิดพลาดมันก็เป็นเรื่องปกตินี้??

มันก็ใช่นะ แต่ถ้ามีข้อผิดพลาดบ่อยๆจนถึงขั้น Crash ละ ใครจะอยากใช้ App แบบนั้นกัน?

พี่นู๋เนยได้กล่าวไว้ว่า

หากมีการ Crash ของแอพฯติดต่อกัน 3 ครั้ง จะมีผู้ใช้ถึงประมาณครึ่งหนึ่ง ตัดสินใจลบแอพฯนั้นๆทิ้งไปเลย

เพราะงั้น ใส่ใจกับเรื่อง Handle Exception และ Case ที่ fail ทุกครั้งที่เขียน app ขึ้นมา ก่อนที่มันจะไปถึงมือผู้ใช้งานจริงกันเถอะนะ ก่อนที่จะไม่มี ผู้ใช้งาน app คุณอีกเลย

7. ไม่ใส่ใจเรื่องของ UX คงไม่มี ผู้ใช้งานคนไหนหรอก ที่จะชอบใช้อะไรที่มันดูวุ่นวาย หลายขั้นตอน ผู้ใช้งานส่วนใหญ่มักจะชอบอะไรที่เรียบง่าย กด2–3ที สามารถจบการทำงานที่ตนเองต้องการได้เลย

แล้วทำยังไงละ ถึงจะออกแบบให้ง่ายๆ ไม่วุ่นวาย?
ปัญหาข้อนี้ ผมอยากจะแนะนำให้ท่านลองหาหนังสือ “don’t make me think” ของ Steve Krug ดู หากท่านอ่านและทำความเข้าใจ จะช่วยให้ท่าน ลดปัญหาข้อนี้ไปได้ในระดับนึง

แต่ถ้าท่านไม่ว่างจะศึกษาเรื่องนี้… แนะนำว่า ให้ท่านจ้าง Designer ดีๆสักคนมาออกแบบเถอะครับ

8. จ้าง Programmer ออกแบบ UI เป็นปัญหาที่พบบ่อยมาก วิธีแก้คงไม่มีทางอื่น… จ้าง Designer มาทำงานส่วนนี้เถอะครับ แล้วให้เหล่า Programmer นั่งทำงานอื่นๆ ที่มีประโยชน์ และมีมูลค่า มากกว่าออกแบบ UI เลย เพราะมันยากมาก ที่จะทำให้ออกมาสวยงาม

ลองมองย้อนกลับดูตัวเองครับ ว่าปัญหาจริงๆ คือ”มันยากที่จะเข้าใจ” หรือ เรา”ไม่เข้าใจถึงพื้นฐาน”สิ่งเหล่านั้นกันแน่
One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.