ในการพัฒนา Mobile app นั้นแตกต่างจาก Web app และ Desktop app มากมาย
แต่กลับพบสิ่งที่ผิดพลาดสำหรับการพัฒนา Mobile app มากมาย
เนื่องจากยังใช้แนวคิดจากการพัฒนาระบบอื่น ๆ มาใช้
จึงทำการสรุปสิ่งที่ผิดพลาดไว้นิดหน่อย

1. Mobile ทุกชนิดต้องแสดงผลและใช้งานเหมือนกันหมด

ตัวอย่างเช่น Mobile app ที่ทำงานบน Android และ iPhone
จะต้องมีหน้าตา app ที่เหมือนกัน
จะต้องแสดงผลเหมือนกัน
จะต้องใช้งานเหมือนกัน
เป็นสิ่งที่มักพบบ่อยมาก ๆ
ทั้ง ๆ ที่แต่ละ plateform ล้วนแตกต่างกัน
ทั้งการออกแบบ
ทั้งการใช้งาน
ทั้งมาตรฐานต่าง ๆ

ดังนั้นสิ่งที่ควรทำคือ ออกแบบ app
ให้ตรงตาม platform เพื่อให้ผู้ใช้งานไม่สับสน
เช่น Android ก็ต้องยึดตาม Material Design เป็นต้น

2. ออกแบบโดยคิดว่า ผู้ใช้งานมี mouse และ keyboard

เป็นสิ่งที่พบได้เยอะมาก ๆ สำหรับ Mobile app
เนื่องจากผู้ออกแบบไม่ได้สนใจโลกเลยนอกจากตัวเอง
คิดว่า Mobile app นั้นผู้ใช้งานจะใช้ mouse และ keyboard
ดังนั้นจึงออกแบบหน้าจอที่มีแบบ form เยอะ ๆ
กรอกข้อมูลเยอะ ๆ
element ต่าง ๆ บนหน้าจอก็มีขนาดเล็ก
สรุปคือ ใช้งานยากมาก ๆ
หนักกว่านั้นใช้ webview กันเลยทีเดียว

ดังนั้นควรออกแบบโดยคำนึงถึงผู้ใช้งานเยอะ ๆ นะ

3. Mobile app ต้องสามารถทำงานบน device ต่าง ๆ ได้

ในแต่ละ device จะมี version ของ OS ที่แตกต่างกัน
ยิ่งนานไปจำนวน device และ version ของ OS ยิ่งมีมากขึ้น
ดังนั้นการพัฒนา Mobile app ให้ทำงานได้ทุก device
เป็นเรื่องที่ยากมาก ๆ
เป็นเรื่องที่ทำให้ code ของระบบมีความซับซ้อนอย่างมาก
ยกตัวอย่างเช่น
Android มี device ทั้งโลกเป็นหมื่น ๆ device
Android มี version ของ OS เยอะมาก ๆ

ดังนั้นสิ่งที่ต้องทำคือ ต้องรู้ด้วยว่าผู้ใช้งาน app ของเราคือใคร
ใช้ device อะไรบ้าง ?
ใช้ OS version อะไรบ้าง ?

ถ้า device หรือ OS version อะไรที่มีการใช้งานต่ำ ๆ
ก็ควรจะตัดใจ หรือ ไม่สนับสนุนซะ
อย่าเสียเวลาไปดูแลเลย
มิฉะนั้น จะทำให้ Mobile app ของคุณมี bug เยอะมาก ๆ
เนื่องจาก code ซับซ้อน
เนื่องจากการทดสอบย่อมไม่ครอบคลุมอย่างแน่นอน
ดังนั้นจงเลือก จงตัด แล้วชีวิตการพัฒนาจะดีขึ้น

4. ไม่สนใจขนาดของ Network bandwidth เลย

เคยไหม
ในการทดสอบจะใช้งาน Mobile app ผ่าน WIFI, 3G/4G หรือ Network ของบริษัท
ซึ่งมีความเร็วสูงมาก ๆ

แต่กลับลืมไปว่า
ผู้ใช้งาน Mobile app ที่อยู่ในพื้นที่ที่มีระบบ Network ช้า ๆ
จะสามารถใช้งาน Mobile app ได้หรือไม่ ?
จะสามารถแสดงผลข้อมูลได้หรือไม่ เช่น รูปภาพ (มีขนาดที่เหมาะสมในแต่ละ Network หรือไม่)

ดังนั้นแนะนำให้ทำการทดสอบใช้งาน Mobile app
ใน Network ที่มีความเร็วที่แตกต่างกันด้วยนะครับ
เพื่อตรวจสอบว่า Mobile app ทำงานได้ดีหรือไม่ ?

5. Mobile app ของเรานั้นกินแบตเตอรี่เยอะหรือไม่ ?

สิ่งที่อาจจะทำให้ผู้ใช้งานลบ Mobile app ออกไปนั่นก็คือ
App นั้น ๆ กินแบตเตอรี่มาก ๆ
ดังนั้นนักพัฒนาต้องทำการตรวจสอบเสมอว่า
มี process อะไรที่ใช้งานแบตเตอรี่เยอะ ๆ บ้าง
เช่น background process

6. การพัฒนา Mobile app ควรนำแนวคิด Asynchronous มาใช้เสมอนะ

หมายความว่า
ให้ทำการแยกงานระหว่าง สิ่งที่ผู้ใช้งานมองเห็นและมองไม่เห็นออกจากกัน
ถ้าทำงานร่วมกันต้องทำงานแบบ Asynchronous เสมอ

ยกตัวอย่างเช่น
เมื่อผู้ใช้งานเข้ามาใช้งาน Mobile app
จากนั้น Mobile app จะทำการเรียกใช้งาน API
เพื่อดึงข้อมูลมาแสดงผล
ถ้าส่วนการแสดงผลทำงานกับส่วน API แบบ Synchronous แล้ว
ถ้าส่วน API มีปัญหาเช่น ไม่สามารถติดต่อได้ หรือ ใช้เวลานานมาก ๆ ในการดึงข้อมูล
ผลที่ตามมาก็คือ ส่วนการแสดงผลต้องรอ
หรืออาจส่งผลให้ Mobile app พังหรือหยุดทำงานได้

ดังนั้นเพื่อลดปัญหาดังกล่าว
แนะนำให้นำแนวคิดของ Asynchronous มาใช้ในการพัฒนาซะ

ปล.
ถ้าทำการพัฒนาด้วยแนวคิดของ Asynchronous แล้ว
ช่วยคิดแบบ Asynchronous ด้วยนะครับ

วันนี้เราพลาดอะไรกันบ้างสำหรับการพัฒนา Mobile app
อย่าลืมแก้ไขและปรับปรุง
อย่าลืมทดสอบกันเยอะ ๆ นะครับ