Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon MVVMCROSS สนับสนุนรหัสเฉพาะแพลตฟอร์มเฉพาะ


MVVMCROSS สนับสนุนรหัสเฉพาะแพลตฟอร์มเฉพาะ


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

1. การแยกข้อกังวล **

โดยทั่วไปแอปพลิเคชัน MVVMcross จะมีโครงสร้างเป็นสองส่วนหลัก: โครงการหลักและโครงการ UI เฉพาะแพลตฟอร์ม โครงการหลักมักจะใช้เป็นไลบรารีคลาสแบบพกพา (PCL) หรือไลบรารีมาตรฐาน. NET มีตรรกะทางธุรกิจโมเดลโมเดลดูและอินเทอร์เฟซสำหรับบริการเฉพาะแพลตฟอร์ม การแยกนี้ช่วยให้รหัสสูงสุดนำกลับมาใช้ใหม่ในแพลตฟอร์มในขณะที่เก็บรหัสเฉพาะแพลตฟอร์มที่แยกได้ในโครงการ UI [2] [7]

2. การผกผันของการควบคุม (IOC) และการฉีดพึ่งพา

MVVMCROSS ใช้คอนเทนเนอร์ IOC เพื่อจัดการการพึ่งพา สิ่งนี้ช่วยให้นักพัฒนาสามารถลงทะเบียนบริการเฉพาะแพลตฟอร์มในโครงการเฉพาะแพลตฟอร์มและฉีดเข้าไปในรูปแบบมุมมองของโครงการหลัก ตัวอย่างเช่นหากแอปพลิเคชันจำเป็นต้องเข้าถึงกล้องโครงการหลักสามารถกำหนดอินเทอร์เฟซสำหรับการเข้าถึงกล้องและโครงการเฉพาะแพลตฟอร์มแต่ละโครงการสามารถให้การใช้งานของอินเทอร์เฟซนี้เอง จากนั้นคอนเทนเนอร์ IOC จะแก้ไขการพึ่งพาเหล่านี้ได้ที่รันไทม์เพื่อให้แน่ใจว่าใช้บริการเฉพาะแพลตฟอร์มที่ถูกต้อง [2] [8] [11]

3. บริการเฉพาะแพลตฟอร์ม **

บริการเฉพาะแพลตฟอร์มถูกนำไปใช้ในโครงการ UI ดั้งเดิม บริการเหล่านี้ลงทะเบียนในคลาสการตั้งค่าของแต่ละโครงการแพลตฟอร์ม คลาสการตั้งค่ามีหน้าที่รับผิดชอบในการ bootstrapping MVVMCROSS และการลงทะเบียนบริการเฉพาะแพลตฟอร์มด้วยคอนเทนเนอร์ IOC สิ่งนี้ช่วยให้โมเดลมุมมองในโครงการหลักใช้ฟังก์ชันเฉพาะแพลตฟอร์มโดยไม่ต้องอ้างอิง APIs เฉพาะแพลตฟอร์มโดยตรง [2] [7]

4. เฟรมเวิร์กปลั๊กอิน **

MVVMCROSS มีเฟรมเวิร์กปลั๊กอินที่ช่วยให้นักพัฒนาสามารถรวมคุณสมบัติเฉพาะแพลตฟอร์มเข้ากับแอปพลิเคชันได้อย่างง่ายดาย ปลั๊กอินสามารถให้ฟังก์ชันการทำงานเช่นตำแหน่ง GPS, การแปล, เซ็นเซอร์และอื่น ๆ ปลั๊กอินเหล่านี้ลงทะเบียนกับคอนเทนเนอร์ IOC ช่วยให้รุ่นมุมมองสามารถเข้าถึงคุณสมบัติเฉพาะแพลตฟอร์มผ่านการฉีดพึ่งพา เฟรมเวิร์กนี้ยังสนับสนุนการใช้งานจำลองเพื่อการทดสอบ [4] [11]

5. เอ็นจิ้นการผูกมัดที่ปรับแต่งได้ **

MVVMCROSS จัดเตรียมเอ็นจิ้นการเชื่อมโยงที่ปรับแต่งได้ซึ่งช่วยให้นักพัฒนาสามารถสร้างการเชื่อมโยงที่กำหนดเองสำหรับมุมมองเฉพาะแพลตฟอร์ม คุณลักษณะนี้มีประโยชน์อย่างยิ่งเมื่อทำงานกับการควบคุมแบบดั้งเดิมที่ไม่สนับสนุนกลไกการเชื่อมโยงข้อมูลมาตรฐาน ด้วยการกำหนดการผูกที่กำหนดเองนักพัฒนาสามารถมั่นใจได้ว่าโมเดลมุมมองของพวกเขาเชื่อมต่ออย่างถูกต้องกับมุมมองเฉพาะแพลตฟอร์ม [4]

6. ผู้นำเสนอแพลตฟอร์ม **

MVVMCROSS ใช้ผู้นำเสนอเฉพาะแพลตฟอร์ม (เช่น `IMVXIOSVIEWPRESENTER`,` IMVXANDREIDVIEWPRESENTER`) เพื่อจัดการวิธีการแสดงมุมมองในแต่ละแพลตฟอร์ม ผู้นำเสนอเหล่านี้อนุญาตให้มีการปรับแต่งตรรกะการนำเสนอทำให้นักพัฒนาสามารถปรับพฤติกรรม UI ให้สอดคล้องกับข้อกำหนดของแพลตฟอร์มเฉพาะ [3]

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

การอ้างอิง:
[1] https://www.suneco.nl/blogs/boost-your-xamarin-native-projects-with-mvvmcross/
[2] https://dev.to/christian1006/creating-cross-platform-xamarin-applications-using-the-mvvmcross-framework-2920
[3] https://canbilgin.wordpress.com/tag/mvvmcross/
[4] https://github.com/mvvmcross/mvvmcross
[5] https://www.codeproject.com/articles/863695/introduction-to-mvvmcross-platform
[6] https://mentormate.com/blog/6-reasons-mvvmcross-speeds-xamarin-development-personalizes-ux/
[7] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[8] https://stackoverflow.com/questions/14337063/platform-specific-ioc-in-mvvmcross
[9] https://www.mvvmcross.com/documentation/getting-started/getting-started
[10] https://leaware.com/creating-cross-platform-xamarin-applications-using-the-mvvmcross-framework/
[11] https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-phone-build-mvvm-apps-with-xamarin-and-mvvmcross