
Alexander
25.09.2018
17:49:49
Ну каждому свое.

Quantum Harmonizer
25.09.2018
17:49:59

Alexander
25.09.2018
17:53:21
Я таки настроил kotlinx-serialization в мультиплатформе. В конце концов таки взял новую градл модель и с ней все заработало через час. Но все равно уперся в том, что sealed классы не работают,

Oleg
25.09.2018
17:59:26

Google

Alexander
25.09.2018
17:59:38
Он не работает в common

Andrey
25.09.2018
18:00:04

Oleg
25.09.2018
18:00:23
у него есть кажется реализация на JVM точно, + кажется на js, не уверен на счёт native-a

Alexander
25.09.2018
18:01:56
Да, JVM и JS есть, но нет в common

Alexander
25.09.2018
18:02:51

Andrey
25.09.2018
18:03:01
Проверяемые исключения - тот ещё костыль в Java. Одна из проблем с ними - они плохо совместимы с анонимными функциями и вообще с ФП и ООП (с анонимными классами они тоже плохо совместимы, если что).

Alexander
25.09.2018
18:08:26
Что и случилось, вот я и искал путь, как можно этого избежать. Теперь вижу, что никак. Спасибо большое за ответ

Andrey
25.09.2018
18:08:55
В языке просто нет такого понятия, соответственно и нет возможности синтаксически это анализировать.

Dibro
25.09.2018
18:14:00

Жабра
25.09.2018
18:30:46
Щас начал обновлять koin с дорелизной на релизную, всё понятно кроме одного: 'releaseContext(String): Unit' is deprecated. Please use Scope API.
Как реализовать, не подскажите?

Artem
25.09.2018
18:51:39
А нормально ли для ограничения доступа к методам билдера внутри билдера делать компаньон? Например у меня есть билдер у диалога, но после определенного метода я хочу чтобы ничего кроме show() вызвать нельзя было. Поэтому я сделал LocalBuilder только с методом show() и operator fun invoke(originalBuilder). Так можно вообще? Может ещё какие-то варианты есть для ограничения доступа?

Quantum Harmonizer
25.09.2018
18:54:18
Ненормально делать билдеры.

Google

Boris
25.09.2018
18:55:07
Не так чтобы ненормально, но можно сделать и дсл

Quantum Harmonizer
25.09.2018
18:55:32
Тоже отстой.

Boris
25.09.2018
18:55:41
Это правда не избавит от необходимости делать контекстные классы
Тоже отстой.
Ну да, лучше сделать класс с тыщей полей в дефолтном клнструкторе

Artem
25.09.2018
18:56:37
И мне проще унаследоваться от него.
Так ладно, что насчет моего варианта?

Boris
25.09.2018
18:57:25
Норм вариант

Quantum Harmonizer
25.09.2018
18:57:55

Boris
25.09.2018
18:58:03
Хотя из билдеров получаются лучшие дсл-ы ?

Quantum Harmonizer
25.09.2018
18:58:43
Есть «пошаговые билдеры», где каждый метод возвращает экземпляр нового класса. Ну и горы классов из одного метода. Вот там можно контролировать порядок.

Artem
25.09.2018
18:59:00

Quantum Harmonizer
25.09.2018
19:03:44

Artem
25.09.2018
19:06:54
Но в случае, когда много параметров-то...

Quantum Harmonizer
25.09.2018
19:08:19
ну и много параметров == плохой код

Artem
25.09.2018
19:09:05
Окей. С тем же алерт диалогом как быть, например. Мне надо много чего сгонфигурировать под себя

Quantum Harmonizer
25.09.2018
19:10:47

Google

Artem
25.09.2018
19:12:29
Ну, у меня кастомный диалог например, у которого много вариантов, как можно его сконфигурировать: заголовок, его положение, иконка, поле ввода, список, кнопки и т.д.

Quantum Harmonizer
25.09.2018
19:14:51
Ну, у меня кастомный диалог например, у которого много вариантов, как можно его сконфигурировать: заголовок, его положение, иконка, поле ввода, список, кнопки и т.д.
Иконка в заголовке? Можно завести класс TitleBar(icon: Drawable, text: CharSequence)
Поле ввода, список, кнопки — это тело? Можно завести отдельный класс, описывающий тело.
Но вообще, не вижу смысла это всё делать, когда есть именованные параметры.

