@kotlin_lang

Страница 235 из 982
Umren
06.07.2017
12:15:12
так ты вначале пиши так же, это никак не вредит, а потом будешь уже поднатаскиваться в idiomatic

Anton
06.07.2017
12:15:21
так и делаю)

Umren
06.07.2017
12:15:31
неидиоматичный котлин который как джава всеравно лучше выглядит чем просто джава

а когда будешь его апгрейдить будет еще круче

Google
Ivan
06.07.2017
12:25:24
привет, гляньте на этот кусок и подскажите как бы организовать его получше



не нравиться this.view = view as V - есть более грамотное решение?

Lost
06.07.2017
12:26:04
народ, дата класс в качестве модельки для ретрофита ведь можно использовать?

Lost
06.07.2017
12:27:02
а аннотации перед валами норм распарсятся?

Руслан
06.07.2017
12:27:03
А у view есть супер класс или интерфейс?

Ivan
06.07.2017
12:27:56
А у view есть супер класс или интерфейс?
допустим есть общий интерфейс

Igor
06.07.2017
12:28:21
А как еще их юзать?
Да пока сам не знаю. Думал заюзать при описания предметной области по T(ype)DD, но что-то не получается.

whalemare
06.07.2017
12:28:27
не нравиться this.view = view as V - есть более грамотное решение?
Вроде нет. reified только для методов inline

Руслан
06.07.2017
12:28:55
допустим есть общий интерфейс
abstract class BasePresenter<out T : View>

whalemare
06.07.2017
12:29:43
кстати, а зачем тебе сеттить View как Any? тип же явно V будет

Руслан
06.07.2017
12:29:45
и в setView будет соответсвенно View?

Google
whalemare
06.07.2017
12:30:58
компилятор ругается)
Нууу хз хз, не должен

ща

компилятор ругается)
Вот моя имплементация презентера и там без всяких any https://gist.github.com/whalemare/53752af91c0aa9403fe37d6097f236e3

whalemare
06.07.2017
12:34:32
В смысле, как используется хочешь посмотреть?

Ivan
06.07.2017
12:35:00
ага

whalemare
06.07.2017
12:36:30
ага
Добавил, правда не фрагмент, но суть одна

Artem
06.07.2017
13:06:59


У меня в таком случае затормозится и выполнение корутины?

Не могу понять до конца, как корутины работают

Roman
06.07.2017
13:08:59
@TemMax В данном примере всё будет работать и если убрать runBlocking и заменить delay на sleep

Ибо корутиты запускаются (launch) в отдельном пуле потоков (CommonPool)

runBlocking { delay(xxx) } это примерно то же что Thread.sleep(xx). Разница в том, что изнутри runBlocking блока можно еще и suspend функции вызывать, но данный пример этой возможностью ни как не пользуется, поэтому в данном примере все-равно

Artem
06.07.2017
13:20:57
Этот момент понял. Спасибо!) Так же остались недопонимания по поводу suspend функций. Если у меня, к примеру, в блоке async(UI){} идёт несколько последовательных suspend функций, то они будут выполняться только последовательно? При этом, если функция не suspend, то я могу использовать .await() для того, чтобы приостановить корутину до завершения выполнения этой не suspend функции. Так?

Вроде бы как так получается. Вчитался ещё пару раз в объяснение и перечитал пример и понял. Спасибо за пояснения)

Artem
06.07.2017
13:25:33
если внутри suspend функция без delay то они выполнятся последовательно, да
даже если и внутри функции delay, то они будут выполняться последовательно

? animufag ?
06.07.2017
13:26:00
Google
Artem
06.07.2017
13:26:36
вот тут пример: https://github.com/Kotlin/kotlinx.coroutines/blob/master/coroutines-guide.md#composing-suspending-functions

и вроде работает как надо

? animufag ?
06.07.2017
13:27:39
даже если и внутри функции delay, то они будут выполняться последовательно
происходит delay, включается работа следующей суспенд функции. разве не в этом идея

Artem
06.07.2017
13:28:35
нет. delay срабатывает внутри suspend функции, как я понял и влияет только на то, что происходит внутри этой suspend функции. А пока она не завершится, то не пойдёт выполнение дальше за эту suspend функцию

я выше кинул ссылочку с привязкой к абзацу, оттуда перечитав понял

? animufag ?
06.07.2017
13:29:45
или сейчас речь только про runBlocking?

у меня правда они внутри launch выполнялись последовательно, но я ещё толком не читал как оно должно работать)

вообще жили себе андроид разработчики с джавой и rx и всё было более менее ок

говорили друг другу про фп, как классно мёржат, флэтмапят

