เมื่อใดที่จะใช้ Xamarin.Forms vs Xamarin Native? [ปิด]


159

ฉันต้องตัดสินใจระหว่างการใช้ Xamarin.Forms vs Xamarin เพื่อพัฒนาแอพ

ฉันต้องการไปกับ Xamarin.Forms เป็นรหัส UI จะถูกแชร์เช่นกัน

ดังนั้นข้อดีและข้อเสียของการใช้ Xamarin.Forms มากกว่า Xamarin Native คืออะไร


1
ดูที่ดีและไม่ดีของ Xamarin การพัฒนามือถือสำหรับการสนทนาที่ยอดเยี่ยม ณ เดือนมกราคม 2560
โอลิเวอร์

1
บรรทัดล่าง ... เพียงไปเพื่อ Native! ฉันกำลังบอกเรื่องนี้ตามประสบการณ์ของตัวเอง ฉันเขียนแอปฟอร์มเป็น Native อีกครั้ง
Tejasvi Hegde

2
ความคิดเห็นจาก 2015 ไม่สะท้อนความเป็นจริงของแบบฟอร์ม Xamarin อีกต่อไป มันมาไกลและดูเหมือนว่าจะระเบิดหลังจาก. NET Core \ Standard สุก
Sean Anderson

คำถามนี้จะต้องเปิดใหม่ ตอนนี้มันอายุ 4 ปีและมีการพัฒนาอย่างมากภายในกรอบ Xamarin.Forms เพื่อเปิดใช้งานการพัฒนาแอพพลิเคชั่นระดับองค์กร
James Mallon

คำตอบ:


144

นอกเหนือจากคะแนนที่แสดงในเว็บไซต์ Xamarin คุณควรพิจารณา:

พื้นหลังของทีมคุณ

ทุกคนในทีมของคุณมีประสบการณ์การเขียนโค้ดก่อนหน้านี้สำหรับ Android หรือ iOS (ใช้ Java หรือ Obj-C / Swift) หรือไม่ ประสบการณ์นี้ถูกนำมาใช้ซ้ำใน Xamarin ดั้งเดิม แต่พวกเขาจะต้องเรียนรู้แพลตฟอร์มอื่นเพื่อโค้ดในแบบฟอร์ม

เช่นเดียวกันหากพวกเขาไม่รู้อะไรเกี่ยวกับ iOS / Android แต่รู้ว่า XAML บางตัว แน่นอนว่า Xamarin.Forms นั้นแตกต่างจาก WPF / Silverlight แต่การรู้ XAML ช่วยให้ฉันใช้แบบฟอร์มได้อย่างแน่นอน

ประสิทธิภาพ

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

ถึงเวลาส่งมอบ

เนื่องจากการใช้รหัสร่วมกันมีขนาดใหญ่กว่าเมื่อใช้แบบฟอร์มคุณอาจคาดหวังเวลาการส่งที่รวดเร็วขึ้น

ความซับซ้อนของแอปของคุณ

เมื่อพิจารณาถึงจุดก่อนหน้านี้การใช้แบบฟอร์มที่คุณอาจสะดุดในข้อผิดพลาดบางส่วนของการแสดง (เป็นเทคโนโลยีใหม่มากหลังจากทั้งหมด) ที่จะเป็นโมฆะเวลาที่ได้รับ พิจารณาความซับซ้อนของใบสมัครก่อนเลือก


2
ฉันจะเพิ่มสิ่งนี้หากคุณคาดหวังว่าจะมีแอพที่ดูดีคุณจะพบว่ามีอินเทอร์เฟซที่กำหนดเองจำนวนมากพร้อมรหัสพื้นเมือง Xamarin สำหรับแต่ละแพลตฟอร์ม
Roman Nazarevych

2
คำตอบและความคิดเห็นด้านบนนี้เก่าเกินไป ประสิทธิภาพการทำงานไม่ใช่ปัญหาใหญ่วันนี้ถ้าคุณเปิดใช้งาน AOT เกี่ยวกับแอพที่ดูดีในความคิดเห็นก็ไม่เป็นความจริง xamarin พัฒนารูปแบบและคุณสามารถบรรลุแอพที่ดูดีได้อย่างง่ายดาย
batmaci

แบบฟอร์ม Xamarin ไม่ได้ปรับปรุงมากนักในแง่ของการได้รับ UI ที่ดูดีได้อย่างง่ายดาย Xamarin.Shell จะทำการปรับปรุงครั้งใหญ่ในเรื่องนั้น แต่ ณ ตอนนี้ Xamarin ยังคงยากที่จะได้รับสิ่งที่น่าสนใจจากระยะไกลโดยไม่ต้องเขียนส่วนประกอบที่กำหนดเองสำหรับแต่ละแพลตฟอร์ม
Alexander

176

Xamarin.Forms

ข้อดี

  • สร้าง UI เดียวสำหรับทุกแพลตฟอร์ม
  • ใช้ส่วนประกอบพื้นฐานที่มีอยู่ในแพลตฟอร์มทั้งหมด (เช่นปุ่มฟิลด์ข้อความสปินเนอร์ ฯลฯ )
  • ไม่จำเป็นต้องเรียนรู้กรอบ UI พื้นฐานทั้งหมด
  • กระบวนการพัฒนาข้ามแพลตฟอร์มที่รวดเร็ว
  • ตัวแปลดั้งเดิมที่กำหนดเองให้ความสามารถในการปรับลักษณะที่ปรากฏและความรู้สึกของการควบคุม

จุดด้อย

  • มันยังคงเป็นกรอบใหม่และยังคงมีข้อบกพร่อง
  • โดยเฉพาะ Windows RT นั้นยังไม่เสถียร
  • บางครั้งมันช้ากว่าการเข้าถึงตัวควบคุมเนทิฟโดยตรง
  • ตัวสร้างเนทีฟแบบกำหนดเองมีขอบเขตและมีเอกสารไม่ดี

