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

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

Ох уж эта мания превращать приложения в сайты. Что внешне, что внутренне.
А я считаю, что это отличная идея. Наконец-то гугл официально дал рекомендации по проектированию архитектуры приложений. Раньше все писали кто как хотел. Много было статей по MVP и прочим изыскам. Кто-то пытался натянуть MVVM используя сторонние библиотеки. А теперь рай на земле видимо наступил наконец-то =)
Согласен, начинают просыпаться что-ли, правильные вещи выдавать. Кстати, кому интересно, вот свежий доклад с дроидкона в Берлине на тему MVVM. Автор как раз проходится по всем сторонним библиотекам и приходит к выводу, какой сюрприз, что реализация от гугла получилась лучшей. Правда, тоже очень надеется на скорую реализацию обратного связывания данных.
А здесь теперь уже вьюха вылазит за границы дозволенного парадигмой:
<TextView android:text="@{UnixDateConverter.convert(user.birthday)}" />

Вопрос: как с производительностью (полагаю, все неважно) и как самочувствие GC после всего этого?
Это немного другая вьюха, не от MVP/C, а от MVVM, ей можно. в MVVM ViewModel не сильно волнуется о том, в каком именно виде вьюха отразит день рождения. Вообще очень клево, давно это ждал. После опыта с Windows и MVVM разработка под Android приносила некоторый зуд и неудобство, спасибо Butterknife хоть как-то уменьшал этот зуд. Теперь заживём :-).
Я правильно понимаю, что механизм Data Binding не зависит от версии Android, установленной на устройстве пользователя? То есть работать будет везде, чисто за счет кодогенерации, верно?
Android 2.1 (API level 7+)
не очень понял как прибайндить коллекцию из вьюмодели к ListView/RecyclerView :(
Из коробки пока нет варианта. Как вариант посмотреть binding-collection-adapter, но ещё не было времени изучить эту библиотеку.
Да, то что нужно. Странно что не из коробки. Ещё бы two-way binding и было бы прекрасно. Сейчас нафигачил сложную форму и смотрю профайлером насколько это тормознуто всё.
>«someView.setVisibility(isVisible: View.VISIBLE: View.GONE);»

Может быть, так?

someView.setVisibility(isVisible? View.VISIBLE: View.GONE);
Спасибо, исправил.
У Вас в настройке Layout открывается LinearLayout, а закрывается RelativeLayout!
Т.е. из View в Model передать данные не получилось?

Добавил для класса Vm переменную в разметку:
<variable
            name="vm"
            type="ru.arvalon.databindinglibrary1.ViewModel.Vm"/>

Но из поля EditText
<EditText
                android:id="@+id/editFirstName"
                android:text="@{vm.editFirstName}"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"/>

методом vm.editFirstName.get().toString() всё равно не достать значение, не удалось победить?
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.