@kotlin_lang

Страница 117 из 982
? 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
Warning:kotlin.reflect.jvm.internal.KFunctionImpl$caller$2: can't find referenced class java.lang.reflect.Executable
этот класс добавили в 1.8, а вы наверное собираете под 1.6

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

От ProGuard?

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

От ProGuard?
да. и он не собирает из-за него

Google
Quantum Harmonizer
28.04.2017
09:22:10
Roman
28.04.2017
09:22:13
могу игнор ворнингов включить, но хотелось бы понять в чем дело

потому что этот же код собирался еще вчера

Quantum Harmonizer
28.04.2017
09:22:39
могу игнор ворнингов включить, но хотелось бы понять в чем дело
В том, что kotlin-reflect, вероятно, поддерживает рантайм Java 8

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

спасибо, помогло

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
рекомендую этот плагин, рисует няшный чарт https://github.com/KeepSafe/dexcount-gradle-plugin
Скорость сборки с каждым плагином немножко ниже станет ;)

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
думаю там подразумевается что-то вроде сделать самому восстанавливаемый контекст
Окей, если ты заперсистел контекст, потом востоновился, как запустить continuation с того же места где был suspend?

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
Короче, сейчас рокет сайнс будет. 1я задача создать АнкоКомпонент и привязать поля вьюхолдера не пользуясь ид. 2 задача: провернуть всё в конструкторе вьюхолдера не пользуясь компонентом. ну то есть одна и та же задача и я в какой то момент решил что 2й путь легче хоть и выглядит не так красиво но не могу инициализировать view которое нужно передать в конструктор родителя ViewHolder
2. Я сначала создаю локальные нуллабельные переменные с элементами холдера, потом создаю вью и заполняю эти переменные, потом создаю холдер и передаю ему эти!! локальные!! переменные!!. (Адель подсказал.) В конструкторе не получилось. Что позволяет использовать один холдер с разными вью. ;)

? 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
? animufag ?
28.04.2017
15:27:02
вообще все довольно просто, персистем контекст, потом востанавливаем вызываем resume и все работает)
похоже что resume не восстановит позицию в функции ладно зайду в котлиновый слак посмотрю что там написали (ненавижу его за постоянные сообщения)

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
Так, и вот я думаю, с чем лучше связаться для своего проекта - с анко или биндингом.
В соседнем чате конечно пояснили уже, но имхо если ты нулевый, то лучше начать с Kotlin Android Extensions. Это спасет тебя от кучи findbyid, но все равно хорошо изучишь android.

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

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

Konstantine
28.04.2017
17:03:27
Разные вещи как уже написали выше. Но если в принципе выбирать что пощупать, то этр точно датабиндинг из этих двух
Да я вот на нем решил и остановиться. Почитал про него подробнее в связке с mvvm, понравилось)

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