
Andrew
04.04.2018
09:13:48
Согласен, похоже на недоработку JetBrains!

Костя
04.04.2018
09:14:43
а во что превращаются файлы kt после компиляции ?
если .java -> .class

Oleg
04.04.2018
09:15:08
Аналогично

Google

Костя
04.04.2018
09:15:19
kt -> .class ?
тоже

Oleg
04.04.2018
09:15:27
Да

Костя
04.04.2018
09:16:00
тогда действительно странно, ведь у собранной либы на котлин и на джава отличий получается нет для компилятора

Quantum Harmonizer
04.04.2018
09:16:39

Andrew
04.04.2018
09:18:09

Quantum Harmonizer
04.04.2018
09:19:30

Andrew
04.04.2018
09:20:54

Oleg
04.04.2018
09:21:25

Alexander
04.04.2018
09:21:30
так проверь )

Andrew
04.04.2018
09:22:11
Как это сделать?

Alexander
04.04.2018
09:22:22
тут андройд

Google

Quantum Harmonizer
04.04.2018
09:23:00

Andrew
04.04.2018
09:23:07
Как добавить kotlin-stdlib в библиотеку?

Oleg
04.04.2018
09:23:32
так скомпили её с этой опцией, или чо?

Andrew
04.04.2018
09:24:20
У меня в библиотеке есть зависимость compile "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version". Это не то?

Quantum Harmonizer
04.04.2018
09:27:21

Oleg
04.04.2018
09:27:46
библиотека твоя привязана исключительно к андроиду? Или это буде jar, который можно будет подключать везде?

Andrew
04.04.2018
09:28:00
Это AAR

Alexander
04.04.2018
09:29:11
да покажи на пасту куда нить gradle файл )

Quantum Harmonizer
04.04.2018
09:29:56

Alexander
04.04.2018
09:31:00

Oleg
04.04.2018
09:31:17
слушай так по дефолту у тебя все должно рабоать, ты пробовал свою либу в другом проекте?

Quantum Harmonizer
04.04.2018
09:31:35
это же не fat aar со всеми зависимостями

Andrew
04.04.2018
09:38:47
Так как подключить kotlin-stdlib?

Oleg
04.04.2018
09:38:58
тогда по идее надо что-то типа такого
https://github.com/BenWoodworth/CrossPlatformGreeter/blob/bd1da79f36e70e3d88ed871bc35502ecc3a852fb/build.gradle#L35-L43
но это неточно

Alexander
04.04.2018
09:40:41
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
по логике тоже самое делают ) если судить по описанию

Quantum Harmonizer
04.04.2018
09:41:18

Oleg
04.04.2018
09:43:18
клевые кавычки!

Google

Andrew
04.04.2018
09:44:43
Так че делать?!

Oleg
04.04.2018
09:45:04
гуглить, потом раскажешь нам ;)

Alexander
04.04.2018
09:45:22
а я боялся такое писать )

Oleg
04.04.2018
09:48:39
лично я плохо понимаю что будет если мы вкомпилируем kotlin runtime в aar/jar а потом кто-то подключит его еще отдельно. Напирмер в слючае если есть другая либа, в которой runtime не встроен. Какой будет использоваться?

Quantum Harmonizer
04.04.2018
09:49:29
Когда в другие либы рантайм не встроен, всё ок. А вот когда будет >1 либы со встроенным рантаймом... ?

Andrew
04.04.2018
09:51:39
Значит нет пресловутой 100% совместимости!

Oleg
04.04.2018
09:52:33
ну как, у котлина же всякие расширения для того же стринга, для коллекций. Где то же их надо брать

Quantum Harmonizer
04.04.2018
09:52:38

Andrew
04.04.2018
09:52:57
В общих чертах

Quantum Harmonizer
04.04.2018
09:53:39
В общих чертах
Ну это какая-то пачка кода, который можно использовать из другого кода.
Вот рантайм котлина — это библиотека.

Alexander
04.04.2018
09:54:57
но ему нужна либка чтоб знать как

Andrew
04.04.2018
09:55:13

Oleg
04.04.2018
09:56:27
так погоди, через мавен, это наверно просто зависимость нужно прописывать при сборке, правильно так и надо. Или через Gradle

