
Anton
16.06.2017
12:20:42
супер!!

Dmitry
16.06.2017
12:20:45
Дружит. Но классы нужно делать open, так как realm не дружит с final классами

Михаил
16.06.2017
12:20:47
правда датаклассы не получится юзать с ним

Anton
16.06.2017
12:20:51
бля

Google

Anton
16.06.2017
12:20:54
я как раз про дата подумла

Михаил
16.06.2017
12:21:29
хотя может щас можно. я еще на 1.0 котлина пробовал
когда нельзя была наследовать датаклассы

Dmitry
16.06.2017
12:22:51
Нет, сейчас тоже нельзя.

Николай
16.06.2017
13:01:01
А кто скажет в чем прикол sealed классов?

Quantum Harmonizer
16.06.2017
13:01:52

Михаил
16.06.2017
13:04:27
На этом приколы заканчиваются

Николай
16.06.2017
13:04:56
И что это даёт?

Quantum Harmonizer
16.06.2017
13:05:58
И что это даёт?
when, гарантирующий, что все варианты будут перебраны, например (exhaistive when)

Anton
16.06.2017
13:11:43
прикол
дефолт кейс не нужно указывать это серьезно весь прикол?

Quantum Harmonizer
16.06.2017
13:13:17

Anton
16.06.2017
13:13:23
ну да

Google

Anton
16.06.2017
13:13:30
я имел в виду этот прикол

Quantum Harmonizer
16.06.2017
13:13:35
Это недостаточно круто?)

Igor
16.06.2017
13:13:50

Anton
16.06.2017
13:14:01
достаточно прикольно!

Михаил
16.06.2017
13:14:18

Quantum Harmonizer
16.06.2017
13:14:38

Igor
16.06.2017
13:15:26
Есть пример?
У Бреслава есть пример на youtube с Expr Num Var (взятый конечно из scala)

Quantum Harmonizer
16.06.2017
13:15:40
Есть пример?
Классика:
sealed class Option<out T : Any>
class Some<T : Any>(val value: T) : Option<T>()
object None : Option<Nothing>()

Михаил
16.06.2017
13:17:12

Igor
16.06.2017
13:17:12
Ему вообще хрен знает сколько лет. Одерски его скорее всего тоже откуда то взял.

Quantum Harmonizer
16.06.2017
13:19:23

Igor
16.06.2017
13:19:52

Михаил
16.06.2017
13:20:02

Quantum Harmonizer
16.06.2017
13:20:41

Igor
16.06.2017
13:22:53
Что-то сложный вопрос “данные по л(м?) иморфного формата” ? - что это такое?

? animufag ?
16.06.2017
13:25:59
ну тема в том что каждый случай передачи данных – случай их дальнешей обработки. поэтому вместо того чтобы на месте захватывать скоп и обрабатывать в when добавляешь метод в интерфейс, в который передаёшь нужный на текущий момент скоп. реализуешь обработку этих полиморфмных данных в классах.
гибкость when в том что это можно сделать лаконичней
ну и более явно когда читаешь код

Google

Quantum Harmonizer
16.06.2017
13:28:12
Что-то сложный вопрос “данные по л(м?) иморфного формата” ? - что это такое?
Допустим, за привлечение проекта вознаградить можно процентом от продажи либо фиксированной суммой.
sealed class Earning {
class Percent(val value: Double) : Earning()
class Fixed(val value: Double) : Earning()
}
Как это правильно делается в ООП?
Если маркер-интерфейсом (java.lang.reflect.Type ?), то нет никакой гарантии, что не появится новый вариант и свитчи не поломаются.

? animufag ?
16.06.2017
13:29:35
вообще не понимаю про маркер интерфейсы. ну само выражение примерно понимаю, но как они заменяют свитчи - хз
на самом деле немного плохо для примера, что у них одинаковое содержимое.
а ещё я вспомнил тут был огромный разговор про ооп ровно о том же самом

Quantum Harmonizer
16.06.2017
13:34:08

Igor
16.06.2017
13:34:55

Quantum Harmonizer
16.06.2017
13:35:56
Я всё же считаю, что пассивные объекты тоже имеют право на жизнь.

Igor
16.06.2017
13:37:00
Ну это уже ваши частные проблемы архитектуры. Можно в @Android_Architecture что они там думают.
(Я вообще за ФП в Kotlin)

Михаил
16.06.2017
13:37:22

? animufag ?
16.06.2017
13:37:47

Quantum Harmonizer
16.06.2017
13:39:32
enum)
У enum данные не полиморфные. Получается, что за каждым элементом enum нужно закреплять класс, и, о ужас, кастить данные в него.

Quantum Harmonizer
16.06.2017
13:40:14
btw, вчера на митапе в Питере ruX показывал отличные примеры с sealed классами.

Igor
16.06.2017
13:45:35
Я выше уже упоминал про паттерн (костыль) - Visitor, вроде подходит.
Там можно вообще какие угодно операции намутить в будущем (супер расширяемость и гибкость).
Плюс он быстрее ”when” из-за прямого диспатчинга.

Volodymyr
16.06.2017
14:07:29
* What went wrong:
Execution failed for task ':app:transformClassesWithJarMergingFor<FlavorName>Debug'.
> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: org/xmlpull/v1/XmlPullParser.class
HELP

Denis
16.06.2017
14:12:27
XmlPullParser через либу подключен?

Volodymyr
16.06.2017
14:18:13
нет
https://gist.github.com/jordan1997/b6c7bedbb39eeecce51e1515db492bdbє
но http://prntscr.com/fkj8x9

Nick Senchurin
16.06.2017
14:18:39
:app:dependencies не помогло?

Igor
16.06.2017
14:19:55

Google

Quantum Harmonizer
16.06.2017
14:21:09

Volodymyr
16.06.2017
14:21:44
https://gist.githubusercontent.com/jordan1997/b6c7bedbb39eeecce51e1515db492bdb/raw/a3dc6ee0086f4285602060bcc7e3c1acc1771e96/gistfile1.txt
а так?

Igor
16.06.2017
14:22:02
Не открывается.
https://gist.github.com/jordan1997/b6c7bedbb39eeecce51e1515db492bdb

Denis
16.06.2017
14:22:04
Да тут и так все ясно. Идет конфликт с Андройдовским XmlPullParser.

Volodymyr
16.06.2017
14:22:42
как фіксить?

Denis
16.06.2017
14:23:05
А оказаться ни как?

Admin
ERROR: S client not available

Quantum Harmonizer
16.06.2017
14:23:08

Volodymyr
16.06.2017
14:26:01
ситуация такая что тесты на ява а код на Котлин
ошибку на следующую команду
/gradlew —no-daemon ":app:assemble<FlavorNaem>DebugAndroidTest" ":app:assemble<FlavorName>Debug"

Михаил
16.06.2017
14:27:06
:app:assemble<FlavorNaem>DebugAndroidTest"
FlavorNaem

Quantum Harmonizer
16.06.2017
14:27:18
В libs есть что-нибудь?
Короче, нужно смотреть граф зависимостей и выяснять, кто притащил парсер.

Volodymyr
16.06.2017
14:29:12

Quantum Harmonizer
16.06.2017
14:29:51
Нет ли в них этого парсера?

Volodymyr
16.06.2017
14:30:52
есть но к переводу проекта на Котлин все было ок

Quantum Harmonizer
16.06.2017
14:31:35

Volodymyr
16.06.2017
14:32:25
это CI машина
ок как решить я не могу просто удалить xmlParse из библиотек?

Google

Denis
16.06.2017
14:37:19
Давайте глянем внимательней на список зависимостей
Запустите градловую таску dependencies
найти ее можно вот тут https://snag.gy/iz0Ace.jpg
Как выполнится, скидывайте логи. Посмотрим какая из либ шалит

Volodymyr
16.06.2017
14:40:40
http://prntscr.com/fkjjjv
а так если от app

Quantum Harmonizer
16.06.2017
14:44:05
парсер есть в powermock и в какой-то из подключённых библиотек. Нужно убрать его откуда-то.

Denis
16.06.2017
14:45:07
Вот тут
+--- org.powermock:powermock-classloading-xstream:1.6.4
| +--- org.powermock:powermock-classloading-base:1.6.4 (*)
| \--- com.thoughtworks.xstream:xstream:1.4.2
| +--- xmlpull:xmlpull:1.1.3.1
| \--- xpp3:xpp3_min:1.1.4c
Что забавно, его нет в списке зависимостей, что вы скидывали ранее. Я так понимаю, вы почистили его от тестовых зависимостей?

Volodymyr
16.06.2017
14:57:23
да
Тест https://gist.github.com/3e17312da1651decd46b529c982dacc9.git
как убрать из powerMock ?
@sdi_linch можете подсказать?

Denis
16.06.2017
15:05:57
Можно попробовать исключить xmlpull из зависимостей. Но в данном случае я не ручаюсь за работоспособность тестов
Дело в том, что тут идет конфликт имен а не простой конфликт версий. Скорее всего xstream использует методы и классы отсутствующие в Android
Советю присмотреться к другим решениям

Семен
16.06.2017
15:12:19
а вот такой вопрос, кто ретрофитом пользуется, все модельки nullable типизируете?

Михаил
16.06.2017
15:12:57
нет. зачем

Quantum Harmonizer
16.06.2017
15:13:03

Семен
16.06.2017
15:13:19
а как? надеятся на бек?
и падать по любому чиху

Михаил
16.06.2017
15:13:58
как вариант свои мапервы для каждой модели писать