а потом котлин пришёл и все на него подсели. а когда подсели в него закинули корутины. и теперь все думают что с ними сделать чтобы быть в тренде

алсо не понимаю что делать с контекстом у continuation. из интерфейса это просто мап какойто. из дебагера видно что там переменные хранятся и стейт. но его не сериализовать, ни послать никуда

Ilya
06.07.2017
14:52:57
https://twitter.com/RunChristinaRun/status/882974255972892672

Sergey
06.07.2017
14:58:21
это которая из Pinterest?

Ilya
06.07.2017
15:01:44
Да

Я думаю, она собирает материал для KotlinConf

? animufag ?
06.07.2017
15:03:09
можете второе предложение пояснить. ну и кто это вообще

понятно что второе предложение можно скипнуть. просто напрягает, что нет догадок

Anton
06.07.2017
15:05:59
"Nothing is too small to point out!" ?

Google
? animufag ?
06.07.2017
15:06:24
да

Anton
06.07.2017
15:06:27
типа это касается даже самых мелочей

? animufag ?
06.07.2017
15:08:44
спс

Igor
06.07.2017
15:21:53
Kotlin не видит сгенеренные (библиотекой Litho) сорцы в папке /apt/. Есть у кого снипет на правильную настройку? Пытаюсь по этому https://blog.nishtahir.com/2016/06/25/how-to-get-idea-to-detect-kotlin-generated-sources-using-gradle/ но что-то не очень помогает.

? animufag ?
06.07.2017
15:39:58
лол https://youtrack.jetbrains.com/issue/KT-2780 https://youtrack.jetbrains.com/issue/KT-4749

5 лет прошло

Max
06.07.2017
17:37:20
Да и это бесит

Igor
06.07.2017
17:39:42
лол https://youtrack.jetbrains.com/issue/KT-2780 https://youtrack.jetbrains.com/issue/KT-4749
А что с ними? Не вижу никакой активности. Да и как-то все равно, привыкли уже.

Admin
ERROR: S client not available

? animufag ?
06.07.2017
17:41:00
ну я чёт давно эти константы в коде не писал и вот

ну ещё и диагностика такая смешная

мол нужен инт а у тебя интегер

Igor
06.07.2017
17:48:19
А все таки прикольно было бы дергать suspend из Java, передавая лямбду. Правда CoroutineContext (особенно) и resumeWithException все обламывают.

? animufag ?
06.07.2017
17:59:34
как думаете возможно сделать функцию inline fun <T, S:T> filterSubtype(list: List<T>): List<S>

Михаил
06.07.2017
18:00:45
ну именно в такой сигнатуре думаю нет)

угадал?

? animufag ?
06.07.2017
18:01:11
не знаю))

ладно попробую сделать

Михаил
06.07.2017
18:01:25
возможно если reifeid добавить, то получится

? animufag ?
06.07.2017
18:01:41
у меня просто чуть сложнее функция и там erased types вылезает

Google
? animufag ?
06.07.2017
18:01:48
о

точно

Igor
06.07.2017
18:02:47
? animufag ?
06.07.2017
18:03:32
да, подзабыл про такое слово. думал inline достаточно

Dmitriy
06.07.2017
20:10:19
всем привет, подскажите немного про dynamic. У меня есть JSON, полученный из моего REST-API. У меня он находится в переменной с типом dynamic. Его как-то простым образом можно сконвертировать в нормальный модельный класс, или нужно из него просто руками собрать объект?

Oleg
06.07.2017
20:22:51
Через Ретрофит можно сразу модель получать

Там Gson converter

У модели должны поля быть обозначены

@SerializableName как-то так

Призабыл

Dmitriy
06.07.2017
20:25:01
Через Ретрофит можно сразу модель получать
а эта штука запустится если проект js?

она разве не Java?

Igor
06.07.2017
20:25:27
а эта штука запустится если проект js?
Никак, надо сразу уточнять что ты про JS (хотя по dymamic уже понятно, но не всем)

Dmitriy
06.07.2017
20:25:41
чего-то не подумал )

я думал dynamic только в js используют

Dmitriy
06.07.2017
20:38:02
а как вообще для бэкенда и фроентэнда использовать одни и те же модельные классы? я вот пример смотрю, который фуллстэк на гитхабе, там модельные классы, как я понял, просто скопированы из одного проекта в другой

Igor
06.07.2017
20:39:16
А если вынести в отдельную либу/модуль?

Dibro
06.07.2017
20:39:35
А если вынести в отдельную либу/модуль?
пока нет полноценного механизма кросс-модулей

хотя я где-то видел нечто подобное...

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