Quantum Harmonizer
04.04.2018
09:57:04
Короче, если распространяешь библиотеку файлом, у неё не должно быть зависимостей, иначе рванёт :)

Alexander
04.04.2018
09:57:48
и stdlib так же нужен

Quantum Harmonizer
04.04.2018
09:57:57

Andrew
04.04.2018
09:59:20
рантайм == стдлиб
Т.е. стдлиб котлина занимается конфертацией котлин кода в джава-код?

Google

Alexander
04.04.2018
09:59:47

Quantum Harmonizer
04.04.2018
09:59:47

Oleg
04.04.2018
09:59:48
ох, да нет же. Там просто набор функций, которых нет в java

Andrew
04.04.2018
10:00:43

Oleg
04.04.2018
10:00:50
например в java по дефолту нет возможности склеить список строк через list.joinToString("...")

Quantum Harmonizer
04.04.2018
10:01:18

Oleg
04.04.2018
10:01:19
а в котлине эти расширения есть, и они находятся в stdlib он же рантайм

Andrew
04.04.2018
10:01:55

Quantum Harmonizer
04.04.2018
10:02:06

Oleg
04.04.2018
10:03:28
на самом деле проблема высасона из пальца. В реальной библиотеке зависимостей много, и +1 зависимость погоды не делает

Alexander
04.04.2018
10:06:25
ну можно взять jar запихнуть в fat aar и спать спокойно пока такойже житроопый не появится который не захочет ещё 1 runtime )
либо смириться в зависимостях с ещё 1 cтрокой )

Oleg
04.04.2018
10:09:16
ну или две версии, простая и bundled

Alexander
04.04.2018
10:15:27

Andrew
04.04.2018
10:16:36
Проблема в том, что подавляющее большинство проектов разработаны на Java и предлагать сторонним разработчикам кроме зависимости на мою библиотеку делать еще зависимость на Kotlin (который они не используют) по меньшей мере не корректно. А есть у них старый gradle? Смогую они добавить зависимость на Kotlin stdlib?

Quantum Harmonizer
04.04.2018
10:18:54

Andrew
04.04.2018
10:21:01
Ну если у них gradle версии ниже 3.0, они смогут прописать зависимость на котлин стдлиб?

Alexander
04.04.2018
10:24:25
не то кинул (
попробуй не смогут можешь fat aar в любой момент собрать ) через gradle extension просто достаточно apply

Quantum Harmonizer
04.04.2018
10:31:33

Andrew
04.04.2018
11:26:10
Понятно, спасибо. А еще вопрос п, если я подключаю свою библиотеку через compile files, то по логике моя библиотека и котлин стдлиб будут включатся в APK?

Google

Andrew
04.04.2018
11:26:59
Почему тогда компилятор не ругается, а ошибка при выполнении?

Quantum Harmonizer
04.04.2018
11:27:44
Потому что сборкой библиотек занимается не компилятор, а сборочная система.

Andrew
04.04.2018
11:32:12
Ок, значит буду предлагать сторонним разработчикам устанавливать 2 зависимости:
compile files('extlib/myapi.aar')
compile "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"

iTEYE
04.04.2018
17:08:58
Нифига не понимаю.
https://pastebin.com/qCLWJLxb вот код.
Авторизую пользователя, потом в консоли firebase отключаю пользователя чтобы получать ошибку USER_DISABLED, перегружаю приложение и всегда попадаю в ветку else "exception is NOT FirebaseAuth...Exception"
Что я делаю не так? Как получить код ошибки?

Grushin
04.04.2018
17:50:46
Привет) Мучаюсь часто над вопросом. Допустим есть вот такое
doSomething(button)
button - nullable. Мне если не надо вообше метод вызывать если button = null что делать? прост поставить вопрос?

Oleg
04.04.2018
17:53:22
if(button!=null)doSomething(button)

Grushin
04.04.2018
17:54:08
я зачем с джавы ушел)

Oleg
04.04.2018
17:54:50

Grushin
04.04.2018
17:54:52
не, ну должен быть лайфхак с ?:
ok thx)

Alexey
04.04.2018
17:55:32
button?.let { doSomething(it) }

Grushin
04.04.2018
17:56:38