วันพฤหัสบดีที่ 25 พฤษภาคม พ.ศ. 2560

มารู้จัก ซัมมารีน (Xamarin)

Image result for xamarin logo
มารู้จัก ซัมมารีน (Xamarin)

ด้วยปัจจุบัน (พค 2017) มีแพลทฟอร์มที่เป็นที่นิยมในตลาดอยู่สองแพลทฟอร์มที่แข่งขันกันอยู่คือ iOS และ Android ซึ่งเป็นระบบปฏิบัติการสำหรับอุปกรณ์เคลื่อนที่หรือมือถือ (สมาร์ทโฟน และแทบเลท) ที่มีส่วนแบ่งทางการตลาดทั่วโลกในไตรมาศที่สี่ ของปี 2015 มากถึงร้อยละ 98.4 (รวมทั้งสองแพลทฟอร์ม)  เพิ่มมากขึ้นจากปีที่แล้วในไตรมาศเดียวกันที่ร้อยละ 96.4 จากการสำรวจของ Gartner


ตัวอย่างเช่น เมื่อเราต้องการตรวจสอบข้อมูลต่างๆ ในบัญชี เฟสบุ้ค หรือทวิตเตอร์ โดยปกติส่วนตัวแล้วก็จะกระทำผ่าน mobile app ของสื่อสังคมนั้นๆ โดยตรงแทนที่จะใช้งานผ่านเว็บไซต์ แน่นอนท่านเชื่อหรือไม่ว่า mobile application มียอดการใช้งานสูงมากกว่าการใช้งานเว็บทั่วโลก

แน่นอนเมื่อเราทราบถึงพฤติกรรมผู้บริโภคทางด้านเทคโนโลยี เช่นนี้แล้ว บริษัทหรือธุรกิจใดๆ ก็ตามที่ต้องการประชาสัมพันธ์ สินค้าหรือบริการของตนเองให้เป็นที่รู้จักในตลาด ก็จำเป็นต้องให้ความสนใจกับแนวโน้มผู้บริโภคที่เปลี่ยนไปเหล่านี้เช่นกัน รวมทั้งจะสามารถใช้เทคโนโลยีเหล่านี้ อย่างชาญฉลาดได้อย่างไร



ด้วยเหตุนี้ หากบริษัทของเราต้องการสร้างแอพพลิเคชั่นที่สามารถใช้งานได้ทั้งสามแพลทฟอร์ม ทั้ง Android, iOS และ Windows phone บริษัทก็จำเป็นต้องมีทีมงานที่มีความรู้ในการเขียนโปรแกรมทั้งสามภาษาคือ Java สำหรับ Android, Objective-C หรือ Swift สำหรับ iOS และ C# และ XAML สำหรับ Windows phone ซึ่งเป็นวิธีการที่เรียกว่า "วิธีการแบบไซโล" (Siloed approach)



บางบริษัทจึงต้องผิดหวังกับวิธีแบบนี้ อันเนื่องมาจาก ค่าใช้จ่ายสูง บริษัทเหล่านี้จึงหันไปใช้เว็บเบสแอพพลิเคชั่น ที่คุณสามารถนำโค้ดกลับมาใช้ใหม่ บนแพลทฟอร์ที่แตกต่างกัน  โดยเขียนด้วยภาษา HTML, CSS และ JavaScript (เป็นแนวคิดที่ดี หากคุณมีความรู้ในการพัฒนาเว็บมาก่อนเป็นพื้นฐาน) กล่าวคือเว็บเบสแอพ สามารถใช้ได้บนทุกแพลทฟอร์ม โดยการใช้งานผ่านเว็บเบราเซอร์
ซึ่งด้วยวิธีการเช่นนี้ ทำให้คุณสามารถได้รับประโยชน์ ต่างๆ ดังนี้
  • เขียนโค้ดเพียงครั้งเดียว หรือแบบเดียว แต่สามารถใช้งานได้บนทุกๆ อุปกรณ์
  • ประหยัดเงิน
  • แล้วอะไรคือข้อเสียของวิธีการนี้หล่ะช่วยบอกที ?

ประสิทธิภาพครับ ด้วยวิธีการนี้ประสิทธิภาพการทำงานของแอพจะลดลง (จงจำไว้ว่า เราทำงานผ่านเว็บแอพ)
แน่นอน มันไม่สามารถเข้าถึงคุณสมบัติพื้นฐานทั้งหมดของแพลทฟอร์มได้โดยง่าย
เว็บเบสเฟรมเวิร์คที่ได้รับความนิยมสูง สองเฟรมเวิร์คในปัจจุบันคือ คอร์โดว่า (Cordova) และ ไอโดนิก (Ionic)

