Как стать автором
Обновить

Комментарии 6

Лоадер на айфоне за текстбоксом прячется нижней частью, надо его в самый низ списка контролов в гриде перенести. Странно, что на андроиде при этом все нормально.
Как там в Xamarin обстоят дела с Rx? Всякие формы и фильтры на Rx значительно удобнее писать.
Rx это всего лишь библиотека на .Net, отлично работает с Xamarin, если надо
Но осталась одна проблема: приложения с единым интерфейсом не получаются нативными.

не очень понятно. из-за того, что Xamarin.Forms использует нативные контроли, то и приложения с единым интерфейсом получаются нативными.
То есть, если появляется различие в интерфейсах Android и iOS, разработчик сталкивается с болью в виде создания отдельных ViewModel под каждую платформу…и это только цветочки.

Даже если есть различия, то зачем создавать разные ViewModel? В этом и преимущество MVVM, что ViewModel не должен знать как реализовано View — он просто дает доступ к необходимым данным.
Речь здесь идет о нативных контроллах (в IOS и Android), которые не поддерживаются в Xamarin.
Решение таких ситуаций заслуживают отдельной статьи.
Но забегая вперед, можно сказать, что если использовать поля для поддержания состояния View на обоих платформах в одной ViewModel, тогда класс ViewModel разрастется.
Со временем приходит осознание того, что проще создать отдельные ViewModel для каждой платформы, а общие поля вынести в отдельный сервис.
Но с замечанием согласен, момент ситуативный.
если использовать поля для поддержания состояния View на обоих платформах в одной ViewModel

Во ViewModel не должно быть платформозависимого кода, иначе теряется то самое преимущество MVVM, о котором сказал Don_Eric.
А если приходится это делать, или писать разные ViewModel, это нужно рассматривать как симптом того, что-то вы делаете не так. Возможно, в ViewModel оказывается часть кода, который должен быть в View (просто предположение).

Все эти вещи ситуативны и зависят от конкретных условий, которые не поместятся в один комментарий (в некоторых подходах MVVM во View вообще не должно быть кода, за исключением привязки дата контекста, опять же, ситуативно). Мы поняли, что эта тема актуальна, спасибо вам! Развернем подробнее в следующих статьях.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий