MVVMCROSS ปรับปรุงการใช้รหัสซ้ำในแอพข้ามแพลตฟอร์มอย่างมีนัยสำคัญโดยใช้ประโยชน์จากรูปแบบสถาปัตยกรรมแบบจำลองมุมมอง-ViewModel (MVVM) นี่คือวิธีที่มันประสบความสำเร็จ:
1. การแยกข้อกังวล: MVVMCROSS ส่งเสริมการแยกข้อกังวลที่ชัดเจนโดยการแบ่งแอปพลิเคชันออกเป็นสองส่วนหลัก: แกนและ UI โครงการหลักโดยทั่วไปคือไลบรารีคลาสแบบพกพา (PCL) หรือไลบรารีมาตรฐาน. NET ประกอบด้วย ViewModels รุ่นและตรรกะทางธุรกิจทั้งหมด สิ่งนี้ช่วยให้รหัสสูงสุดใช้ซ้ำในแพลตฟอร์มที่แตกต่างกันเนื่องจากตรรกะทางธุรกิจถูกแยกออกจากรหัสเฉพาะแพลตฟอร์ม [1] [2] [7]
2. ViewModels ในโครงการหลัก: โดยการวาง ViewModels ในโครงการหลัก MVVMCROSS ช่วยให้นักพัฒนาสามารถแบ่งปันส่วนประกอบเหล่านี้ในหลายแพลตฟอร์ม ซึ่งหมายความว่าตรรกะสำหรับการจัดการการโต้ตอบของผู้ใช้การจัดการข้อมูลและการนำทางสามารถนำกลับมาใช้ใหม่ได้โดยไม่ต้องปรับเปลี่ยนบนแพลตฟอร์มที่แตกต่างกันเช่น iOS, Android และ Windows [1] [3] [9]
3. การเชื่อมโยงข้อมูล: MVVMCROSS รองรับการเชื่อมโยงข้อมูลซึ่งจะอัปเดต UI โดยอัตโนมัติเมื่อการเปลี่ยนแปลงเกิดขึ้นใน ViewModel คุณลักษณะนี้มีความสำคัญต่อการรักษาความสอดคล้องข้ามแพลตฟอร์มและลดความจำเป็นในการอัปเดต UI ด้วยตนเองเพิ่มการใช้รหัสซ้ำอีกครั้ง [4] [5]
4. การฉีดขึ้นอยู่กับการพึ่งพาและปลั๊กอิน: MVVMCROSS รวมถึงความสามารถในสถาปัตยกรรมปลั๊กอินและความสามารถในการฉีดพึ่งพา (DI) คุณสมบัติเหล่านี้ช่วยให้นักพัฒนาสามารถใช้ฟังก์ชันเฉพาะแพลตฟอร์มในแบบที่สามารถเข้าถึงและนำกลับมาใช้ใหม่ได้อย่างง่ายดายจากโครงการหลัก ซึ่งหมายความว่าในขณะที่เลเยอร์ UI จะต้องเป็นแพลตฟอร์มที่เฉพาะเจาะจงฟังก์ชันพื้นฐานจำนวนมากยังคงสามารถแบ่งปันได้ [3] [9]
5. การนำทางและมุมมองผู้นำเสนอ: MVVMCROSS ให้บริการระบบนำทาง ViewModel-First First ซึ่งช่วยให้สามารถจัดทำการนำทางของการนำทางจากโครงการหลักได้ ซึ่งหมายความว่าการไหลของการโต้ตอบของผู้ใช้และการเปลี่ยนหน้าจอสามารถจัดการได้จากส่วนกลางลดความต้องการรหัสการนำทางเฉพาะแพลตฟอร์ม [7]
6. โครงสร้างโครงการที่มีประสิทธิภาพ: MVVMCROSS สนับสนุนวิธีการที่มีโครงสร้างในการจัดระเบียบโครงการโดยมีการแยกที่ชัดเจนระหว่างรหัสแพลตฟอร์มที่ไม่เชื่อเรื่องพระเจ้าในรหัสหลักและรหัสเฉพาะแพลตฟอร์มในโครงการ UI โครงสร้างนี้อำนวยความสะดวกในการบำรุงรักษาและการขยายแอปพลิเคชันข้ามแพลตฟอร์มได้ง่ายขึ้น [2] [9]
โดยรวมแล้ว MVVMCROSS ช่วยเพิ่มการใช้รหัสซ้ำโดยการรวมกลุ่มตรรกะทางธุรกิจการใช้ประโยชน์จากการเชื่อมโยงข้อมูลและการจัดหาเครื่องมือสำหรับการจัดการฟังก์ชันเฉพาะแพลตฟอร์มในลักษณะที่เป็นเอกภาพ วิธีการนี้จะช่วยลดปริมาณของรหัสที่ซ้ำกันอย่างมีนัยสำคัญและเพิ่มความเร็วในการพัฒนาแอพข้ามแพลตฟอร์ม
การอ้างอิง:[1] https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-phone-build-mvvm-apps-with-xamarin-and-mvvmcross
[2] https://www.toptal.com/xamarin/cross-platform-apps-with-xamarin
[3] https://www.suneco.nl/blogs/boost-your-xamarin-native-projects-with-mvvmcross/
[4] https://tiefenauer.github.io/blog/mobile-app-development-with-xamarin-and-mvvmcross-part-1-introduct
[5] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[6] https://diglib.tugraz.at/download.php?id=576a78335451d&location=browse
[7] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[8] https://www.reddit.com/r/swift/comments/yrqlhu/is_crossplatform_the_future_of_mobile_development/
[9] https://leaware.com/creating-cross-platform-xamarin-applications-using-the-mvvmcross-framework/
[10] https://stackoverflow.com/questions/22409697/maximizing-ui-code-reuse-with-xamarin-mvvmcross