ปัจจุบันเราพบว่ามีวิธีการใหม่ที่ทำให้เราสามารถทำใด้ทั้งสองวิธี คือ การแบ่งปันโค้ดด้วย C# และยังสามารถเข้าถึงคุณสมบัติของแอพพื้นฐานได้ด้วย Xamarin (แซมมารีน มาจากคำว่า แทมมารีน และเปลี่ยนตัวแรกเป็น X)


แล้วอะไรคือ แซมมารีน (Xamaerin)

มันเป็นเครื่องมือที่มหัศจรรย์อย่างยิ่งที่สามารถทำให้เราสามารถทำงานต่างๆ ทำให้เราสามารถเขียนแอพพลิเคชั่นสำหรับมือถือ ด้วย C# และสามารถสั่งให้มันทำงานบนแพลทฟอร์มมือถือใดๆ ได้อย่างง่ายดาย


ด้วย ส่วนติดต่อขั้นพื้นฐาน (Native UI) การเข้าถึง API พื้นฐาน (Native API) และ ประสิทธิภาพขั้นพื้นฐาน (native performance) สิ่งเหล่านี้โดยปกติคุณจะสามารถทำได้เฉพาะใน อ็อบเจ็กทีฟ ซี (Objective C), สวิฟท์ (Swift) หรือไม่ก็ จาวา (Java) ปัจจุบันคุณสามารถทำสิ่งเหล่านี้ได้ด้วย ซีชาร์ป (C#) โดยแซมมารีน (Xamarin)  
ด้วยความสามารถในการทลายกำแพงข้อจำกัดทางเทคโนโลยีนี้ จึงทำให้เกิดระบบปฏิบัติการใหม่ขึ้น
เรามาพบกับ ตระกูล Xamarin กัน  
screen-shot-2016-10-09-at-11-14-28-pm
ตอนนี้เราจะมาพิจารณากันว่า Xamarin.iOS, Xamarin.Android และ Xamarin.Forms นั้น มีความแตกต่างกันอย่างไร


Xamarin.iOS และ Xamarin.Android ซึ่งแสดงให้เห็นถึงคุณสมบัติของมันอยู่แล้วด้วยชื่อ ก็คือเป็น ทูลคิท หรือชุดเครื่องมือสำหรับการเชื่อมต่อกับผู้ใช้ หรืออินเตอร์เฟสสำหรับผู้ใช้ (UI toolkits) สำหรับการสร้างแอพ ด้วยความช่วยเหลือของ API ของแพลทฟอร์ม และ Mono .NET เฟรมเวิร์ค หากคุณตัดสินใจที่จะสร้างแอพโดยใช้ผลิตภัณฑ์ทั้งสองนี้ คุณก็จะได้รับประโยชน์คือสามารถปรับแต่งส่วนติดต่อกับผู้ใช้สำหรับแต่ละคน แต่ก็มีข้อจำกัดบางประการในการแบ่งปันโค้ด
นอกจากนี้ หากคุณเลือกที่จะสร้างแอพด้วย Xamarin.Forms คุณก็เพียงเขียนโค้ดด้วยโค้ดภาษาใดภาษาหนึ่ง จากนั้นโค้ดที่คุณเขียนขึ้นก็จะถูกแปลในขณะทำงาน (runtime) ให้ไปอยู่ในแพลทฟอร์มพื้นฐานแบบต่างๆ ด้วยวิธีการเช่นนี้ ทำให้คุณสามารถแบ่งปันโค้ดโปรแกรมของคุณได้ถึงร้อยละ 90

หากคุณสับสนว่า แล้วคุณควรจะพัฒนาแอพของคุณด้วยผลิตภัณฑ์ใด คุณสามารถพิจารณาได้จากเงื่อนไขต่อไปนี้

Xamarin.Forms นั้นเหมาะสำหรับ
  • แอพที่ต้องการ ความสามารถเฉพาะของแพลทฟอร์มเพียงเล็กน้อย 
  • แอพที่ต้องการต้องการแบ่งปันโค้ด นั้นเป็นเงื่อนไขที่มีความสำคัญมากกว่าความต้องการทางด้าน UI ที่เป็นการเฉพาะ 

ส่วนความสบายที่นักพัฒนาได้รับจาก XAML ของ Xamarin.iOS และ Xamarin.Android นั้นเหมาะสำหรับ
  • แอพที่ต้องปฎิสัมพันธ์ด้วยพฤติกรรมขั้นพื้นฐาน 
  • แอพที่ใช้ API คุณสมบัติเฉพาะของแต่ละแพลทฟอร์ม เป็นจำนวนมาก 
  • แอพที่มี UI เฉพาะ เหล่านี้เป็นความต้องการที่สำคัญมากกว่า การแบ่งปันโค้ด 

ประโยชน์ของแซมมารีน ก็คือ
  • ทำให้คุณสามารถใช้พลังความรู็ใน .NET และ  C# ที่มีอยู่ในตัวคุณให้เป็นประโยชน์ได้เป็นอย่างมาก 
  • อินเตอร์เฟสกับผู้ใช้ขั้นพื้นฐาน 
  • สามารถใช้ประสิทธิภาพขั้นพื้นฐาน 
  • สามารถแบ่งปันโค้ดโปรแกรม 



ข้อจำกัดของ (Xamarin.iOS และ Xamarin.Android):
  • ไม่ใช่การแบ่งปันแพลทฟอร์ม UI ส่วนอินเตอร์เฟสกับผู้ใช้ 
  • ด้วยผลิตภัณฑ์ทั้งสองต่อไปนี้ ทำให้คุณสามารถเขียนโค้ด UI ที่ปรับแต่งให้เหมาะสมได้เป็นอย่างมาก สำหรับแต่ละแพลทฟอร์ม อย่างไรก็ตามในขณะเวลาเดียวกัน คุณจะพบโอกาสในการแบ่งปันโค้ดได้ถึงร้อยละ 60 ดังต่อไปนี้ 


screen-shot-2016-10-11-at-9-03-32-pm

ความต้องการทางด้านฮาร์ดแวร์
หากคุณต้องการ สั่งให้โปรแกรม iOS ทำงานหรือคอมไพล์ iOS โปรแกรมโดยใช้ซัมมารีนสตูดิโอ (Xamarin studio หรือ Visual Studio) คุณจำเป็นต้องมีเครื่อง mac เพื่อใช้ในการคอมไพล์ โค้ดที่คุณพัฒนาขึ้น คุณสามารถได้รับเครื่อง mac ของตัวคุณเองได้ด้วย วิธีต่อไปนี้คือ เริ่มต้นด้วยการเชื่อมต่อกับเครือข่าย ที่คุณใช้งานอยู่ หรือคุณสามารถเช่าใช้เครื่อง mac ในคลาวด์ อาทิเช่น MacinCloud services


คุณสามารถค้นหาเงื่อนไขต่างๆ ที่ทำให้คุณรู้สึกดีด้วยการตรวจสอบ ความต้องการและการติดตั้ง  Xamarin.iOS


มีท่านใดสนใจเรื่องเกี่ยวกับ IDE บ้างหรือไม่?
และในแนวทางเดียวกัน หากคุณเป็นนักพัฒนาที่ใช้เครื่อง mac คุณจะไม่สามารถติดตั้ง Visual Studio ลงบนเครื่องของคุณได้ ถ้าเช่นนั้นแล้วเราจำเป็นต้องโยนเครื่อง mac ของเราทิ้งไปหรือไม่ แล้วการทำงานร่วมกันเป็นทีม (Team explorer) หรือ การทำวิชวลสตูดิโอ มีความสามารถเพิ่มขึ้น (Resharper using Visual Studio) หรือไม่
วิชวลสตูดิโอ (Visual Studio)
xamarin2x-yuj5jk33

เพื่อให้ได้ประโยชน์สูงสุดครบถ้วน ด้วย Team explorer หรือ Resharper ด้วย Visual Studio เป็นสิ่งแรกสำหรับคุณ

Xamarin Studio
ios-designerนักพัฒนา iOS (ios-designer)
หากคุณเป็นผู้ใช้เครื่อง mac คุณไม่สามารถติดตั้ง Visual Studio ลงบนเครื่องของคุณได้ จึงเป็นเหตุผลที่ทำไมคุณจึงต้องหันไปใช้ Xamarin Studio ที่สามารถใช้กับเครื่อง PC ส่วนบุคคลได้ด้วย ซึ่งเราแนะนำให้คุณใช้ Visual Studio หากคุณใช้เครื่องที่เป็น Windows
คุณสามารถดูวิธีการติดตั้งได้จากลิงค์ต่อไปนี้
https://developer.xamarin.com/guides/ios/getting_started/installation/

แหล่งที่มา 
https://www.codeproject.com/Articles/1173490/Introduction-to-Xamarin

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

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