
? animufag ?
27.04.2017
21:52:44
ну идея понятна: если кто-то унаследуется от List<A> и кто-то другой от list<B> то выйдет казус и его нужно как-то решать. видимо заодно ещё оставили информация для рефлекшона
из интересного осталось только в javap посмотреть что выдаст наследование от ArrayList<Integer>
появятся ли там какие-нибудь поля и как будет называться класс

Dzmitry
28.04.2017
04:15:47
Там не вся инфа теряется на самом деле. Например если у тебя класс параметризирован, то оно знает каким типом

Google

Dzmitry
28.04.2017
04:17:09
https://youtu.be/_0c9Fd9FacU
Крутой доклад про дженерики

Руслан
28.04.2017
05:03:06
http://talkingkotlin.com/corda-with-mike-hearn/


Quantum Harmonizer
28.04.2017
07:56:24
Все правы. Дженерики стираются, но они остаются.
Стираются — в том смысле, что методы void x(List<String>) и void x(List<CharSequence>) имеют одинаковую сигнатуру (параметры типа частью сигнатуры не являются, что позволяет не ломать бинарную совместимость).
Остаются — в том смысле, что что эта метаинформация всё ещё доступна — это такие же аттрибуты, как, например, LineNumberTable или Exception Table.
P. S. ProGuard по умолчанию стирает эту информацию, именно поэтому Retrofit требует -keepattributes Signature для своей работы.
P. P. S. Я тут немного попротиворечил себе, потому что "частью сигнатуры не являются", но "-keepattributes Signature". Я бы сказал, что сигнатура — понятие размытое, и на уровне языка и на уровне JVM должно пониматься по-разному (например, тип возвращаемого значения на уровне языка не является частью сигнатуры, а на уровне JVM — является).
Конкретно об аттрибуте Signature: The Signature attribute records generic signature information for any class, interface, constructor or member whose generic signature in the Java programming language would include references to type variables or parameterized types.


Roman
28.04.2017
09:18:45
Warning:kotlin.reflect.jvm.internal.KFunctionImpl$caller$2: can't find referenced class java.lang.reflect.Executable
что я делаю не так?
в gradle:
compile "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"

Pavel Shackih
28.04.2017
09:20:55

Quantum Harmonizer
28.04.2017
09:21:24
Стоп, это ворнинг?
От ProGuard?

Roman
28.04.2017
09:21:42
но еще вчера все собиралось на том же окружении. по моему началось после обновления котлин плагина, но пока не уверен

Google

Quantum Harmonizer
28.04.2017
09:22:10

Roman
28.04.2017
09:22:13
могу игнор ворнингов включить, но хотелось бы понять в чем дело
потому что этот же код собирался еще вчера

Quantum Harmonizer
28.04.2017
09:22:39

Roman
28.04.2017
09:23:38
т.е. добавили поддержку новых классов в 1.1.2 получается
спасибо, помогло

Alexey
28.04.2017
09:37:59

Quantum Harmonizer
28.04.2017
09:40:54
Не всё, но я тоже на 1.1.2 =)

Михаил
28.04.2017
09:46:42
Не заметил разницы с 1.1.1) этонормально?

Quantum Harmonizer
28.04.2017
09:47:23
Должно чуть быстрее работать и содержать меньше багов. Задач они там закрыли over дофига.

Михаил
28.04.2017
09:48:06
баг что метод юзается, но подсвечивается как unused чет не пофикшен(

Roman
28.04.2017
11:03:25
у меня пока только проблема с reflect описанная выше
и еще я вышел за dex предел =/
отключил пока reflect вообще, код, который его юзает, пока у меня еще не используется, dex умолк, позже буду разбираться

Quantum Harmonizer
28.04.2017
11:05:11

Roman
28.04.2017
11:05:20
спасибо!
а разве apk analizer студии не тоже самое рисует?

Михаил
28.04.2017
11:06:14
он разве могет кружочек нарисовать?

Roman
28.04.2017
11:09:40
кружочек не может =))
но так ли он необходим

Google

Alexander
28.04.2017
11:09:55

Roman
28.04.2017
11:10:25
странно, аналайзер встроенный показывает 47,5 тыс методов всего
надо действительно разобраться почему декс ругался, мб прогард не отрабатывал
врядли рефлект добавляет столько

Михаил
28.04.2017
11:11:35
я щас ради интереса проект собрал с 1.1.2 плагином
сборка без варнингов прошла

Quantum Harmonizer
28.04.2017
11:12:02

Михаил
28.04.2017
11:12:29
в релизной сборке не юзается
а тут косяк с рефлектом? не увидел

Roman
28.04.2017
11:47:23
57тыс референсов без рефлекта
с рефлектом выходит за 64к
неужели столько методов в рефлекте?