Artem
25.09.2018
19:15:54
именованные параметры, а потом куча if’ов? А если надо с джавы это юзать?

Quantum Harmonizer
25.09.2018
19:19:14
AlertDialog я всё же не выставлял бы наружу.

Artem
25.09.2018
19:19:37
почему?

Quantum Harmonizer
25.09.2018
19:20:23
Зачем ифы?
Если из джавы, тогда имеет смысл заморочиться с маленькими классами.

Artem
25.09.2018
19:21:16
Хотя да, насчет ифов может я чет не так надумал

Dmitriy
25.09.2018
19:58:55
есть кто пользуется корутинами в вертиксе? )

Alexandr
25.09.2018
20:25:30

Алексей
25.09.2018
22:00:01
Есть actor конечно же
https://gist.github.com/InsanusMokrassar/0720b26e2df7584e1121ba9df7aff7b9
Сделал на акторе:)
Спасибо за подсказку, @HeapyHop и @Enleur

Алексей
26.09.2018
05:38:29
А ещё вопрос - runBlocking, как я понял, не рекомендуется вызывать ниоткуда, кроме main. А что тогда вызывать в остальных случаях?

Жабра
26.09.2018
05:43:50

Алексей
26.09.2018
05:44:15
мне это и нужно
мне нужно, чтобы поток заблокировался до конца работы блока, но я боюсь, что вне main это как-то вызывает проблемы, потому что любое засыпание внутри может (как я понял) перевести корутину, созданную runBlocking на другой поток

Жабра
26.09.2018
05:45:24

Алексей
26.09.2018
05:46:21
Для чего тогда корутины?)
Большая часть проекта на них и я по-тихоньку перевожу на них весь проект, но есть методы, которые работают без suspend, но вызывают методы, завершения которых они должны дожидаться

Google

Жабра
26.09.2018
05:47:23

Алексей
26.09.2018
05:48:17

Жабра
26.09.2018
05:48:48

Admin
ERROR: S client not available

Алексей
26.09.2018
05:49:27

Vladimir
26.09.2018
05:49:36

Алексей
26.09.2018
05:50:06
причём та часть, что написана через корутины в итоге полностью работает, в отличие от блокируючей части

Жабра
26.09.2018
05:50:53

Vladimir
26.09.2018
05:51:14

Алексей
26.09.2018
05:51:27
А в чем трабл?
в том, что потом будут проблемы совместимости с другими модулями, в которых этот проект как зависимость используется

Жабра
26.09.2018
05:51:43

Vladimir
26.09.2018
05:52:49
Например что там нормального?
Ну как-то жили же раньше с блокирующим IO и тредпулами. От того, что блокирующий вызов заменяется на корутины в runBlocking, хуже ничего не станет. Нельзя взять и выкинуть весь синхронный код в проекте разом.

Жабра
26.09.2018
05:54:23

Алексей
26.09.2018
05:55:00
Оторожно, трэш и угар
Есть такой PR:
https://github.com/InsanusMokrassar/AutoPostTelegramBot/pull/9
В нём вопрос касается двух файлов:
https://github.com/InsanusMokrassar/AutoPostTelegramBot/pull/9/files#diff-b50c01624191e4c3468ab0822484defb
И
https://github.com/InsanusMokrassar/AutoPostTelegramBot/pull/9/files#diff-c35464483a8aaed1fa1e593d4f280dd7
Старая система работала без семафора, но определённые нюансы уже давно толкали меня его добавить.
Код до этого PR вполне себе работает.

Vladimir
26.09.2018
05:56:49

Google

Алексей
26.09.2018
05:58:45

Жабра
26.09.2018
06:01:56

Руслан
26.09.2018
07:30:40
Maven больше не нужен, теперь можно git репы прямо в gradle фигачить https://blog.gradle.org/introducing-source-dependencies

Igor
26.09.2018
07:32:59
Здравствуй GO (-way) ?

Vladimir
26.09.2018
07:34:49

Руслан
26.09.2018
07:36:15

Алексей
26.09.2018
07:40:31

Vladimir
26.09.2018
07:43:19

Alex
26.09.2018
07:48:28

Sergey
26.09.2018
07:54:22
кто-то сделает форс-пуш или удалит репу и фсё )
хотя iOS-еры как-то же живут с этим )

S
26.09.2018
07:56:05
Jitpack же и с мавеном, и грейдлом работает

Руслан
26.09.2018
07:56:45