วันพุธที่ 21 พฤษภาคม พ.ศ. 2557

แนวทางการพัฒนา Application Mobile



สำหรับแนวทางในการพัฒนา Appplication Mobile มีแนวทางที่ ตอนนี้ กำลังฮิตอยู่ 2 แนวทางคือ Native และ HTML5 จากประสบการณ์ของผมที่ผ่านมา ในการพัฒนาผมจึงเขียนเปรียบเทียบให้เห็นถึงข้อดีและข้อเสีย ของแต่ละแนวทางให้เห็นกัน

เปรียบเทียบ Native VS Html5
Topic
HTML5
Native
ความเร็วในการแสดงผล

Y
ความเร็วในการพัฒนา
Y

Reuse Code
Y

ความซับซ้อนในการพัฒนา
Y

Tool ในการพัฒนา
DRAW
DRAW
การจัดการหน้าจอ
Y

SQLite

Y
Thread Programming

Y
Design หน้าจอ
Y


ปัจจัยที่ทำให้ประมวลผลช้าในการพัฒนาด้วย HTML5

  1.  ขนาดของ HTML ยิ่งมีขนาดใหญ่จะทำให้ App ช้าลง เพราะต้องโหลดมากขึ้น
  2. การ Include javascript,css ที่ไม่จำเป็น จะมีผลกับการประมวลผลของ App มาก
  3. ความเร็วของอินเตอร์เน็ต


สรุป
ถ้าการพัฒนา Application บน Mobile นั้นสะดวกสุด ตัวเลือกคือ HTML5 เนื่องจากเหตุผลว่า การพัฒนาที่ง่ายและการ Reuse Code ทำให้เหมาะกับการพัฒนา Application Cross Plat form ที่สามารถใช้ได้ทั้ง Windows,IOS,Android  และการดีไซน์หน้าจอที่ใช้ HTML +CSS ทำให้การทดสอบและออกแบบหน้าจอไม่ได้ซับซ้อน

อธิบายเพิ่มเติม
สำหรับการพัฒนา Application บน Mobile โดยใช้รูปแบบของ Native Application จะมีข้อเสียสำคัญดังนี้

  1. ความซับซ้อนในการพัฒนาและการจัดการหน้าจอแสดงผล  ด้วยการเขียนโค้ดที่พึ่งพาภาษา Java และ Tool Eclipse ที่มีความยืดหยุ่นและหลากหลาย  Eclipse มีความฉลาดน้อย ทำให้การพัฒนาต้องพึ่งนักพัฒนาที่มีความเชี่ยวชาญในการวาง Pattern อย่างดี เพื่อให้ความง่ายและเป็นระเบียบในการพัฒนา
  2.  การดีไซน์หน้าจอที่ ยุ่งยากเกินไป และต้องทำถึงสองครั้ง โดยการทำแบบ Portrait และ Landscape ขณะที่ HTML5 จะมีโค้ดที่ Responsive ที่สามารถใช้ได้ไม่ว่าจะเป็นหน้าจอขนาดไหน
  3. การต้องหา Component สำหรับแสดงผล เช่นการแสดง กราฟ แสดงผลที่ไม่มี Support จำเป็นต้อง หาเป็น Open source เข้ามา

ข้อดีของ Native
1)      การทำ Thread Programming และการแสดงผลที่เร็ว ในการแสดงแต่ละหน้า Page ทำให้ เหมาะกับการพัฒนา Application ขนาดใหญ่ ที่มีการประมวลผล จำนวนมาก
2)      การติดต่อฐานข้อมูลและการทำ Backgroud Process โดย Native App จะมีการใช้ SQLite รองรับเต็มมรูปแบบ แต่ส่วนของ HTML5 ยังไม่มีการเปิดใช้เต็มรูปแบบทำให้หลีกเลียงไปใช้ WebStorage ประเภท LocalStroage แทนแต่ว่าก็ยังทดแทนได้ไม่เต็มที่นัก

สำหรับการพัฒนาด้วย HTML5 จะมีข้อเสียดังนี้
1)      ไม่เหมาะกับ App ที่ต้องมีการประมวลผลข้อมูลจำนวนมากๆ เนื่องจาก การประมวลผลของ Javascript ไปยัง Server จะช้ากว่าของ Native ทำให้การใช้ข้อมูลจำนวนมากๆ ยกตัวอย่างเช่นการทำแอพพลิเคชั่น Social Network ขนาดใหญ่อย่าง Facebook จึงไม่เหมาะ เพราะการทำ Thread แบ่ง Thread ใน HTML5 นั้นทำได้ยาก ขณะเดียวกันใน Native กับทำด้านนี้ได้ดีกว่า
2)      ไม่มีฐานข้อมูลรองรับ ต้องพึ่งพา WebStorage เป็นหลัก
3)      มาตรฐาน HTML5 ยังไม่สมบูรณ์
4)      ต้องพึ่งการ Compile จาก Phonegap อีกที ทำให้การแสดงผลช้ากว่าของ Native
5)      การทดสอบ Debugger ทำไม่ได้ง่ายๆ
ข้อดีของ HTML5
1)      ความยืดหยุ่นในการพัฒนา โดยการยืดหยุ่นสูง ทำให้สามารถ Cross-Platform ได้ง่ายและด้วยมาตรฐาน HTML5+Javascript+CSS ที่โปรแกรมเมอร์หลายคนในไทยมีความรู้ความเข้าใจทำให้แก้ไขและต่อยอดได้ง่าย
2)      ระยะเวลาในการพัฒนาเร็วกว่าของ Native
3)      การจัดการหน้าจอด้วยแท๊ก HTML5 ทำให้การพัฒนาง่ายและเร็ว พร้อมกับมี Concept Responsive ที่เขียนทีเดียวสามารถใช้ได้ทั้งหน้าจอแบบ Portrait และ Landscape เลย
4)      Component ของทาง JQuery มีมาก ทำให้การค้นหา Tool ไม่ยุ่งยาก
5)      ไม่ต้องใช้ความรู้ในการพัฒนาสูง สามารถแยกงานกันทำได้โดยแยกเป็นส่วนของ Service และ Client ได้ ในส่วนของ Client ถ้ามีการใช้ concept MVVM ก็จะทำให้การแสดงผลง่ายขึ้นอีก และ Service ก็ไม่ต้องใช้ผู้ชำนาญมาก

การ Connect Server
Native App และ HTML5 สามารถ Connect ได้โดยการ Connect ผ่าน RESTful  เซอร์วิสที่ ต้องมี Server ไว้ประมวลผล ทั้งนี้การพัฒนา Native App จะได้ประสิทธิภาพมากกว่าเพราะ ผู้ขียนส่วนใหญ่มักจะสร้าง Database SQLite ไว้ที่ App ทำใหเวลาใช้ App จะไม่ได้ connect กับทาง Server เพื่อแสดงผลตลอดทุกครั้งแต่จะมีการแบ่งโดย Connect เข้าสู่ SQLite เพื่อแสดงผล จากนั้นจะทำการประมวลผลเบื้องหลังโดยการ Connect กับทาง Server ผ่าน Process อีกทางเพื่อ Synchronize ข้อมูลเข้าสู่ฐานข้อมูล SQLite ทำให้การแสดงผล นั้นจะเร็วกว่า

ไม่มีความคิดเห็น:

แสดงความคิดเห็น