MVVMCROSS เป็นเฟรมเวิร์กยอดนิยมสำหรับการพัฒนามือถือข้ามแพลตฟอร์มโดยใช้ Xamarin ช่วยให้นักพัฒนาสามารถใช้ประโยชน์จากรูปแบบ MVVM ทั่ว Android, iOS และแพลตฟอร์มอื่น ๆ อย่างไรก็ตามแม้จะมีประโยชน์ แต่ก็มีข้อเสียหลายประการที่ต้องพิจารณาเมื่อใช้ MVVMCROSS สำหรับแอปพลิเคชัน Android และ iOS:
1. ความซับซ้อนและเส้นโค้งการเรียนรู้: MVVMCROSS เป็นกรอบขนาดใหญ่ที่ต้องใช้เวลาในการเข้าใจอย่างเต็มที่ นักพัฒนาใหม่อาจพบว่ามันท้าทายที่จะเข้าใจพื้นฐานของมันเช่นวิธีการถ่ายโอนบริบทข้อมูลระหว่างส่วนประกอบ [1] ความซับซ้อนนี้สามารถนำไปสู่ช่วงการเรียนรู้ที่ชันกว่าเมื่อเทียบกับกรอบที่ง่ายกว่า
2. ปัญหาด้านประสิทธิภาพ: ผู้ใช้บางคนรายงานปัญหาด้านประสิทธิภาพเช่นเวลาเริ่มต้นช้าและความล่าช้าในการเชื่อมโยง ListView ปัญหาเหล่านี้สามารถนำมาประกอบกับ MVVMCROSS, Xamarin หรือแพลตฟอร์ม Android เองทำให้ยากที่จะระบุสาเหตุที่แน่นอนโดยไม่ต้องมีประสิทธิภาพการทำงาน [1]
3. ข้อความแสดงข้อผิดพลาดและการดีบัก: ข้อความแสดงข้อผิดพลาดของเฟรมเวิร์กอาจเป็นข้อมูลมากขึ้น แทนที่จะเป็นเพียงการรายงานข้อผิดพลาดพวกเขาสามารถแนะนำวิธีแก้ปัญหาที่อาจเกิดขึ้นซึ่งจะช่วยในการดีบักและการพัฒนาที่รวดเร็วยิ่งขึ้น [1]
4. ความสามารถในการนำกลับมาใช้ใหม่และการทดสอบ: ในขณะที่ MVVMCROSS มีจุดมุ่งหมายเพื่อปรับปรุงความสามารถในการทดสอบโดยการแยกตรรกะทางธุรกิจออกจากมุมมองในทางปฏิบัติรูปแบบการดูอาจกลายเป็นป่องและยากต่อการทดสอบ นี่เป็นเรื่องจริงโดยเฉพาะอย่างยิ่งหากพวกเขาจัดการกับความรับผิดชอบหลายอย่างและรักษาสถานะภายในทำให้ยากที่จะทดสอบวิธีการอย่างอิสระ [2] นอกจากนี้โมเดลมุมมองมักจะไม่สามารถใช้งานได้ในคอนโทรลเลอร์มุมมองที่แตกต่างกันเนื่องจากการใช้งานเฉพาะ [2]
5. ความท้าทายเฉพาะแพลตฟอร์ม: บน Android การกระจายตัวและ Java Stack สามารถก่อให้เกิดความท้าทายเพิ่มเติมได้ ตัวอย่างเช่นการใช้ภาพ Intel Android X86 ในอีมูเลเตอร์สามารถนำไปสู่การเล่นโวหารเช่นการบันทึกหรือปัญหาเครือข่ายมากเกินไป [1] บน iOS การขาดการผูกในตัวสามารถทำให้การใช้งาน MVVM ซับซ้อนขึ้นซึ่งนำไปสู่การพึ่งพาตัวควบคุมมุมมองหรือแบบจำลองสำหรับงานที่ไม่ควรจัดการ [2]
6. เอกสารและบทเรียนที่ล้าสมัย: มีข้อกังวลเกี่ยวกับบทเรียนและเอกสารที่ล้าสมัยสำหรับ MVVMcross สิ่งนี้สามารถทำให้เป็นเรื่องยากสำหรับนักพัฒนาใหม่ที่จะเริ่มต้นหรือติดตามการเปลี่ยนแปลงในกรอบ [5]
7. การยืนยาวและการสนับสนุน: คำถามเกี่ยวกับการเติบโตของเฟรมเวิร์กและอายุการใช้งานที่ยืนยาวได้รับการยกขึ้นโดยเฉพาะอย่างยิ่งในบริบทของเทคโนโลยีมือถือที่พัฒนาอย่างรวดเร็ว สิ่งนี้สามารถส่งผลกระทบต่อการตัดสินใจว่าจะใช้ MVVMcross สำหรับโครงการเชิงพาณิชย์หรือไม่ [5]
โดยรวมในขณะที่ MVVMcross มีข้อได้เปรียบที่สำคัญในการพัฒนาข้ามแพลตฟอร์มความซับซ้อนปัญหาประสิทธิภาพและความท้าทายเฉพาะแพลตฟอร์มจำเป็นต้องพิจารณาอย่างรอบคอบเมื่อตัดสินใจว่าจะใช้มันสำหรับแอปพลิเคชัน Android และ iOS หรือไม่
การอ้างอิง:[1] https://blog.rthand.com/a-week-of-impressions-of-developing-for-android-using-xamarin-mvvmcross/
[2] https://www.danielhall.io/the-problems-with-mvvm-on-ios
[3] https://www.mvvmcross.com/documentation/upgrading/upgrade-to-mvvmcross-60
[4] https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-phone-build-mvvm-apps-with-xamarin-and-mvvmcross
[5] https://xamarin21.rssing.com/chan-23562832/article1771.html
[6] https://stackoverflow.com/questions/16301045/MVVMCROSS-V3-IS-THAT-WRONG-to-try-to-use-behaviours และ storyboards-in-a-mu
[7] https://www.reddit.com/r/dotnet/comments/1cqqika/worth_converting_net_androidios_to_maui/
[8] https://mentormate.com/blog/6-reasons-mvvmcross-speeds-xamarin-development-personalizes-ux/
[9] https://stackoverflow.com/questions/26108486/should-use-use-mvvmcross-for-xamarin-forms-and-windows-store-app