@kotlin_lang

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

Kirill
30.01.2018
11:18:00
не, не

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

Igor
30.01.2018
11:22:53
Стейт машину более высокого уровня, так сказать. типа сложного UI стейта, который куда-то там переходит и в процессе что-то делает, например.
Типа TEA что ли? Я лично вижу в этом проблему, что события могут независимо приходить от UI, в не зависимости от состояния.

Google
Igor
30.01.2018
11:24:12
The Elm Architecture

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

Kirill
30.01.2018
11:25:59
https://t.me/kotlin_mobile/3027
о, кайф. спасибо

Igor
30.01.2018
11:26:28
https://t.me/kotlin_mobile/3027
В смысле что стейт машина под капотом? Тогда получается что любой код работаютщий с UI и корутинами - это стейт машина.

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
А теперь грущу, что на корутинах транзакционные акторы не напишешь (

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
ты из прошлого?
я вернул 2007))))

Bulat
30.01.2018
12:06:47


Насколько плохо так делать?

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

то есть если использовать is то потом уже не надо делать as

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

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



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
лайк #tea #elm Это имеет ещё какие-нибудь названия? Redux — оно или нет?
Redux is inspired by Facebook’s Flux and influenced by functional programming language Elm.[2] Он взял идеи из Elm, но реализован немножко под другом и там из коробки нет поддержки сайд-эффект функций (еще на вебе там жс вместо языка-программирования ?)

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

Quantum Harmonizer
30.01.2018
12:26:39
@Harmonizr ну с null check'ами я знаком) меня больше волновало что конкретно он делает
Зависит от того, что такое transitionForward. А человека, который это писал, уже не найти?)

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

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. Алексей Пирогов”

Михаил
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
На котлине как создат immutable list immutableListOf идеа не нашол
listOf() возваращает иммутабельную реализацию

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

Igor
30.01.2018
13:41:20
listOf() — иммутабельный пустой лист, listOf(1 arg) — иммутабельный singletonList, listOf(vararg) — ArrayList
Ну если не кастить и не заглядывать в исходник, то контракт ( List<T> ) говорит, что результат listOf() иммутабельный/readonly. Хотя конечно можно было бы и завернуть в Collections.unmodifiableList

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
https://stackoverflow.com/questions/42725749/observable-combinelatest-type-inference-in-kotlin
Это с BiFunction в котором мы описываем каждый элемент.

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

который не работает

Osip
30.01.2018
14:48:01
1400 со скидкой. Скидка на сайте котлина
O.o На сайте издательства вроде 800

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

Konstantine
30.01.2018
14:51:40
combileLatest(a, b, c, d, e, Function5 { ... })
Я знаю об этом и это еще большая дичь.

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
Чего ты хочешь от массива Any? Не могу понять
Я хочу узнать, можно ли как-то засунуть туда не Any.

он хочет чтобы там был не Any, а другой тип, но для этого в arrayOf(...) все должны наследовать этот тип
Здесь дело не в наследовании, а в том, что комбайн принимает только массив эни.

Quantum Harmonizer
30.01.2018
14:53:33
Я хочу узнать, можно ли как-то засунуть туда не Any.
ну если все обзёрваблы будут T, то и массив будет от T.

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 репос?

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