MVVMCross에서는 스위스와 유창한 데이터 바인딩이 모두 모델을 보는 뷰를 연결하는 데 사용되지만 약간 다른 목적을 제공하며 다른 시나리오에서 선호됩니다.
스위스 데이터 바인딩
Swiss Databinding은 전임자 JSON Databinding에 비해 더 깨끗하고 덜 동점 구문을 제공합니다. 바인딩을 간단한 방식으로, 종종 XML 레이아웃 파일에서 직접 정의해야 할 때 특히 유용합니다. 스위스 바인딩은 읽고 쓰기 쉽기 때문에 구문이 간결하고 이해할 수있는 간단하고 직접적인 바인딩에 적합합니다.
스위스 데이터베이닝이 선호되는 특정 시나리오 중 하나는 XML 파일, 특히 XML 레이아웃이 일반적으로 Android와 같이 쉽게 편집 할 수있는 플랫폼에서 바인딩을 신속하게 설정 해야하는 경우입니다. 그러나 스위스 데이터 핀딩은 바인딩 소스가 재설정되지 않는 한 뷰 모델에서 변경 사항을 활성으로 모니터링하지 않으며, 이는 실시간 업데이트가 필요한 시나리오에서 제한 될 수 있습니다.
유창한 데이터 바인딩
반면에 유창한 데이터 바인딩은 바인딩 구성을위한 C#기반 구문을 제공합니다. 이 접근법은 특히 iOS 및 MACOS와 같이 XML 레이아웃이 쉽게 인간을 취득 할 수없는 환경에서 특히 유리합니다. 유창한 바인딩은보다 복잡하고 동적 인 바인딩 설정을 허용하므로 프로그래밍 방식으로 바인딩을 조작하거나보다 복잡한 논리를 처리 해야하는 시나리오에 이상적입니다.
프로그래밍 방식으로 바인딩을 만들어야 할 때 유창한 데이터 바인딩이 선호되는데, 특히 복잡한 응용 프로그램에서 또는 XML 레이아웃을 효과적으로 지원하지 않는 플랫폼으로 작업 할 때보다 유연하고 강력 할 수 있습니다.
선호 시나리오
- 스위스 데이터 핀딩이 다음과 같이 선호됩니다.
-바인딩, 특히 XML 파일에 간단하고 읽기 쉬운 구문이 필요합니다.
- 응용 프로그램은보기 모델의 변경 사항을 지속적으로 모니터링 할 필요가 없습니다.
- XML 레이아웃이 쉽게 편집 할 수있는 환경에서 작업하고 있습니다.
- 유창한 Databinding이 다음과 같이 선호됩니다.
- 프로그래밍 방식으로 바인딩을 만들어보다 역동적이고 복잡한 설정이 가능합니다.
- iOS와 같이 XML 레이아웃이 쉽게 편집 할 수없는 플랫폼에서 작업하고 있습니다.
- 응용 프로그램은 바인딩 로직을 더 많이 제어하거나 복잡한 시나리오를 처리해야합니다.
요약하면, 스위스와 유창한 데이터 밴드는 모두 강점을 가지고 있지만, 그 사이의 선택은 단순성 대 복잡성의 필요성과 개발중인 플랫폼을 포함하여 응용 프로그램의 특정 요구 사항에 따라 다릅니다.
인용 :[1] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[2] https://crosscuttingconcerns.com/mvvmcross-fluent-databinding
[3] https://stackoverflow.com/questions/41462365/what-are-the-pros-and-cons-of-odroid-data-binding
[4] https://stackoverflow.com/questions/60500840/should-view-binding-replace-data-binding
[5] https://learn.microsoft.com/en-us/dotnet/desktop/wpf/data/?view=netdesktop-9.0
[6] https://www.phunware.com/android-clean-coding-spoach/
[7] https://www.reddit.com/r/androiddev/comments/ux9379/what_are_the_the_cases_of_data_binding_and_when/
[8] https://jesseliberty.com/2022/02/01/advanced-databinding-part-0-basics/