
Kira
03.01.2018
21:24:08
На каком этапе и что не срабатывает - великая тайна есть
Возможно нужно скачивать сырцы и дебажить

Руслан
03.01.2018
21:31:54
ну да, все так. понаписывали динамического гумна на груви, а потом разобраться как это работает не получается

Boris
03.01.2018
21:59:48

Google

Boris
03.01.2018
22:02:00
Я вот очень много на котлине написал под грейдл и скажу, что я ненавидел грейдл когда на нем надо было писать на груви, и прямо зауважал когда написал огромный билд на котлине
Даже не смотря на то, что легаси говноплагины приходится хачить

Kira
03.01.2018
22:02:49
Когда на груви из документации написал)

Ivan
04.01.2018
06:28:12
@fogone а ты встречал где-то мануалы по апгрейду gradle groovy dsl -> grale kotlin dsl для всяких легаси плагинов?

Boris
04.01.2018
08:01:30

Alexander
04.01.2018
08:03:57
Я когда последний раз трогал было не очень, наверное докрутили уже

Boris
04.01.2018
08:09:47
А в чём разница? С груви не очень дружишь?
В том, что котлин-версия полностью типизирована и предоставляет вполне понятный апи, в отличии от груви, где апи это что-то иллюзорное. Хотя конечно и для груви можно было понятно сделать, но похоже почему-то считается, что билд это то место, где можно по-быстрому нафигачить и плагины в итоге часто превращаются в мессиво.
У меня вот целый дсл получился для настройки и кастомизации сборки, даже не хочу представлять как я бы это на груви делал

Alexander
04.01.2018
08:12:17
В паблике?

Boris
04.01.2018
08:13:15
Когда приходится из котлина иметь дело с такими вот говноплагинами без апи, то тяжко, в остальном все достаточно неплохо

Google

Boris
04.01.2018
08:13:25

Alexander
04.01.2018
08:13:39
Что не очень?
Котлин для гредла, особенно смущала сильно распухший билд.градл

Boris
04.01.2018
08:14:23

Alexander
04.01.2018
08:14:49
Ну я очень давно пробовал, но тогда прям сильно больше пары строк было
Надо будет чекнуть

Kira
04.01.2018
08:26:02
Видюшку скидывали постов двести назад

Sergey8827
04.01.2018
11:45:47
Обьясните что не так?
это конвертировало на котлин на яве все ок

Igor
04.01.2018
11:53:13
Какая-то старая проблема с тайп-инференсом (наверное)
Просто укажи тип лямбды
Observable.zip<Int, Int, Int, Int>(…,
io.reactivex.functions.Function3 { integer, integer2, integer3 -> 0 })

Михаил
04.01.2018
11:55:14
Дак все верно. Лямбда возвращает Unit, а в дженерике указан Int

Sergey8827
04.01.2018
12:30:33

Igor
04.01.2018
12:31:09
Да не нужен он. Ради одной функции либу тащить, такая себе идея.

Sergey8827
04.01.2018
12:31:33
сарказм

Михаил
04.01.2018
12:36:01
там много полезного. а процентном соотношении

Igor
04.01.2018
12:38:33
ради одной?)
А что двух? Kotlin интероп уже не работает или руками написать “сахар” слишком сложно?

Михаил
04.01.2018
12:39:16
смысл писать то что уже написано)

Mi
04.01.2018
13:02:50
https://twitter.com/intelliyole/status/946796447122558978

Google

Mi
04.01.2018
13:02:57
тут наверное уже все в курсе, но всё же
наконец появились рекомендации по поводу названий файлов и структуры проекта

Sergey8827
04.01.2018
13:48:57

Жабра
04.01.2018
14:27:31
Напомните, пожалуйста, есть ли в Котлине вставка подмассива в массив в определённый диапазон? Вроде было подобное, но найти не могу.

Quantum Harmonizer
04.01.2018
14:28:40

Жабра
04.01.2018
14:32:43
О, да, спасибо.

Igor
04.01.2018
15:48:12
Ребят, а что в kotlin-script поменялось? Последняя версия не видит args, хотя раньше работало.
Странно, он просто теперь не любит ; - разнес на разные строки и все заработало.