FlaIDzeres
28.04.2017
13:04:03
Всем привет, вопрос по поводу coroutines, на github в readme есть такой use cases "a suspended coroutine may be serialized and stored in a DB" , это только в планах или уже реализовано? не могу ни один пример найти, последнее сообщение в https://github.com/Kotlin/kotlin-coroutines/issues/28 еще в 16 году

? animufag ?
28.04.2017
13:10:32
выглядит так как будто они сейчас уже легко сериализуемы
https://github.com/Kotlin/kotlin-coroutines/issues/58 вот здесь они разговаривают об этом как о само собой разумеющемся

FlaIDzeres
28.04.2017
13:12:46
Судя по всему да
Kotlin coroutines have been serializable since inception (in previous revision, too) in the same way as Scala's delimited continuations are, so I don't see any migration barrier here.
только я чет не вижу ни одного примера
в репозитории

? animufag ?
28.04.2017
13:33:08
внутри launc context is Serializable возвращает false

Google

? animufag ?
28.04.2017
13:33:24
не знаю пока что как ещё там подступиться
Defferred тоже не Serializable
импосибл
слово сериалазейбл у них там не упоминается никак
ну в сорцах
думаю там подразумевается что-то вроде сделать самому восстанавливаемый контекст

Admin
ERROR: S client not available

? animufag ?
28.04.2017
14:16:13
https://github.com/Kotlin/kotlin-coroutines/blob/4a7f47f8bbc54955caff07c3882401ced5afa5b9/examples/context/auth-example.kt
самому бы интересно в этом всём разобраться но оче много всего: contination, await yield. обычно в языках по одному два таких слова, а тут сразу все возможные. хотя всё лаконично и документированно
Короче, сейчас рокет сайнс будет.
1я задача создать АнкоКомпонент и привязать поля вьюхолдера не пользуясь ид.
2 задача: провернуть всё в конструкторе вьюхолдера не пользуясь компонентом.
ну то есть одна и та же задача и я в какой то момент решил что 2й путь легче хоть и выглядит не так красиво
но не могу инициализировать view которое нужно передать в конструктор родителя ViewHolder

FlaIDzeres
28.04.2017
14:31:25

Quantum Harmonizer
28.04.2017
14:32:16

Sergey
28.04.2017
14:33:20
удобненько ж
@test fun `Check ololo method`(){}

Quantum Harmonizer
28.04.2017
14:34:07

? animufag ?
28.04.2017
14:41:54
На самом деле редко один холдер на несколько вью не часто бывает. Наверное было бы круто в таком случае sealed viewholder сделать

FlaIDzeres
28.04.2017
15:07:20
@vlastachu в kotlin slack вопрос с серилизацией зарешали
вообще все довольно просто, персистем контекст, потом востанавливаем вызываем resume и все работает)

? animufag ?
28.04.2017
15:16:03
всё равно без пример сложно
https://github.com/Kotlin/kotlin-coroutines/blob/4a7f47f8bbc54955caff07c3882401ced5afa5b9/examples/io/io.kt

Konstantine
28.04.2017
15:25:06
Может кто-нибудь поделиться мнением, что по вашему мнению лучше, приятнее в использование и удобнее: гугловский data binding или anko? Ни то, ни другое по серьезному не использовал, но может у кого то был серьезный опыт и с тем, и с другим.

Google

Yuri
28.04.2017
15:26:53

? animufag ?
28.04.2017
15:27:02

FlaIDzeres
28.04.2017
15:27:56
вот я и не понял как в контексте сохранит ту точку где был suspend, что бы потмо с нее и продолжить
@vlastachu если разберешся будет гуд)
All the coroutine state is stored in its continuation object. All you need to do is to serialize and transfer continuation to the other machine and then invoke resume

Konstantine
28.04.2017
15:32:27

? animufag ?
28.04.2017
15:37:40
А судя по описанию очень похожие проблемы решают, только разными путями)
kotlinx, butterknife, bindings, anko помогают тебе не писать findById
это их общая черта. для первых двух это их основное предназначение (ну мб батеркнайф ещё что-то делает)
у биндингов есть побочный эффект: они провайдят изменения из view в твою модель. на самом деле мне кажется с этим сложно жить.
анко помогает тебе строить ui без xml и ещё несколько относительно полезных функций

Konstantine
28.04.2017
15:51:09
Так, и вот я думаю, с чем лучше связаться для своего проекта - с анко или биндингом.

? animufag ?
28.04.2017
15:52:13
ну конечно же и то и другое сразу

Igor
28.04.2017
15:54:22

Konstantine
28.04.2017
15:55:04

Igor
28.04.2017
15:55:46

Konstantine
28.04.2017
15:56:37
Я про Kotlin
А, с ним, конкретно в андроиде впервые, до этого писал лишь консольную одну программу)

Михаил
28.04.2017
17:01:47
Очень мощная штука, на некоторых экранах незаменима

Konstantine
28.04.2017
17:03:27

Sasha
28.04.2017
17:03:32