
Boris
03.02.2017
17:24:10
Свой движок или сторонний какой?

Igor
03.02.2017
17:24:17
libgdx

Boris
03.02.2017
17:24:35
Так и думал

Igor
03.02.2017
17:25:30
Очевидно же
У меня все мысля ходит, написать на нем _приложение_, ведь там есть базовый набор контролов + kotlin dsl для UI.
Из плюсов: кросплатформенность и тестирование/отладка без эмуляторов.

Google

Boris
03.02.2017
17:25:54
Я просто на досуге занимаюсь движком который должен а итоге быть полностью на котлине и имеет возможность собирать еще в жс
С rx, биндингами, di и другим преферансом
Да, склетное приложение не помню как называется, сделано на нем, но там явно не голый либгдх

Igor
03.02.2017
17:35:14
С rx, биндингами, di и другим преферансом
Такой то мейнстрим: RX + MVVM + DI (наверное Dagger2).
Когда же уже народй перейдет на функциональное программирование на JVM/Android?
Был бы нормальный haskell под android, наверное ушел бы на него ?

Михаил
03.02.2017
17:39:28

Boris
03.02.2017
17:40:54
Функциональный подход пока не для геймдева
Слишком много состояний

Igor
03.02.2017
18:07:25
в чем выгода от такого перехода?
Для динамической игры точно никакого.
А вот статичные окна (меню/настройки/магазин) можно спокойно сделать.
В том же Xamarin есть поддержка F#.

Boris
03.02.2017
18:20:57

Igor
03.02.2017
18:28:46
Знаете как работает ReactJS и компоненты в нем?

Boris
03.02.2017
18:44:29
ну да, в общих чертах
но я бы в полной мере функциональным этот подход не назвал
вроде, по сути там самые обычные компоненты, и биндинги в шаблонах, чего-то такого особо функционального там не помню

Google

Igor
03.02.2017
18:59:21
Конечно в основном на функциях и у нас сделана бизенс-логика (авторизация/покупки/логика показы рекламы ?).
Компоненты просто мапят данные из функций в UI контролы (там и биндига никакого нет в понимании MVVM).
Можно было бы сделать более функ. код с подходом Redux, но мне это кажется слишком радикальным.

Boris
03.02.2017
19:05:35
всё равно не понял, почему он функциональный :-)
наверное в какой-то мере функциональным подходом можно называть биндинги, javafx довольно хороший пример

Руслан
03.02.2017
21:16:51

Михаил
03.02.2017
21:26:41
33 февраля
Норм

Руслан
03.02.2017
21:31:51
Самое смешное что у меня сильное дежавю, и вправду, не я один такой https://twitter.com/shipilev/status/827125162608824321

Sasha
04.02.2017
04:29:20

