Size: a a a

Kotlin Community

2020 July 22

KZ

Konstantin Zolotov in Kotlin Community
Pavel Erokhin
Понял, спасибо. Просто с точки зрения дизайна - показалось не очевидным.
Про перестановку операторов хороший совет. То, что бросит timeout пойдет дальше вниз по стриму и после этого стрим остановится.
источник

PE

Pavel Erokhin in Kotlin Community
Konstantin Zolotov
Про перестановку операторов хороший совет. То, что бросит timeout пойдет дальше вниз по стриму и после этого стрим остановится.
Да ,спасибо, я учел)
источник

EP

Eugene P. in Kotlin Community
Pavel Erokhin
Ребят, кто с Rx работал, это норм что не обрабатывается исключение в doOnError?
Нужно использовать onErrorReturn`или `onErrorResumeNext
источник

PE

Pavel Erokhin in Kotlin Community
ну из названия видно что не много для другой цели)
источник

RU

Roman Ushakov in Kotlin Community
Не подскажите есть у кого опыт использования котлиновских di либ?
Хочу на десктопе приложение собрать, но естественно не потяну же я spring/micronaut в такое приложение (старт дико медленный, секунд 10-30 старт приложения)

Есть что-то быстрое и с кучей фишек, необязательно простое в использовании?
источник

D

Dmitry in Kotlin Community
Roman Ushakov
Не подскажите есть у кого опыт использования котлиновских di либ?
Хочу на десктопе приложение собрать, но естественно не потяну же я spring/micronaut в такое приложение (старт дико медленный, секунд 10-30 старт приложения)

Есть что-то быстрое и с кучей фишек, необязательно простое в использовании?
Так любые сервис локаторы жвм. ktor, toothpick, можно взять толстый dagger
источник

ПГ

Павло Гриник... in Kotlin Community
koin/kodein
источник

SB

Sergey Barmin in Kotlin Community
для di вроде достаточно и условного koin' а
источник

D

Dmitry in Kotlin Community
самый простой наверное koin
источник

D

Dmitry in Kotlin Community
На самом деле для сервис локатора достаточно руками написать синглтон с ленивыми полями. На котлине мало строчек занимает.
источник

RU

Roman Ushakov in Kotlin Community
Можно и свой, конечно, но поддерживать замучаюсь и так наполеоновские планы =_=
источник

RU

Roman Ushakov in Kotlin Community
koin неплохой вариант, спасибо
источник

К

Кирилл in Kotlin Community
Ребят, подскажите, можно ли это упростить или вообще по-другому решить такую задачу?
https://pastebin.com/m0fXFgDd
Напрягает, что для такой простой проверки столько кода нужно. Обычно это признак того, что что-то не так
источник

SB

Sergey Barmin in Kotlin Community
when {
 num.isNullOrBlank() -> {}
 num.matches().not() -> {}
 else -> success
}
источник

К

Кирилл in Kotlin Community
Sergey Barmin
when {
 num.isNullOrBlank() -> {}
 num.matches().not() -> {}
 else -> success
}
Думаю, это не сработает, т.к. when идёт до первого совпадения, а их может быть и 2
источник

SB

Sergey Barmin in Kotlin Community
Кирилл
Думаю, это не сработает, т.к. when идёт до первого совпадения, а их может быть и 2
в этом случае кажется что о двух совпадениях сообщать бессмысленно.
источник

К

Кирилл in Kotlin Community
Нууу... Я бы не сказал. Кажется, лучше юзеру сразу обо всех косяках в форме сообщать, а не заставлять по одному исправлять (:
источник

К

Кирилл in Kotlin Community
Хм. Хотя. Стоп. Ты, наверное прав. В этом случае можно заменить. Т.к. косяки взаимоисключающие
источник

К

Кирилл in Kotlin Community
Sergey Barmin
в этом случае кажется что о двух совпадениях сообщать бессмысленно.
Благодарю
источник

SR

Sergey Rostov in Kotlin Community
Ruslan Ibragimov
Реконсиляция завязана на порядок вызова composable функций, теперь представим что мы создали такой объект и поменяли его в одном компоненте и тут же дернулся колбек в другом компоненте и сломалась рекосиляция:

class Position(x: Int, y: Int) {
var x by mutableStateOf(x)
var y by mutableStateOf(y)
}

val p = remember { Position(0, 0) }

@Composable fun Foo() {
PositionChanger(
  position=p,
  onXChange={ p.x = it }
  onYChange={ p.y = it }
)
}

@Composable fun Bar() {
PositionChanger(
  position=p,
  onXChange={ p.x = it }
  onYChange={ p.y = it }
)
}

@Composable fun Baz() {
   Bar()
   Foo()
}
это не так работает. MutableState можно создавать снаружи тут нет проблем. Изменение не вызовет composable функции напрямую, вместо этого будет зашедулено обновление дерева с нужных мест и composable фукнции будут вызываны в процессе обновления.
источник