จุดเด่น ของ Hybrid application

เพราะโมบายแอปพลิเคชั่นที่เราได้ใช้งานกันอยู่ในทุกขณะในตอนนี้นั้น ถือว่าได้เข้ามาทำหน้าที่ได้อย่างสำเร็จลุล่วงและเกินกว่าที่ใครหลายคนอาจจะได้คาดการณ์เอาไว้ แต่เมื่อสิ่งนี้เข้ามาช่วยเปลี่ยนให้มนุษย์กลายเป็นบุคคลที่ก้าวล้ำเทคโนโลยีมากขึ้น นักพัฒนาก็ต้องทำงานหนักขึ้น เพื่อที่จะทำให้แอปพลิเคชั่นตอบโจทย์ความต้องการในการใช้งานมากที่สุดและครองใจผู้ใช้งาน เพื่อหวังว่าจะเกิดผลกำไรต่อเนื่องกับธุรกิจภายในอนาคต ประเภทของ Mobile application นั้นแบ่งออกได้ 2 ประเภท คือ Native Application และ Hybrid Application

จุดเด่น ของ Hybrid application

Native App

Native App คือ การพัฒนาแอพลิเคชั่นที่ใช้รูปแบบการพัฒนาและชุดคำสั่งต่าง ๆ ตามที่ผู้พัฒนาอุปกรณ์ได้จัดทำขึ้น เช่น
– iOS สำหรับ iPhone, iPad, Apple Watch จะใช้ภาษา Object C หรือ Swift โดยการพัฒนาจะต้องใช้โปรแกรม XCode
– Android จะใช้ภาษา Java และใช้โปรแกรม Android Studio ในการพัฒนา
– Window Phone ใช้ภาษา C# และใช้โปรแกรม Visual Studio ในการพัฒนา
ข้อดีของ Native App
– สามารถใช้งานชุดคำสั่งต่าง ๆ สำหรับ Platform นั้น ๆ ได้อย่างครบถ้วน
– สามารถใช้งานความสามารถของอุปกรณ์ได้เต็มประสิทธิภาพ เช่นการเรียกใช้งานกล้อง เข็มทิศ เป็นต้น
– สามารถนำขึ้นให้ผู้ใช้โหลดจาก AppStore หรือ PlayStore ได้
ข้อด้อยของ Native App
– ต้องพัฒนาแยกต่างแต่ละ Platform คือ ถ้าต้องการมี App บน iOS, Android, Window Phone จะต้องพัฒนาแยกกัน
– มีต้นทุนในการพัฒนาสูง เนื่องจากต้องใช้จำนวนคนและระยะเวลาในการพัฒนามาก
Native App เหมาะสำหรับแอพลิเคชั่นที่ต้องการใช้ความสามารถของเครื่องได้เต็มที่ ไม่ว่าจะเป็น feature ต่าง ๆ ของเครื่องหรือการจัดการบริหารจัดการหน่วยความจำอย่างมีประสิทธิภาพ เช่น การพัฒนาเกมส์ต่าง ๆ ซึ่งก็ต้องใช้ความเข้าใจถึงรูปแบบการทำงานของระบบปฏิบัติการ (OS) ของผู้ผลิตแต่ละรายที่มีความแตกต่างกัน ดังนั้นจึงต้องคำนึงถึงความต้องการต่าง ๆ ของแอพลิเคชั่นว่าคุ้มค่าที่ต้องพัฒนาแบบ Native App หรือไม่

Hybrid App คืออะไร

พอได้ยินคำว่า “Hybrid” หลายคนคงนึกถึง รถยนต์ที่สามารถเติมได้ทั้งน้ำมันและใช้ไฟฟ้าในการทำงาน เป็นแบบ 2 ระบบ ซึ่งจะบอกว่า Hybrid App ก็มีลักษณะใกล้เคียงกัน โดย Hybrid App จะใช้การพัฒนาเหมือนหรือใกล้เคียงกับ Web App คือใช้ภาษา HTML, CSS และ JavaScript ในการพัฒนา ร่วมกับ Component ที่ทำให้แอพลิเคชั่นสามารถเรียกใช้ความสามารถของฮาร์ดแวร์และระบบปฏิบัติการของอุปกรณ์ได้ เช่นกล้อง หรือเข้าถึงการจัดเก็บรูปภาพของเครื่อง และเมื่อพัฒนาเสร็จแล้วก็ยังสามารถนำไปให้ผู้ใช้โหลดจาก AppStore หรือ PlayStore ได้เหมือนกับ Native App

โดยในปัจจุบันมี Framework ในการพัฒนาแอพลิเคชั่นแบบ Hybrid App อยู่มากมาย เช่น PhoneGap, Ionic, Framework7 หรือ React Nativeข้อดีของ Hybrid App
– พัฒนาด้วยภาษา HTML, CSS และ JavaScript ทำให้ง่ายและเรียนรู้ได้อย่างรวดเร็ว
– พัฒนาครั้งเดียวสามารถใช้ได้หลาย Platform ทั้ง iOS และ Android
– ใช้ต้นทุนในการพัฒนาน้อยกว่า Native App
ข้อด้อยของ Hybrid App
– ประสิทธิภาพการทำงานจะด้อยกว่า Native App
– ในบางกรณีอาจจะใช้ความสามารถของอุปกรณ์ได้ไม่เต็มที่ เนื่องจากต้องขึ้นอยู่กับ Framework ที่เลือกในการพัฒนานั้นมี Component ที่ต้องการหรือไม่

ดังนั้น Hybrid App จึงมีจุดเด่นในเรื่องความง่ายและพัฒนาได้รวดเร็ว และ Cross-Platforms คือพัฒนาครั้งเดียวแต่สามารถนำไปติดตั้งในหลาย Platforms แต่เมื่อพูดถึงเรื่องประสิทธิภาพในการทำงาน เช่นความเร็ว หรือการเรียกใช้หรือติดต่อ feature ต่าง ๆ ของอุปกรณ์ ก็ต้องยอมรับว่าอาจจะยังด้อยกว่าแอพลิเคชั่นที่พัฒนาด้วย Native App ในบางลักษณะการทำงานอยู่ดี

จุดเด่น ของ Hybrid application

มีคำถามที่น่าสนใจในกลุ่ม 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 ของการตัดสินใจที่น่าสนใจ

จุดเด่น ของ Hybrid application

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

Tags:android,ios,mobile