@kotlin_lang

Страница 292 из 982
Alex
26.08.2017
13:55:38
Жаль, пропустил ?

? animufag ?
26.08.2017
14:15:48
http://compsciclub.ru/courses/kotlin/2017-autumn/ случайно заметил

Антон
26.08.2017
14:49:50
Планируется @fly_style

https://www.facebook.com/events/300684303738971/?active_tab=about

Google
Alex
26.08.2017
14:50:32
Супер, спасибо!

Valeriy
26.08.2017
15:46:29
Всем привет! Как выключить переименовывание имени аргумента при компиляции Котлином? Сейчас у меня fun get(id: Long): Single<T> компилируется в Single get(long var1), а мне нужно чтобы имя параметра было id, для Room, в Dao интерфейсе

Vadim
26.08.2017
16:28:16
Всем привет! Как выключить переименовывание имени аргумента при компиляции Котлином? Сейчас у меня fun get(id: Long): Single<T> компилируется в Single get(long var1), а мне нужно чтобы имя параметра было id, для Room, в Dao интерфейсе
Насколько я понимаю - никак. Вы компилируете в байткод. Когда вы смотрите на декомпилированный класс в идее (или через javap) - он его преобразует в эквивалентный java код. При этом имена переменных не сохраняются. На самом деле все, что сохраняется про метод - это сигнатура.

Valeriy
26.08.2017
16:28:57
Уже разобрался - apply plugin: 'kotlin-kapt'

Vadim
26.08.2017
16:30:12
Уже разобрался - apply plugin: 'kotlin-kapt'
Он позволяет читать код после декомпиляции в исходном виде?

Valeriy
26.08.2017
16:31:02
Dmitry
26.08.2017
16:32:28
Кстати, каким плагином смотреть, в какой смали код скомпилировался мой котлин клас?

Sergey
26.08.2017
16:33:17
Кстати, каким плагином смотреть, в какой смали код скомпилировался мой котлин клас?
студия 3.0 позволяет декомпилировать апк файл в смали код

Dmitry
26.08.2017
16:33:47
Эм, а в идее?

Sergey
26.08.2017
16:34:21
Android Studio. функция называется Profile or Debuh APK

Dmitry
26.08.2017
17:43:36
такого не нашел (может на стабильной ветке этого нет?) вообщем в идее есть Tools → Kotlin → Show Kotlin Bytecode а для андроида есть плагин java2smali

? animufag ?
26.08.2017
18:17:22
Смали это какой то андроид специфичный байткод?

Google
Quantum Harmonizer
26.08.2017
18:27:35
Он даже бряки в smali-коде умеет ставить — можно отлаживать без исходников.

Dmitry
26.08.2017
18:47:21
смали компактнее, проще демонстрировать

Smalidea
Не вижу такого в репозиториях плагинов. Сторонняя штуковина?

я же написал что в Android studio 3.0
Но я уже ответил, что бета тестером работать не планирую. Есть же стабильные инструменты, которые уже в релизе.

Sergey
26.08.2017
18:50:12
ну ок

Quantum Harmonizer
26.08.2017
19:00:02
Sasha
27.08.2017
00:40:34
Glide 4ку кто юзает с котлином? Как там с каптом?

Sasha
27.08.2017
00:42:48
Не нужен))
Ясно. Спасибо.

Михаил
27.08.2017
00:43:54
Ясно. Спасибо.
Имею ввиду, что то что делается с каптом там, можно запилить на экстеншн функциях

Михаил
27.08.2017
00:45:11
Sasha
27.08.2017
00:45:26
Гуд. Спасибо.

Роман
27.08.2017
05:41:58
Привет, господа. Вопрос, конечно, похож на требующий libmedium, но попробую. Делаю приложуху для android, использую IDEA, создал приложение, MainActivity сконвертировал в kotlin, подключил мобильник, нажимаю debug, проходит gradle task assembleDebug и ничего. Приложение на телефон не деплоится кнопка debug становится неактивной

Что я делаю не так?

Михаил
27.08.2017
05:47:41
Понял. По идее должно запуститься

Google
Михаил
27.08.2017
05:48:23
Но вообще при запуске должно открыться окно с выбором девайса для деплоя

Роман
27.08.2017
05:49:34
Но вообще при запуске должно открыться окно с выбором девайса для деплоя
это есть, apk собирается, но на устройство не загружается и не запускается

Михаил
27.08.2017
05:50:19
Ну это вряд ли проблема котлина. Или без котлина норм?

Роман
27.08.2017
05:55:00
сейчас проверю java-only приложуху

спасибо за вопрос

ты прав, java-only тоже не запускается

спасибо за помощь)

Роман
27.08.2017
07:07:26
а ведь и правда

деплой заработал

лол

спасибо

@Harmonizr ты, кстати, anko насколько плотно юзаешь? Чем заменяешь constraintlayout?

Pavel
27.08.2017
08:55:01
Никто не подскажет, почему для приватных полей объявленных в конструкторе дата класса не генерятся геттеры и сеттеры, зачем так сделали?

Pavel
27.08.2017
08:56:52
По большей части для эстэтики

Igor
27.08.2017
08:57:21
По большей части для эстэтики
Перформанс полезнее

Pavel
27.08.2017
08:57:57
А если они приватные они будут использованы в хэше?

Google
Dmitry
27.08.2017
08:58:56
Tools -> Kotlin -> Show Kotlin Bytecode. Decompile

Pavel
27.08.2017
09:00:43
Dibro
27.08.2017
09:01:42
?
не так понял вопрос, наверное будут

лучше действительно байт-код глянуть

