MVMCROSS 플러그인은 MVVMCross 프레임 워크로 구축 된 크로스 플랫폼 응용 프로그램의 기능을 확장하기위한 강력한 도구입니다. 이 플러그인을 사용하면 개발자가 파일 운영, 네트워크 연결, 위치 서비스 등과 같은 다양한 기능을 앱에 쉽게 통합 할 수 있습니다. 다음은 MVVMCross 플러그인을 사용하는 몇 가지 실제 예입니다.
1. 파일 플러그인 **
파일 플러그인은 파일 조작을위한`system.io '유형 메소드에 대한 액세스를 제공합니다. 이 플러그인은 파일을 읽고 쓰는 데 유용하며 많은 응용 프로그램에서 데이터를 저장하고 검색하는 데 필수적입니다. 이 플러그인을 사용하여 개발자는 플랫폼 독립적 인 방식으로 파일 작업을 처리 할 수 있습니다.파일 플러그인을 사용하려면 일반적으로 Nuget을 통해 프로젝트에 추가 한 다음 앱 설정 중에 IOC 컨테이너에 등록합니다. 그런 다음 파일 서비스를 뷰 모델 또는 기타 클래스에 주입하여 파일 작업을 수행 할 수 있습니다.
2. Bluetooth 저에너지 (BLE) 플러그인 **
Bluetooth Low Energy 플러그인을 사용하면 응용 프로그램이 Bluetooth 장치와 상호 작용할 수 있습니다. 이 플러그인은 'ibluetoothle'과 'iadapter'를 게으른 초기화 된 싱글 톤으로 등록하므로 이러한 서비스를 뷰 모델 또는 기타 구성 요소로 쉽게 해결하고 주입 할 수 있습니다.예를 들어이 플러그인을 사용하여 근처의 장치를 스캔하고 연결하고 데이터를 교환 할 수 있습니다. 플러그인은 또한 Bluetooth State 변경 사항을 모니터링하기위한 이벤트를 제공하므로 앱이 Bluetooth 연결 상태의 변경에 동적으로 반응 할 수 있습니다.
3. 현지화 플러그인 **
검색 결과에 명시 적으로 언급되지는 않지만 현지화는 많은 앱의 일반적인 요구 사항입니다. MVVMCross는 플러그인으로 확장하여 사용자의 로케일에 따라 텍스트 번역 또는 서식 날짜 및 숫자와 같은 현지화 작업을 처리 할 수 있습니다.4. 푸시 알림 플러그인 **
MVVMCross 용 Pushwoosh 플러그인은 푸시 알림 서비스를 앱에 통합하는 플러그인의 예입니다. 이를 통해 대상 알림을 사용자에게 보내고 사용자 참여를 향상시키고 적시 업데이트를 제공 할 수 있습니다.이러한 플러그인을 사용하려면 일반적으로 앱의 초기화 중에 등록한 다음 제공된 API를 사용하여 뷰 모델 또는 서비스에서 푸시 알림을 처리합니다.
5. 이미지 로딩 플러그인 (ffimageloading) **
Ffimageloading 플러그인은 효율적인 이미지 로딩 및 캐싱에 사용됩니다. MVVMCross의 데이터 바인딩 기능과 잘 통합되어 동적 업데이트에 대한 데이터 바인딩을 활용하면서보기에 이미지를 쉽게 표시 할 수 있습니다.이 플러그인은 이미지를 캐싱하고 비동기로로드하여 성능을 향상시키는 데 도움이되므로 많은 이미지를 처리 해야하는 앱에 특히 유용합니다.
자신만의 플러그인 만들기
MVVMCross를 사용하면 사용자 정의 플러그인을 만들 수도 있습니다. 이렇게하려면 기본 MVVMCross 패키지를 참조하는 라이브러리를 작성하고`IMVXPLUGIN`에서 상속하는 유형을 추가하고 'MVXPluginattribute'로 주석을 달 수 있습니다. 플러그인의 '로드'메소드에서 IOC 컨테이너에 필요한 서비스 또는 클래스를 등록합니다.이 유연성은 사용자 정의 기능을 재사용 가능한 플러그인으로 캡슐화하여 여러 프로젝트에서 코드를 쉽게 공유하거나 다른 개발자에게 배포 할 수 있음을 의미합니다.
전반적으로 MVVMCross 플러그인은 크로스 플랫폼 응용 프로그램을 확장하고 사용자 정의 할 수있는 강력한 방법을 제공하므로 광범위한 기능과 기능을보다 쉽게 통합 할 수 있습니다.
인용 :[1] https://dev.to/christian1006/creating-cross-platform-xamarin-applications-using-the-mvvmcross-framework-2920
[2] https://www.mvvmcross.com/documentation/plugins/plugins-development
[3] https://www.mvvmcross.com/documentation/fundamentals/inversion-of-control-ioc
[4] https://github.com/mvvmcross/mvvmcross-samples
[5] https://www.mvvmcross.com/documentation/plugins/3rd-party-plugins
[6] https://stackoverflow.com/questions/23451315/mvvmcross-azure-mobile-services-example?rq=3
[7] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[8] https://stackoverflow.com/questions/73128508/how-to-load-plugins when-updating-to-mvmcross-6-4-2-from-5-6-2
[9] https://www.nuget.org/packages/mvvmcross.plugin.ble/