Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon อะไรคือความแตกต่างที่สำคัญระหว่างการใช้ mvvmcross กับ xamarin.forms และ xamarin native


อะไรคือความแตกต่างที่สำคัญระหว่างการใช้ mvvmcross กับ xamarin.forms และ xamarin native


เมื่อเปรียบเทียบการใช้ MVVMCROSS กับ Xamarin.Forms และ Xamarin Native ความแตกต่างที่สำคัญหลายประการเกิดขึ้นส่วนใหญ่ในแง่ของความยืดหยุ่นของ UI การแบ่งปันรหัสและวิธีการพัฒนา

UI ความยืดหยุ่นและการควบคุม

- Xamarin.Forms: เฟรมเวิร์กนี้มีเลเยอร์ UI ที่ใช้ร่วมกันข้ามแพลตฟอร์มซึ่งทำให้การพัฒนาง่ายขึ้นโดยอนุญาตให้คุณเขียนรหัส UI หนึ่งครั้งและปรับใช้ในหลายแพลตฟอร์ม อย่างไรก็ตาม UI ที่ใช้ร่วมกันนี้สามารถ จำกัด การปรับแต่งให้เป็นคุณสมบัติเฉพาะของแพลตฟอร์มซึ่งต้องการการเรนเดอร์แบบกำหนดเองสำหรับองค์ประกอบ UI ขั้นสูงเพิ่มเติม [7] [9] MVVMcross สามารถใช้กับ xamarin.forms เพื่อจัดการตรรกะทางธุรกิจและการนำทาง แต่ UI ยังคงเป็นมาตรฐานในแพลตฟอร์ม [1] [10]

- Xamarin Native: เมื่อใช้ Xamarin Native กับ MVVMcross คุณสามารถควบคุม UI ได้อย่างสมบูรณ์สำหรับแต่ละแพลตฟอร์ม สิ่งนี้ช่วยให้การใช้งาน UI เฉพาะแพลตฟอร์มเพิ่มรูปลักษณ์และความรู้สึกของแต่ละแพลตฟอร์มให้สูงสุด ในขณะที่วิธีการนี้ต้องใช้ความพยายามมากขึ้นในการพัฒนาเลเยอร์ UI แยกต่างหากสำหรับ iOS และ Android แต่ก็มีความยืดหยุ่นและการปรับแต่งมากขึ้น [7] [9]

การแบ่งปันรหัสและนำกลับมาใช้ใหม่

- xamarin.forms: ด้วย xamarin.forms คุณสามารถแบ่งปันตรรกะทางธุรกิจไม่เพียง (ผ่าน MVVMcross) แต่ยังรวมถึงรหัส UI ในแพลตฟอร์ม สิ่งนี้ทำให้การพัฒนาง่ายขึ้นและลดจำนวนรหัสที่คุณต้องการในการบำรุงรักษา อย่างไรก็ตาม UI นั้น จำกัด อยู่ที่ชุดองค์ประกอบทั่วไปที่ทำงานในทุกแพลตฟอร์ม [4] [10]

- Xamarin Native: ในการตั้งค่า Xamarin ดั้งเดิมกับ MVVMcross คุณสามารถแบ่งปันตรรกะทางธุรกิจ (ViewModels) ข้ามแพลตฟอร์ม แต่คุณต้องใช้ UI แยกต่างหากสำหรับแต่ละแพลตฟอร์ม วิธีการนี้ช่วยให้สามารถใช้รหัสซ้ำได้มากขึ้นในเลเยอร์การนำเสนอและตรรกะ UI เมื่อใช้ MVVMCROSS แต่ยังต้องใช้การพัฒนา UI เฉพาะแพลตฟอร์ม [9]

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

- Xamarin.Forms: การพัฒนาด้วย Xamarin.Forms และ MVVMcross มักเป็นที่ต้องการของนักพัฒนาโดยไม่มีประสบการณ์มือถือที่กว้างขวาง เฟรมเวิร์กจัดการกับความซับซ้อนพื้นฐานมากทำให้นักพัฒนาสามารถมุ่งเน้นไปที่ตรรกะที่ใช้ร่วมกันและ UI [4] [10]

-Xamarin Native: การพัฒนา Xamarin พื้นเมืองกับ MVVMcross มักจะได้รับความนิยมจากนักพัฒนาที่ต้องการควบคุม UI อย่างละเอียดและสะดวกสบายกับการพัฒนาเฉพาะแพลตฟอร์ม วิธีการนี้ต้องการความเชี่ยวชาญมากขึ้นในการพัฒนา iOS และ Android แต่มีความยืดหยุ่นมากขึ้นในการออกแบบและการใช้งาน UI [7] [9]

การนำทางและการผูกมัด

- Xamarin.Forms ด้วย MVVMCROSS: การนำทางใน Xamarin.Forms ด้วย MVVMCROSS ได้รับการจัดการในระดับ ViewModel ทำให้สามารถแยกข้อกังวลที่สะอาดได้ MVVMCROSS ให้ความสามารถในการผูกมัดที่เพิ่มขึ้นเช่นค่าทางเลือกแม้ว่าจะไม่มีคุณสมบัติบางอย่างเช่นคุณสมบัติต้นฉบับที่พบใน Xamarin มาตรฐานการเชื่อมโยงรูปแบบ [2] [10]

- Xamarin Native ที่มี MVVMCROSS: ในโครงการ Xamarin ดั้งเดิม MVVMCROSS จัดการการนำทางและการจับคู่ View/ViewModel เพื่อให้สามารถใช้สถาปัตยกรรม MVVM ที่สอดคล้องกันข้ามแพลตฟอร์ม การตั้งค่านี้ช่วยให้นักพัฒนาสามารถใช้ประโยชน์จากรูปแบบการนำทางเฉพาะแพลตฟอร์มในขณะที่ยังคงรักษาเลเยอร์ตรรกะทางธุรกิจที่ใช้ร่วมกัน [3] [9]

โดยสรุปในขณะที่ทั้งสองวิธีสามารถใช้ประโยชน์จาก MVVMCROSS สำหรับสถาปัตยกรรม MVVM Xamarin.Forms นำเสนอเลเยอร์ UI ที่ใช้ร่วมกันโดยมีการควบคุมคุณสมบัติ UI เฉพาะแพลตฟอร์มน้อยกว่าในขณะที่ Xamarin Native ให้การควบคุม UI อย่างเต็มที่

การอ้างอิง:
[1] https://www.mvvmcross.com/documentation/platform/xamarin.forms/xamarin-forms
[2] https://www.xamarinhelp.com/use-xamarin-forms-mvvm-framework/
[3] https://canbilgin.wordpress.com/tag/mvvmcross/
[4] https://www.mvvmcross.com/documentation/getting-started/getting-started
[5] https://www.reddit.com/r/androiddev/comments/6cseds/what_are_the_disadvantages_of_xamarin_for_android/
[6] https://canbilgin.wordpress.com/2017/03/26/xamarin-forms-application-with-mvvmcross/
[7] https://stackoverflow.com/questions/38450264/xamarin-forms-vs-xamarin-mvvmcross
[8] https://mentormate.com/blog/6-reasons-mvvmcross-speeds-xamarin-development-personalizes-ux/
[9] https://www.suneco.nl/blogs/boost-your-xamarin-native-projects-with-mvvmcross/
[10] https://visualstudiomagazine.com/articles/2018/05/08/build-a-xamarin.forms-application.aspx