
Kirill
30.01.2018
11:17:34
Там прямо так и называется этот объект.

Kirill
30.01.2018
11:18:00
не, не
Стейт машину более высокого уровня, так сказать.
типа сложного UI стейта, который куда-то там переходит и в процессе что-то делает, например.

Igor
30.01.2018
11:22:53

Google

Kirill
30.01.2018
11:23:33

Igor
30.01.2018
11:24:12
The Elm Architecture

Quantum Harmonizer
30.01.2018
11:25:01

Phil
30.01.2018
11:25:28
Угу. В стейт-машинах обычно проблема по синхроонизации по общим ресурсам, через корутины это не всегда удобно делать (особенно если общие ресурсы - это базы)

Kirill
30.01.2018
11:25:59

Igor
30.01.2018
11:26:28

Kirill
30.01.2018
11:26:56

Phil
30.01.2018
11:27:33
Ну, последний раз, как мне надо было писать стейт-машину, я написал транзакционные акторы (

Igor
30.01.2018
11:27:46
Kirill ты про Redux вкурсе? Ты этого хочешь, только + корутины?

Phil
30.01.2018
11:28:12
А теперь грущу, что на корутинах транзакционные акторы не напишешь (

Kirill
30.01.2018
11:28:18

Igor
30.01.2018
11:40:28
а что такое TEA?
не гуглится совсем
https://i.gyazo.com/a0b10e078a0f910f6a82b2ef1bcb17f1.png
Основные компоненты TEA:
- Набор сообщений Msg (который в Kotlin выражен sealed классом)
- Состояние UI в классе Model
- Три чистые (но не в Котлине) функции
— init(…) - возвращает начальное состояние + команду (опционально)
— update(…) - получает “состояние”, “паттерн-матчит его” и возвращает новое состояние + команду (опционально)
— view(…) - получает “состояние” и возвращает UI иерархию
Новые сообщения порождаются либо пользователем, либо при выполнение команд.
Они снова приходят в update, потом view и получается бесконечный цикл, похожий на конечный автомат.

Ilya
30.01.2018
11:40:53

Google

Денис
30.01.2018
11:41:17
Кажется, некрасиво шарить здесь варез, не?

Ilya
30.01.2018
11:41:46
по этому и не кидаю

Artem
30.01.2018
11:42:09
есть же генлиб на все случаи жизни

Sergey
30.01.2018
11:42:36
ой лол сообщение год назад написал

Ilya
30.01.2018
11:43:42
баги) везде ссущие баги)

Sergey
30.01.2018
11:43:56
ты из прошлого?
покупай там битки

Ilya
30.01.2018
11:45:52

Bulat
30.01.2018
12:06:47
Насколько плохо так делать?

Nikolay
30.01.2018
12:11:46
так вроде ж кастить уже не надо, смарт каст и все такое..
то есть если использовать is то потом уже не надо делать as

Bulat
30.01.2018
12:14:56

Igor
30.01.2018
12:15:17
Это получается в дебаге будут утечки подписок?
Потому что дебаг вызывает все свойства для отображения, а ты в них подписываешся.

Bulat
30.01.2018
12:16:19
вопрос больше касался extension field

Quantum Harmonizer
30.01.2018
12:21:14

Vitalii
30.01.2018
12:22:39
Redux — это из react мира.

Google

Vadim
30.01.2018
12:22:57
можно пояснить такой вот метод:
fun Activity?.transitionForward(transitionCallback: () -> Unit) {
if (this == null) return
(fragmentManager?.findFragmentById(R.id.container) as? TransitionFragment)
?.transitionForward(transitionCallback) ?: transitionCallback.invoke()
}
поправьте пожалуйста, если нажатие по данной активите не происхдит, тогда мы выходим из метода
иначе находим контейнер(кастим поиск по) TransitionFragment после чего обрабатываем нажатие иначе вызываем элвис оператор который не совсем понятно что делает)

Igor
30.01.2018
12:23:00

Quantum Harmonizer
30.01.2018
12:25:02

Vadim
30.01.2018
12:26:03
@Harmonizr ну с null check'ами я знаком) меня больше волновало что конкретно он делает

Quantum Harmonizer
30.01.2018
12:26:39

Vitalii
30.01.2018
12:26:51
Куда почитать?

Даниил
30.01.2018
12:27:40

Vitalii
30.01.2018
12:29:39
Спасибо.