Pavel
27.08.2017
09:02:33
Согласен

Сейчас просто не с компом

Quantum Harmonizer
27.08.2017
09:44:24
@Harmonizr ты, кстати, anko насколько плотно юзаешь? Чем заменяешь constraintlayout?
Сильно плотно. Констрейнт никогда не пробовал.

Никто не подскажет, почему для приватных полей объявленных в конструкторе дата класса не генерятся геттеры и сеттеры, зачем так сделали?
Для них есть геттеры, только если определить их явно. А у неприватных свойств они есть всегда ради бинарной совместимости.

Pavel
27.08.2017
13:42:42
Есть такие кто кодил и на котлине, и на свифте? Давайте свой субъективный фидбек

Диёр
27.08.2017
13:43:27
холивар можно считать открытым

Denis
27.08.2017
13:49:18
Чето не горит

Диёр
27.08.2017
13:50:46
ну это, ещё не началось

просто фундамент готов

нужно зажечь

какой-нибудь красивый вброс про неочевидную вещь

Диёр
27.08.2017
13:53:13
слишком толсто, попробуй тоньше

Igor
27.08.2017
13:53:43
какой-нибудь красивый вброс про неочевидную вещь
Знаете что, если в свифт это норма https://github.com/Kotlin/KEEP/pull/81 https://github.com/BenLeggiero/KEEP/blob/52f5692c997bad0c123ba71b86f4602f8bf279d0/proposals/error-handling.md то в рот я его е###

? animufag ?
27.08.2017
13:57:50
Есть такие кто кодил и на котлине, и на свифте? Давайте свой субъективный фидбек
ну я. больше на свифте, чем на котлине. в общем то очень похожи. так сходу и не вспомню всего Свифт > Котлин восклицательный знак явно указывается в типе. скобки для if, switch не нужны (вкусовщина, мне просто было непривычно поначалу) енумы как-то поприятне sealed классов свитч вроде помощнее чем when (там вроде можно что-то имплементить для свитча) проще кидать функции (не нужно референсы прописывать, но не могу сходу вспомнить как кидаются функции с заданым инстансом и также стоит отметить что очень легко утекает self и приходится прописывать длинное [weak self] говнище) Котлин > Свифт больше таргет платформ (хотя меня не касается) больше экспрешен ориентированный у свифта обжектив-си бэкграунд и в общем с ним сложнее взаимодействовать и есть всякое динамическое говнище вроде протоколов свифт жёстко привязан к икскоду (ну вдруг пишешь утилиту на нём или сервер на линуксе, то тебе в общем грустно) у котлина градл или что угодно а у свифта см выше

ну так для начала

Google
? animufag ?
27.08.2017
13:58:40
стектрейсы у свифта забавные

Pavel
27.08.2017
14:01:53
Я свифт еще не научился готовить, но после котлина кажется удивительным отсутствие анонимных классов. Т.е. если кто не знает, как мы обычно пишем setOnClickListener { doSomething() }, в свифте нужно либо извращаться через delegate либо объявлять новый класс. И как тут не вспомнить великого эскобара.

? animufag ?
27.08.2017
14:03:04
а куда тебе нужен анонимный класс?

Igor
27.08.2017
14:03:31
ну я. больше на свифте, чем на котлине. в общем то очень похожи. так сходу и не вспомню всего Свифт > Котлин восклицательный знак явно указывается в типе. скобки для if, switch не нужны (вкусовщина, мне просто было непривычно поначалу) енумы как-то поприятне sealed классов свитч вроде помощнее чем when (там вроде можно что-то имплементить для свитча) проще кидать функции (не нужно референсы прописывать, но не могу сходу вспомнить как кидаются функции с заданым инстансом и также стоит отметить что очень легко утекает self и приходится прописывать длинное [weak self] говнище) Котлин > Свифт больше таргет платформ (хотя меня не касается) больше экспрешен ориентированный у свифта обжектив-си бэкграунд и в общем с ним сложнее взаимодействовать и есть всякое динамическое говнище вроде протоколов свифт жёстко привязан к икскоду (ну вдруг пишешь утилиту на нём или сервер на линуксе, то тебе в общем грустно) у котлина градл или что угодно а у свифта см выше
> енумы как-то поприятне sealed классов А как там эмулировать Discriminated Union без sealed классов?

? animufag ?
27.08.2017
14:03:39
для себя или когда сдк просит делегат?

Pavel
27.08.2017
14:03:41
Объявить inline listener, datasource что угодно.

? animufag ?
27.08.2017
14:04:36
датасоурс всегда на селф вешал, если только он не пригодится в двух местах (тогда класс только и подойдёт)

если для себя то колбеки и лямбдочки

Pavel
27.08.2017
14:05:49
С анонимными классами логика группируется в одном месте, ты объявляешь слушателя и тут же пишешь его логику. Код пишется блоками и это хорошо читабельно. Когда мы пишем listener = self/this мы должны логику слушателя написать в другом месте, и это портит читабельность, и это плохо.

? animufag ?
27.08.2017
14:05:59
а тип енум с полями?

? animufag ?
27.08.2017
14:06:44
ну короче там просто пишешь енум с полями и всё

Igor
27.08.2017
14:09:03
поясни что это
Как там сделать data Maybe a = Just a | Nothing ? На как sealed классах - это понятно, а у них что enum могут содержать разные поля?

? animufag ?
27.08.2017
14:10:12
enum Maybe<T> { case .just(a:T) case .nothing } примерно так

в первом свифте была проблема что енумы не могут быть рекурсивны и нельзя писать к примеру список внутри ссылающийся на свой же тип

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