
Sasha
23.04.2017
16:00:29
Вроде у Дениса в докладе был датабиндинг и там точно был котлин. Да и в подкасте вроде об этом говорили.

Alexey
23.04.2017
16:00:32
я думал может что поменялось сейчас

Sasha
23.04.2017
16:02:06
Да тоже слышал что не дружат, но увидел в докладе и планировал на днях попробывать

Google

Dzmitry
23.04.2017
16:03:14
То что не дружат это байка ходит еще со времен когда kapt вообще отвратительно работал
Сейчас все норм, сам юзал - все работает

Sasha
23.04.2017
16:04:29
Вообще забавно, сам датабиндинг написан на котлине. На сколько я помню.

Андрей
23.04.2017
16:04:42
У нас проекты на котлин, и дата биндинг юзаем - все работает.

Dzmitry
23.04.2017
16:04:58
Нет. Прототип был на котлине

Sasha
23.04.2017
16:05:00
спасибо. будем знать

Dzmitry
23.04.2017
16:05:05
Потом переписали

Андрей
23.04.2017
16:05:41
https://android.googlesource.com/platform/frameworks/data-binding/+/master/compiler/src/main/kotlin/android/databinding/tool

Dzmitry
23.04.2017
16:05:44
У датабиндинга другая проблема, и с обычным apt
Если что-то в анотейшен процессинге ломается, то выплевываются какие-то вообще непонятные ошибки
Причем пофиг где сломалось, проблема может быть даже не в датабиндинге

Михаил
23.04.2017
16:08:19

Dzmitry
23.04.2017
16:08:26
Может он как-то вывод ошибки в цепочке препроцессинга меняет, но такая проблема есть

Google

Dzmitry
23.04.2017
16:08:39

Михаил
23.04.2017
16:08:56
в gradle console

Dzmitry
23.04.2017
16:09:52
Так я ж и говорю, туда вообще невнятное что-то пишеться

Михаил
23.04.2017
16:09:52
ошибки генерации датабиндинг классов именно там пишутся и вполне информативные

Dzmitry
23.04.2017
16:11:53
Хотя может эта хрень и не сдатабиндингом связана. Но на мобиусе чел один жаловался, поэтому мои подозрения возрасли
Ок,сломай даггер например, что оно тебе напишет
?

Anton
23.04.2017
16:13:10
Что нет метода провайдера)

Андрей
23.04.2017
16:13:54
В самом низу дейтсвительно мусор. Нужно листать в самый верх. И там довольно информативные ошибки, что у датабиндинга, что у даггера.

Михаил
23.04.2017
16:14:30

Dzmitry
23.04.2017
16:16:08
Хм. Значит в чем другом проблема была

Андрей
23.04.2017
16:16:19
У Даггера основные проблемы - либо провайдера нету, либа конструктора с @Inject. В любом случае он адекветно объяснит что его не устраивает.

Михаил
23.04.2017
16:17:18
единственное - фактическую ошибку приходится искать среди кучи других ошибок
поэтому и написал, что надо знать куда смотреть)

Андрей
23.04.2017
16:17:51
О, Михаил ради презентации даже свои проекты ломать начал?

Михаил
23.04.2017
16:18:20

Андрей
23.04.2017
16:18:42

Sasha
23.04.2017
16:20:59

Михаил
23.04.2017
16:22:02

Sasha
23.04.2017
16:22:12

Google

Михаил
23.04.2017
16:22:26
у каждой либы свой вывод ероров
если конечн под каждую либу отедльно логику писать)
то наверн да

Sasha
23.04.2017
16:23:34
не, для каждый нафиг такое счастье. Можно и руками поискать)

Михаил
23.04.2017
16:51:35
на котлине нету экстеншена какого-нить чтобы из инта 100000 получить "100 000" одной строчкой

? animufag ?
23.04.2017
16:55:50
думаю в джс на такое либа бы нашлась

Михаил
23.04.2017
17:04:36
:D

Konstantine
23.04.2017
18:07:59
Тут кто-нибудь пишет под андроид с data binding'ом?
Для биндинга ведь используется отдельный класс с полями для данных. Можно ли использовать data class в данном случае?

Михаил
23.04.2017
18:17:44

Konstantine
23.04.2017
18:18:20
почему нет?
Я не знаю, как они устроены, возможно биндинг просто не может работать с дата классом)

Михаил
23.04.2017
18:18:41
дата класс ничем не отличается от обычного класса просто под капотом генерится пачка методов

Konstantine
23.04.2017
18:19:08
понял, классно)

Михаил
23.04.2017
18:19:36