Kira
04.01.2018
21:16:02
Пока что использование плагинов в Kotlin-DSL - изнасилование мозга, но зато видишь что вообще происходит:
На груви:
protobuf {
generatedFilesBaseDir = "$projectDir/src/generated"
protoc {
artifact = "com.google.protobuf:protoc:3.5.0"
}
plugins {
grpc {
artifact = 'io.grpc:protoc-gen-grpc-java:1.8.0'
}
}
generateProtoTasks {
all()*.plugins {
grpc {}
}
}
}
На котлине:
configure<ProtobufConvention> {
protobuf(closureOf<ProtobufConfigurator> {
generatedFilesBaseDir = "$projectDir/src/generated"
protoc(closureOf<ExecutableLocator> {
artifact = "com.google.protobuf:protoc:3.5.0"
})
plugins(closureOf<NamedDomainObjectContainer<ExecutableLocator>> {
create("grpc", closureOf<ExecutableLocator> {
artifact = "io.grpc:protoc-gen-grpc-java:1.8.0"
})
})
generateProtoTasks(closureOf<ProtobufConfigurator.JavaGenerateProtoTaskCollection> {
all().forEach {
t: GenerateProtoTask? ->
t?.plugins(closureOf<NamedDomainObjectContainer<GenerateProtoTask.PluginOptions>> {
add(create("grpc"))
})
}
})
})
}
Относительно разобрался с плагином protobuf, осталось разобраться с плагином java)
Кто-нибудь знает как написать на котлине:
sourceSets {
main {
java {
srcDirs = ['src/generated/main/grpc', 'src/generated/main/java']
}
proto {
srcDir 'proto'
}
}
}
?
Моя последняя нерабочая идея:
configure<JavaPluginConvention> {
sourceCompatibility = JavaVersion.VERSION_1_8
sourceSets(delegateClosureOf<NamedDomainObjectContainer<SourceSet» {
getByName("main", delegateClosureOf<SourceSet> {
create("proto", closureOf<SourceSet> {
allSource.srcDir("proto")
})
})
})
}


Igor
04.01.2018
21:21:19


Kira
04.01.2018
21:23:32

Boris
04.01.2018
21:37:24
Гист же

Kira
04.01.2018
21:39:22

Pavel
04.01.2018
21:39:48
А мне вот кажется или String template как-то проигрывает по читаемости String.format?

Igor
04.01.2018
21:40:32
Пример?

Pavel
04.01.2018
21:41:45

Aleksey
04.01.2018
21:42:22
Ребят, где можно за структуру БД потрындеть? ?

Руслан
04.01.2018
21:43:26

Google

Руслан
04.01.2018
21:43:53
вот отсюда https://kotlinlang.slackarchive.io/gradle/search-sourceSets/page-1

Admin
ERROR: S client not available

Quantum Harmonizer
04.01.2018
21:46:05
Вполне может вернуть null null (null).

Igor
04.01.2018
21:46:05
Конкретно в этом случае скорее проигрывает.
Да и вообще выражения (вызовы функций) в {} фигово смотрятся.

Quantum Harmonizer
04.01.2018
21:46:36

Pavel
04.01.2018
21:47:24

Aleksey
04.01.2018
21:47:53
Спасибо
И еще раз спасибо ?

Kira
04.01.2018
22:02:17

Руслан
04.01.2018
22:02:42
Ну тогда чтобы не мучаться лучше адресовать туда вопрос

Kira
04.01.2018
22:33:18
? написал им issue, забодало

Dmitriy
05.01.2018
03:15:12
Есть оператор with. with(obj) {...
Но от ${getString(..} не спасет

Alexandr
05.01.2018
06:10:37
Привет народ. Подскажите плиз как запустить корутину чтобы не блокировать основной процесс и при этом возвращалось определенное значение???
Await() вне блока корутину не работает, это если использовать async вместо runblocking

whalemare
05.01.2018
06:26:45

Alexandr
05.01.2018
06:28:46

whalemare
05.01.2018
06:30:27

Alexandr
05.01.2018
06:34:53

Google

whalemare
05.01.2018
06:35:37
getfromDatabase это твоя суспенд функция
И весь код внутри лаунчИО и лаунсЮИ будет последователен

Alexandr
05.01.2018
06:45:13

Santa
05.01.2018
10:51:54
Если в Intelij указать неизвестный класс, после через Alt+Enter попытаться его создать, в Java он выводил окно с указанием пакета, где будет создан класс, как то же самое сделать в Kotlin(Intelij выводит на выбор только текущий класс или файл)?

Roman
05.01.2018
10:54:38

Santa
05.01.2018
10:55:03
Thanks(

Dmitry
05.01.2018
11:52:02
У компилятора есть класс ReplCodeLine, у которого есть generation. Где искать, что он означает? Джавадоков в компиляторе нет...
Я пытаюсь завести jupyter, который был написан под альфу котлина, где генерации небыло.

Vladimir
05.01.2018
11:54:31
Что одно не очень, что другое. Не лучше ли вызовы getString вынести в отдельные переменные?

Pavel
05.01.2018
11:56:08
зачем?