Igor
30.01.2018
12:30:35
Спасибо.
На днях был митап MOSDROID (ссылка есть в @kotlin_mobile ), там первый доклад был по “Unidirectional архитектурам” и конкретно по Elm
Еще можешь посмотреть на youtube доклад “The Elm Architecture: model, view & update your UI. Алексей Пирогов”

Vitalii
30.01.2018
12:32:23

Михаил
30.01.2018
12:36:58
Подскажите туториалы по kotlin.collection, в частности по всем этим функциям (map, flatmap и тд), с примерами, доки читал но там столько всего и зачастую не очень понятно.

Axrorxo'ja
30.01.2018
13:27:51
На котлине как создат immutable list immutableListOf идеа не нашол

Gleb
30.01.2018
13:28:16

Axrorxo'ja
30.01.2018
13:28:57

Quantum Harmonizer
30.01.2018
13:33:52
listOf() — иммутабельный пустой лист,
listOf(1 arg) — иммутабельный singletonList,
listOf(vararg) — ArrayList

Igor
30.01.2018
13:41:20

Konstantine
30.01.2018
14:42:14
RxJava + kotlin.
combineLatest принимает массив источников и как-то обрабатывает в лямбде. но в лямбде обязательно определяется тип Array<Any>. Можем ли мы как-то задать тип данных в массиве сразу?

Siarhei
30.01.2018
14:43:15
https://stackoverflow.com/questions/42725749/observable-combinelatest-type-inference-in-kotlin

Google

Konstantine
30.01.2018
14:45:16

Siarhei
30.01.2018
14:46:46
нужен пример кода
который не работает

Osip
30.01.2018
14:48:01

Konstantine
30.01.2018
14:50:15
Observable.combineLatest(
arrayOf(loginObservable, nameObservable, emailObservable, phoneObservable, passwordObservable),
{ it[0] as Boolean && it[1] as Boolean && it[2] as Boolean && it[2] as Boolean && it[4] as Boolean }
)
Хочется не кастовать всё к булам

Siarhei
30.01.2018
14:51:13
так а у верхнего массива какой тип? я так понимаю общий предок как раз Any

Quantum Harmonizer
30.01.2018
14:51:27
Observable.combineLatest(
arrayOf(loginObservable, nameObservable, emailObservable, phoneObservable, passwordObservable),
{ it[0] as Boolean && it[1] as Boolean && it[2] as Boolean && it[2] as Boolean && it[4] as Boolean }
)
combileLatest(a, b, c, d, e, Function5 { ... })

Konstantine
30.01.2018
14:51:40

Quantum Harmonizer
30.01.2018
14:52:05
Чего ты хочешь от массива Any? Не могу понять

Konstantine
30.01.2018
14:52:52
Почему?
Потому что вместо аккуратного массива отдельные переменные под каждый обсервабл. Если вдруг понадобится еще добавить или убрать, то менять и функцию и переменные.

Siarhei
30.01.2018
14:52:55
он хочет чтобы там был не Any, а другой тип, но для этого в arrayOf(...) все должны наследовать этот тип
общего предка нету - вот тебе и Any

Konstantine
30.01.2018
14:53:06

Quantum Harmonizer
30.01.2018
14:53:33

Konstantine
30.01.2018
14:53:54

Google

Konstantine
30.01.2018
14:54:01
Ибо так у меня и есть, но оно не так

Siarhei
30.01.2018
14:55:40
ну это легко проверить
типизируй arrayOf<>

Quantum Harmonizer
30.01.2018
14:56:04
без толку

Konstantine
30.01.2018
14:57:04

Quantum Harmonizer
30.01.2018
14:57:06
там действительно упоротая сигнатура

Konstantine
30.01.2018
14:57:51
Печальное дело.

Quantum Harmonizer
30.01.2018
14:58:18
Теперь я могу со спокойной совестью продолжать хейтить Rx.

Руслан
30.01.2018
14:59:12
а можно ссылочку на javadoc

Quantum Harmonizer
30.01.2018
15:00:12
http://reactivex.io/RxJava/2.x/javadoc/io/reactivex/Observable.html#combineLatest-java.lang.Iterable-io.reactivex.functions.Function-

Руслан
30.01.2018
15:02:24
обязательно array было использовать интересно, могли бы лист взять и нормально сделать..

Sergey
30.01.2018
15:12:35
интересно подвезут ли в экстешены каналам остальные операторы из rx?
buffered, window, combineLast и тд
хотя можно самим сделать отдельную репу, там собрать все аналоги, а потом нужные заберут в kotlinx репос?