Yuri
05.02.2017
14:20:30
коллеги, а подскажите, куда конкретно этот флаг надо писать?
собираю gradle`ом

Руслан
05.02.2017
14:24:37
http://kotlinlang.org/docs/reference/using-gradle.html#attributes-specific-for-kotlin
compileKotlin {
kotlinOptions {
jvmTarget = "1.8"
}
}
попробуй

Yuri
05.02.2017
14:28:56
попробовал, не помогло

pplcf
05.02.2017
14:54:33
в самой ИДЕ то 1.8 стоит?
Project Structure -> Project SDK
там еще Language level 8 поставь

Михаил
05.02.2017
15:44:28
вышла финальноая версия Kotlin in Action
никто не в курсе, там сильно много поменялось? стоит перечитать?

Google

Yuri
05.02.2017
17:51:54

pplcf
06.02.2017
06:10:33
Restart & Invalidate Caches

Aliaksei
06.02.2017
12:40:08
Чёт затупил что не нравится

Руслан
06.02.2017
12:41:35
http://kotlinlang.org/docs/reference/generics.html
Вот тут ответ ;)

Vlad
06.02.2017
12:50:11
на хабре еще статья была))
короче у тебя там T обявлено как выходящий дженерик тип (из которого можно брать), в этом случае он ковариантный, если я правильно помню
короче, мне и самому перечитать не мешает)

Aliaksei
06.02.2017
12:53:13
Ну вот про out in я наверное раз пять читал когда знакомился с котлином, но там у меня нету места для in
class PaginationResult<out T>(val page: Int, val total: Int, val data: List<T>)

Руслан
06.02.2017
12:54:10
Хм, а листе ты конкретно T используешь?
out T

Aliaksei
06.02.2017
12:55:25
эм, да
но я не работаю с элементами
просто PaginationResult.data
поэтому у меня и возник вопрос, wtf?
сделал как в джавке

Руслан
06.02.2017
12:58:08
А у тебя T на классе было?

Google

Aliaksei
06.02.2017
12:58:39
ну и на классе где функция

Руслан
06.02.2017
12:59:18

Aliaksei
06.02.2017
12:59:43

Quantum Harmonizer
06.02.2017
13:03:09
Какой няшный шрифт. Ретина?

Boris
06.02.2017
13:03:38
да, тоже на шрифт обратил внимание

Dmitry
06.02.2017
13:03:50
fira code?

Aliaksei
06.02.2017
13:04:12
Вы мне лучше расскажите почему не компилится))
да, ретина и firacode

Boris
06.02.2017
13:04:25
и про дженерики можно было бы что-то сказать, если бы кусок кода, который не работает в виде текста прислать
а так по картинке гадать тяжело

Aliaksei
06.02.2017
13:04:49
Согласен, сделаю

Boris
06.02.2017
13:05:12
я подозреваю в чем дело, но лучше посмотреть на текст

Руслан
06.02.2017
13:06:35
class Sample<out T>(val data: T) {
fun work(other: T) {
}
}

Aliaksei
06.02.2017
13:07:08
не... ну это как вообще с моим примером похоже?

Руслан
06.02.2017
13:07:23
Идентично по смыслу

Aliaksei
06.02.2017
13:07:28
ок, почему?
Ну как бы я понимаю что ты имеешь ввиду
но у меня там лябмда принимается

Руслан
06.02.2017
13:12:15
Ну ты типо говоришь: да мне пох что сюда придет, хоть any

Google

Boris
06.02.2017
13:12:56
если утрировать, то in и out они называются, потому что те, что in они должны на вход приходить (в параметры), а те, что out наоборот возвращаться, но в твоем случае этим типом ты параметризируешь тип возвращаемый из функции, тем самым он поправдает в позицию in

Aliaksei
06.02.2017
13:23:31
@fogone Ну вот теперь я буду иметь это ввиду, в моём же случае я не передавал тип в функцию, а передал лябду которая возвращает этот тип и подумать то не мог что это будет засчитано как in
в доках такого не нашёл, и не считаю до сих пор что это прям логично, не?

Boris
06.02.2017
13:24:08
да не, тут в дженериках всё более чем всё непонятно

Aliaksei
06.02.2017
13:24:39
ведь я передаю функцию, которая "возвращает" <T>

Boris
06.02.2017
13:24:43
я сейчас пытаюсь простой кейз придумать, чтобы было понятно, почему оно так работает
проблема в том, что саму функцию ты тоже принимаешь в параметр

Aliaksei
06.02.2017
13:25:19
я бы понял если было так fn: (t: Pagination<t>) -> Unit

Boris
06.02.2017
13:26:36
я попробую сейчас подобрать кейз
это не всегда просто

Aliaksei
06.02.2017
13:26:47
Да ладно, не парься
Надо задать вопрос из jb ))
> проблема в том, что саму функцию ты тоже принимаешь в параметр
Ну как бы... такое

Boris
06.02.2017
13:27:35
дженерики вещь хрупкая

Aliaksei
06.02.2017
13:27:48
Да норм

Boris
06.02.2017
13:28:10
накладываем много ограничений, и они не всегда сходятся друг с другом