Xamarin.Android, Xamarin.iOS, Windows Phone, Windows RT

ข้อดี

  • สร้างหนึ่ง UI ต่อแพลตฟอร์ม
  • ความสามารถในการปรับคุณสมบัติและส่วนประกอบ UI เฉพาะแพลตฟอร์มได้อย่างง่ายดาย
  • ใช้ประโยชน์สูงสุดจาก UI ของคุณ

จุดด้อย

  • กระบวนการพัฒนาข้ามแพลตฟอร์มนั้นช้ากว่ามาก
  • คุณต้องเรียนรู้กรอบ UI พื้นฐานทั้งหมด
  • คุณอาจส่งผลให้มีรหัสที่ซ้ำกัน (ตามที่คุณอธิบายเกือบ UI เดียวกันในสามวิธีที่แตกต่างกันแพลตฟอร์มเฉพาะ)

นอกจากนั้น Xamarin ยังกล่าวในhttps://xamarin.com/forms :

วิธีการ Xamarin ใดที่ดีที่สุดสำหรับแอปของคุณ

Xamarin.Forms เหมาะสำหรับ:

  • แอพป้อนข้อมูล
  • ต้นแบบและการพิสูจน์แนวคิด
  • แอพที่ต้องการฟังก์ชั่นเฉพาะแพลตฟอร์มเล็กน้อย
  • แอปที่ใช้รหัสร่วมกันสำคัญกว่า UI ที่กำหนดเอง

Xamarin.iOS และ Xamarin.Android ดีที่สุดสำหรับ:

  • แอพที่ต้องการการโต้ตอบเป็นพิเศษ
  • แอพที่ออกแบบมาอย่างสวยงาม
  • แอพที่ใช้ API เฉพาะแพลตฟอร์มจำนวนมาก
  • แอปที่ UI ที่กำหนดเองมีความสำคัญมากกว่าการแชร์รหัส

เกี่ยวกับ "แอพที่ต้องการฟังก์ชั่นเฉพาะแพลตฟอร์ม" มีตัวอย่างเพื่อให้เข้าใจถึงความสามารถในการทำงานของเราที่เรากำลังพูดถึงหรือไม่?
NS.X

ฟังก์ชันการทำงานของแพลตฟอร์มเล็กน้อยหมายความว่าคุณกำลังทำการผูกข้อมูลและกฎเกณฑ์ทางธุรกิจอื่น ๆ เป็นหลักเป็นแอป การวาดภาพไม่ได้กำหนดเองมากนักหรือพยายามที่จะทำให้ทุกอย่างสมบูรณ์แบบ หากคุณโอเคกับเลย์เอาต์ทั่วไปที่ตอบสนองแล้ว Xamarin.Forms เป็นแบบที่ดี
Jason Short

คำตอบที่ดีที่สุดในความคิดของฉัน ล้างค่านี้ให้ฉัน: "Xamarin.Forms: สร้างหนึ่ง UI สำหรับทุกแพลตฟอร์ม" และ "Xamarin.iOS, Xamarin.Android: สร้างหนึ่ง UI ต่อแพลตฟอร์ม" ขอบคุณ!
Tadej

1
@Dibzmania ฉันไม่เคยบอกว่ามันเหมาะสำหรับต้นแบบและแอพพื้นฐานเท่านั้น หากคุณต้องการมีแอพ cross platform ที่มี UI เกือบเป็นเหมือนพระคัมภีร์ในแต่ละแพลตฟอร์มแล้ว Xamarin.Forms นั้นยอดเยี่ยม หากคุณต้องการมี UI ที่กำหนดเองสำหรับแต่ละแพลตฟอร์มคุณอาจไม่ได้รับประโยชน์จาก Xamarin.Forms และควรใช้ไลบรารี UI ดั้งเดิมแทน
Wosi

1
ฉันคิดว่าบทความนี้โดย Nathan Williams มีประโยชน์: arctouch.com/blog/xamarin-forms-xamarin-native
Alt-WN

44

จากเว็บไซต์ Xamarin

Xamarin.Forms เหมาะสำหรับ:

  • แอพป้อนข้อมูล
  • ต้นแบบและการพิสูจน์แนวคิด
  • แอพที่ต้องการฟังก์ชั่นเฉพาะแพลตฟอร์มเล็กน้อย
  • แอปที่ใช้รหัสร่วมกันสำคัญกว่า UI ที่กำหนดเอง

Xamarin.iOS และ Xamarin.Android ดีที่สุดสำหรับ:

  • แอพที่ต้องการการโต้ตอบเป็นพิเศษ

  • แอพที่ออกแบบมาอย่างสวยงาม

  • แอพที่ใช้ API เฉพาะแพลตฟอร์มจำนวนมาก

  • แอปที่ UI ที่กำหนดเองมีความสำคัญมากกว่าการแชร์รหัส


1
คำตอบนี้เก่า / เก่า ใช้แบบฟอร์มกับปริซึม ประสบการณ์ที่สนุกสนาน ฉันเป็นนักพัฒนาเพียงคนเดียวที่สร้างแอพพลิเคชั่นขนาดใหญ่และฉันก็ทำงานได้ดีมากและแอพของฉันก็ทำงานได้ทุกอย่าง หากคุณต้องการแอพที่ดูสวยงามมีมุมมองบุคคลที่สามมากมายเช่น Grial UI Kit (ลองชม XAML previewer สดฟรีของพวกเขา) จำไว้ว่าแบบฟอร์ม Xamarin ยังคงใช้การควบคุมดั้งเดิมตามค่าเริ่มต้น
Sean Anderson
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.