@kotlin_lang

Страница 34 из 982
Aliaksei
10.02.2017
20:07:21
А зачем фактура если есть flow?

future имел ввиду

И не знаю, а как применить await к flow?

Boris
11.02.2017
10:46:30
Кстати кто-нибудь щупал Java 9 java.util.concurrent.Flow? Если что он есть в бекпорте https://github.com/streamsupport/streamsupport
я смотрел реализацию в reactor-е и то как в 5 спринге это дело прикрутили

Google
Igor
11.02.2017
15:08:47
А вот если у меня достаточно большой gradle проект на Котлине, то как скажется на времени сборки разбивание его на несколько модулей?

Aliaksei
11.02.2017
15:36:46
Смею предположить, так что будет незаметно

Sergey
11.02.2017
15:38:05
Gradle умеет паралелить сборку нескольких модулей, потому может быть и быстрее

Но надо будет больше системных ресурсов

Aliaksei
11.02.2017
15:38:50
нуу, тут будет играть то что модули зависят друг от друга

скорее всего

Руслан
11.02.2017
16:01:53
Короче it depends

Boris
11.02.2017
16:09:26
Я так думаю, что по идее Котлин это или Джава разницы быть не должно. Правда в слаке только сегодня проскакивало, про какие-то какие-то проблемы инкрементальной компиляции

Но проблемы пофиксят, а модульность останется ?

Aliaksei
11.02.2017
16:21:45
мне вот реально пофиг 2 или 6 секунд всё собирается

balolam
11.02.2017
16:59:25
мне вот реально пофиг 2 или 6 секунд всё собирается
Холодный старт в 8 минут, проект полностью на Kotlin, стоит SSD, build.gradle настроен)

Google
Aliaksei
11.02.2017
17:00:44
согласен. Но... 8 МИНУТ?

balolam
11.02.2017
17:00:49
Mac mini средний)

Aliaksei
11.02.2017
17:01:03
Братишка, у меня огромный OSGI проект собирался за 2

а если с демоном градле так вообще бывло за 1.3

balolam
11.02.2017
17:01:34
согласен. Но... 8 МИНУТ?
Да, именно так. У меня конечно 8 оперативы, но все же это долго

balolam
11.02.2017
17:02:23
Маловато 8 )
SSD всего в три раза медленнее оперативки)

Aliaksei
11.02.2017
17:02:42
Не ну депенденси не качались, и не проверялось наличие новых

а так, обычный старт, с clean

хотя с clean там вроде 4 минуты было

balolam
11.02.2017
17:03:11
Aliaksei
11.02.2017
17:03:28
но 8 минут это круто

balolam
11.02.2017
17:03:29
хотя с clean там вроде 4 минуты было
Я об этом. Это и есть холодный старт

Aliaksei
11.02.2017
17:04:02
ну я так делал, пришёл на работу, запустил, пошёл сделал кофе, и дальше работаешь нормально))

Aliaksei
11.02.2017
17:04:53
эм, ну нет

для osgi?

у меня и так это работало более менее

Google
Aliaksei
11.02.2017
17:05:17
"из коробки"

balolam
11.02.2017
17:05:30
Для меня. Но я говорю с опыта, как есть, ведь был вопрос про проект на Kotlin

Aliaksei
11.02.2017
17:05:54
ну наверное на Java он бы тоже столько собирался.

Какой то очень большой проект или он делает во время сборки ещё майнинг биткоинов?

balolam
11.02.2017
17:06:29
Плюс annotation processing играет роль, там поговаривают что kapt просаживает

Михаил
11.02.2017
17:41:22
в котлине есть небуквенный символ, которым можно назвать метод?

:(

Руслан
11.02.2017
17:53:47
fun `?`(arg: String) {}

как-то так даже можно)

Alex
11.02.2017
17:54:51
fun `?`(arg: String) {}
Это минимум 3 символа

Михаил
11.02.2017
17:56:22
это три символа и в андроид студии смайлик не разрешен в имени меода

есть кейс. хочу чтоб была такая конструкция var mLoginBtn: Button = R.id.login_btn

при этом после присвоения int

а слева даже близко не инт

реально на котлине что-то похожее замутить?

на экстеншн функции

Андрей
11.02.2017
18:00:36
а чем https://kotlinlang.org/docs/tutorials/android-plugin.html не устраивает?

Михаил
11.02.2017
18:01:23
а его не надо анбиндить?

Sergey
11.02.2017
18:01:42
Google
Aliaksei
11.02.2017
18:02:00
делегат + экстеншен функция сделают своё дело

Михаил
11.02.2017
18:02:20
делегат + экстеншен функция сделают своё дело
ну решение вортона не очень нравится

походу ссылка выше лучший вариант

который пока нашел

Aliaksei
11.02.2017
18:03:09
https://youtu.be/GrzG5zoMREs?t=328

private val btn: Button by findViewById(R.id.btn)

и никакой магии

всё в итоге не наллабл, финально и вообще ещё и бибикает

Михаил
11.02.2017
18:12:17
private val btn: Button by findViewById(R.id.btn)
и то есть каждый раз при обращении у меня вьюшка будет искаться?

Aliaksei
11.02.2017
18:12:29
один раз при первом обращении

Михаил
11.02.2017
18:12:50
тогда же надо добавить by lazy

Aliaksei
11.02.2017
18:12:56
на видео постепенно и подробное объяснение есть

реализация уже lazy в себе содержит

Михаил
11.02.2017
18:13:30
если просто by то у делегата будет вызываться метод getValue каждый раз

понял

но вот проблема

у класса Delagates нету метода lazy

Boris
11.02.2017
18:19:28
И не нужно. lazy это функция в пакете

Михаил
11.02.2017
18:20:45
нежданчик

Boris
11.02.2017
18:21:55
И делегат сам внутри lazy реализует, findViewById ни во что больше оборачивать не надо

Google
Михаил
11.02.2017
18:24:19
то есть?

мне именно важно чтоб каждый раз не вызывалась функция инициализации

Boris
11.02.2017
18:25:19
Она и не будет

Михаил
11.02.2017
18:25:20
вызывалась ток один раз при первом вызове

Она и не будет
а если я пишу своего делегата?

с getValue

Anton
11.02.2017
18:34:21
Boris
11.02.2017
18:34:22
Он метод getValue вызывает каждый раз, но это не значит что нельзя при первом обращении сохранить

В поле

И потом возвращать

Михаил
11.02.2017
18:35:36
Boris
11.02.2017
18:36:50
ну да, в классе делегата lazy-поле

т.е. еще один делегат

Страница 34 из 982