Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

เลือกอะไรดีระหว่าง Native กับ Hybrid app

$
0
0

มีคำถามที่น่าสนใจในกลุ่ม Thailand Android Developer ว่า ในการพัฒนา App ระหว่าง Native กับ Hybrid app ควรเลือกใช้อะไรดี ? รวมทั้งในแง่ความต้องการของตลาดงาน รวมทั้งในแง่ความนิยมในปัจจุบันและอนาคต โดยใน comment มีการตอบที่น่าสนใจเยอะเลย ตัวอย่างเช่น
  • ดูเรื่องลักษณะของงาน และ feature ก่อนว่าต้องการอะไร
  • ต้องศึกษาทั้งสองอย่างให้เข้าใจก่อน เพื่อจะได้เลือกของที่เหมาะกับงาน
  • ดูเรื่อง performance ของระบบ
  • ถ้ามองเรื่องตลาดแรงงาน แน่นอนว่าเป็น Native และพวก Hybrid ก็แรงขึ้นมาเช่น React Native เป็นต้น
  • เวลาในการเรียนรู้ (Learning curve)

แต่ก่อนอื่นเรามาทำความรู้จักกับ Native และ Hybrid app กันก่อน

มิเช่นนั้นอาจจะเข้าใจผิดและเลือกผิดก็เป็นไปได้ Native app พัฒนาด้วยภาษาโปรแกรมที่ถูกกำหนดมาใจแต่ละ platform เลย เช่น
  • Android app พัฒนาด้วย Java, Kotlin และ C++ เป็นต้น
  • iOS app พัฒนาด้วย Objective-C และ Swift เป็นต้น
โดยปกติแล้วการพัฒนาด้วย Native นั้นจะมีประสิทธิภาพการทำงาน ทั้งการ render และ animation ที่ดีกว่า Hybrid (ถ้าเขียนดีนะ) Hybrid app เป็น app ที่จะมี Web View หรือส่วนการแสดงผล web ซึ่งจะอยู่ใน Native app ทำให้สามารถเราสามารถ run web ใน app ของเราได้ รวมทั้งยังสามารถใช้งานความสามารถต่าง ๆ ของ device ได้ ยกตัวอย่างเช่น กล้องถ่ายรูป และ GPS เป็นต้น โดยที่ Hybrid app จะสร้างส่วนการติดต่อสื่อสาร ระหว่าง Web View กับ Native ขึ้น แน่นอนว่าไม่ได้อยู่ในมาตรฐานของ iOS และ Android แต่เป็น 3-party tool/framework ที่มาครอบอีกชั้นหนึ่ง ยกตัวอย่างเช่น Codova, Ionic, NativeScript, Xamarine, PhoneGap และ React Native เป็นต้น เมื่อทำการ build Hybrid app นั้น จะทำการ compile code และแปลง code จะ web มาเป็น Native app ให้ ซึ่งมีขั้นตอนที่เยอะพอสมควรเลยนะ แต่มันทำให้เราเขียน code ครั้งเดียว แล้วได้ App ที่ทำงานได้ทั้ง Android และ iOS (ในแง่แนวคิดนะ !!)

มาลองเปรียบเทียบกันหน่อย

Native app
  • พัฒนาด้วยภาษาตาม platform นั้น ๆ
  • แยก code ตามแต่ละ platform
  • มีประสิทธิภาพการทำงานที่ดี
  • ใช้จำนวนคน และ เวลาในการพัฒนาที่สูง
  • รอบการพัฒนาจะช้า สวนทางกับค่าใช้จ่าย
Hybrid app
  • พัฒนาด้วย HTML, CSS และ JavaScript
  • Write once, Run anywhere !!
  • ใช้เวลาและค่าใช้จ่ายในการพัฒนาน้อยลง
  • รอบการพัฒนาเร็วขึ้น
  • ประสิทธิภาพการทำงานจะต่ำกว่า Native
ส่วน Hybrid app นั้นมี tool และ framework มากมาย ดังนั้นก่อนจะเลือกใช้อะไรก็ต้องศึกษา และ ลองใช้มันก่อน ว่ามีข้อดีข้อเสีย ว่ามีข้อแตกต่างกันอย่างไร ลงมือทำซะตอนนี้เลย

การพูดคุยหรือถกเถียงเรื่องของ Hybrid และ Native app

มักจะคุยเรื่องต่าง ๆ ดังนี้
  • Speed/Time to Market
  • One source code
  • Cross-platform compatibility
  • ง่ายต่อการ update
  • เรื่องของงบประมาณ
  • เรื่องของคนหรือทีมพัฒนา
เมื่อคุยสิ่งต่าง ๆ เหล่านี้ก็มักจะเอนเอียงไปยัง Hybrid app เสมอ แต่เมื่อต้องดูและรักษาระบบไปนาน ๆ จะพบว่าต้องเสียเวลามากมายไปกับ การแก้ไขเรื่องของการทำงานและใช้งาน app เช่น User Experience และ User Interface ให้ตรงตามความต้องการของผู้ใช้งาน รวมทั้งการปรับปรุงเรื่องของ performance ต่าง ๆ ส่วนทาง Native app นั้นก็มีข้อได้เปรียบ เรื่องของการเข้าถึงการทำงานของ device ต่าง ๆ ได้ง่าย เช่น กล้องถ่ายรูป, address book และ GPS เป็นต้น รวมทั้งเรื่องของความปลอดภัยต่าง ๆ อีกด้วย แต่ก็แลกมาด้วยค่าใช้จ่ายที่สูงกว่าในช่วงแรก !!

ดังนั้นก่อนจะเลือกได้นั้น

คำถามที่ต้องตอบให้ได้คือ คุณรู้และเข้าใจสิ่งต่าง ๆ เหล่านี้หรือไม่ ? และที่สำคัญเคยลงมือทำแล้วหรือไม่ ? ถ้าไม่เข้าใจ ไม่ลงมือทำ แล้วจะเอาข้อสรุปหรือการตัดสินใจมากจากไหน ? หรือว่าไปฟังเขามา ? หรือว่าเพียงไปอ่านมาก เท่านั้นเอง
ถึงอย่างไรก็ตามทั้ง Native และ Hybrid ต่างก็มีข้อดีและข้อเสียด้วยกัน ลองด้วยตัวเองก่อนนะ
ขอให้สนุกกับการ coding ครับ

ปิดท้ายด้วย Decision Tree ของการตัดสินใจที่น่าสนใจ

Reference Websties http://blog.techmagic.co/native-vs-hybrid-apps/ https://www.facebook.com/groups/thaidroiddev/permalink/1472477739499373/ https://medium.com/@ankushaggarwal/ionic-vs-react-native-3eb62f8943f8 https://developer.salesforce.com/page/Native,_HTML5,_or_Hybrid:_Understanding_Your_Mobile_Application_Development_Options

Viewing all articles
Browse latest Browse all 1997

Trending Articles