Андрей
23.04.2017
18:20:11
а нужна ли эта пачка методов просто для DataBinding-а?

Михаил
23.04.2017
18:20:41
имхо нет)
не вижу кейса чтоб во вьюМодели что-то из этого пригодилось)

? animufag ?
23.04.2017
18:26:08
думаю при тестировании toString, equals могут пригодиться.

Quantum Harmonizer
23.04.2017
18:27:28
Equals сильно помогает когда используешь DiffUtil.

Михаил
23.04.2017
18:51:09

Quantum Harmonizer
23.04.2017
18:51:38

Google

Konstantine
23.04.2017
19:01:44
Так стоп, получается в data class все еще можно объявить свои функции?
Просто из описания в доке я подумал, что они исключено для хранения данных и объявлять левые методы в них нельзя

Михаил
23.04.2017
19:02:47

Konstantine
23.04.2017
19:03:23
Тогда как-то их суть как классов исключительно для каких-то данных теряется)

Admin
ERROR: S client not available

Quantum Harmonizer
23.04.2017
19:08:19
Например, data class ClassName : Parcelable — обычная такая ситуация.

Boris
23.04.2017
19:21:43
Тогда как-то их суть как классов исключительно для каких-то данных теряется)
их суть в том, чтобы дать из кробки инструмент быстрого создания бинов, а не в классах исключительно для данных. Просто в джаве (да и не только) есть целый слой класов сделанных исключительно чтобы описывать некоторую структуру данных -- в джаве это бины, так вот, чтобы их делать быстро, просто и эффективно были сделаны дата-классы, которые от обычных по больше части отличаются только наличием автосгенерированных методов сравнения, тустринг, компонентс* и хеэшкод
еще у них в этой связи есть ряд ограничений
которые вполне естественно вытекают из того в чем собственно суть дата-класса

Андрей
23.04.2017
19:35:08

Boris
23.04.2017
19:35:20
?

Quantum Harmonizer
23.04.2017
19:36:47

Андрей
23.04.2017
19:40:35
Если данные изменяемые, тогда да, такой способ не подойдет. Но я же и не писал что всегда. Для статических данных работать будет.

Quantum Harmonizer
23.04.2017
19:43:32

Андрей
23.04.2017
19:50:40
А какая разница в какое время эта сущность была запрошена? На что это должно влиять?

Quantum Harmonizer
23.04.2017
19:53:45

Igor
23.04.2017
19:57:42

Андрей
23.04.2017
20:06:18
А, ладно. Долго объяснять.
Автосгенерированный метод equals в data классе делает сравнение по полям. Если данные уменя неименяемые, то он всеравно вернет true, несмотря на то, когда были созданны инстансы классов, хранящие эти данные . Так что в чем будет отличие?

Quantum Harmonizer
23.04.2017
20:07:15

Андрей
23.04.2017
20:13:42
Ну если есть возможность того, что мне с одной и той же айдишкой придут разные данные, то тут возможны следующие варианты: либо айдишки не уникальные, либо данные не являются неизменяемыми. В любом случае за оба варианта я писал что проверка по айдишке не подойдет.
Хотя на счет того, что подходящих кейсов большинсто, я был не прав, признаю.

Quantum Harmonizer
23.04.2017
20:34:59

Google

Андрей
23.04.2017
20:43:36
А, я понял. Под неизменяемыми данными имелись именно такие, которые создавшись один раз, по соглашению никто не имеет права редактировать (как на клиенте, так и на беке)

Dmitry
24.04.2017
09:17:19
Здрасьте всем. А подскажите пожалуйста, для андройда и котлина в качестве статических анализаторов кода - что кроме линта еще подходит, есть у кого отзывы по другим штукам?

Михаил
24.04.2017
09:18:51

Dmitry
24.04.2017
09:19:52
ээээто печально

Quantum Harmonizer
24.04.2017
09:20:50
То ли FindBugs, то ли HuntBugs работает с байт-кодом.

Nikolay
24.04.2017
09:21:56
https://hackernoon.com/configuring-android-project-static-code-analysis-tools-b6dd83282921

Sergey
24.04.2017
09:22:02
Подскажите пожалуйста - у меня уже вошло в привычку писать модификаторы доступа для всего (В основном internal). Правильно ли я делаю или можно их не писать (кроме очивидных private/protect)

Quantum Harmonizer
24.04.2017
09:22:49

Igor
24.04.2017
09:23:23

Sergey
24.04.2017
09:24:15
То есть права доступа пишутся для личного удобства и если это не либа, то они никак на проект не влияют?

Igor
24.04.2017
09:25:32

Dmitry
24.04.2017
09:26:01
спасибо