24 October 2017
Ruslan Ibragimov converted a basic group to this supergroup «Kotlin Android»
Davit Karapetian invited Davit Karapetian
Ruslan Ibragimov changed group photo
Alexander Makushev invited Alexander Makushev
Sergei Tsybliyenkо invited Sergei Tsybliyenkо
Danil Y. invited Danil Y.
В ладу invited В ладу
Quantum Harmonizer invited Quantum Harmonizer
Waldemar Popchuk invited Waldemar Popchuk
💪😕 invited 💪😕
Eugene invited Eugene
Михаил Резниченко invited Михаил Резниченко
Ibrohim Kholmatov invited Ibrohim Kholmatov
Глеб Альбов removed Глеб Альбов
Nikita invited Nikita
Tema Levshuk invited Tema Levshuk
25 October 2017
Deleted Account invited Deleted Account
Ant invited Ant
Anastasia invited Anastasia
Va Fu invited Va Fu
Max 🦠 invited Max 🦠
I
13:21
Igor
Господа, а Koin годнота?

Выглядит так, как будто можно выкинуть нафиг dagger с его анатациям
и делать все “руками”, но с удобным DSL.

https://github.com/Ekito/koin
Ivan Fedyai invited Ivan Fedyai
Artyom Selyutin invited Artyom Selyutin
VF
14:24
Va Fu
по-моему, ничем принципиально от Kodein не отличается
14:25
только instance() поменяли на get()
I
14:55
Igor
А как в Kodein граф зависимостей проверить?
VF
14:57
Va Fu
ты описываешь Kodein — корень графа, он может в себя импортировать модули. если хочешь что-то проверить, делаешь тестовый Кодеин, который наследует твой Кодеин проекта и импортит тестовый модуль, в котором провайдеры(биндинги) переопределены
I
15:08
Igor
Как то сложно, в koin это одна строчка
Koin().build(allModules()).dryRun()
VF
15:10
Va Fu
вижу
мне кажется, что автор явно знал о кодеине, судя по тому, что они похожи, просто, возможно, сделал его под себя, вероятно, лучше
надо попробовать 🙂
I
15:10
Igor
Хотя я тоже посмотрел examples, почти 1 к 1
Но у kodein комьюнити побольше и версия стабильная
Sasha Tainyuk invited Sasha Tainyuk
26 October 2017
RI
00:04
Ruslan Ibragimov
Студия 3.0 говорят релизнулась http://www.opennet.ru/opennews/art.shtml?num=47449
JRoot3D invited JRoot3D
Gor Rushanyan invited Gor Rushanyan
Ivan invited Ivan
Alexey Pushkarev invited Alexey Pushkarev
Dmitry invited Dmitry
Konstantin Zolotov invited Konstantin Zolotov
Anton Makarenko invited Anton Makarenko
Kanstantsin Chaiko invited Kanstantsin Chaiko
Алёна invited Алёна
GR
10:56
Gor Rushanyan
Кто как coverage у себя для котлина готовил?
10:56
дефолтный вообще котлин не видит
Vlad invited Vlad
Dima invited Dima
Yevhen invited Yevhen
Y
15:22
Yevhen
Ребята, подскажите плиз как подружит Kotlin and DataBiding?
gradle - 4.1 Android Studio -3

что уже только и не перепробовал... 🙁
I
15:22
Igor
А в чем конкретно проблемма?
Sergey λ invited Sergey λ
DivelNick invited DivelNick
Alexander invited Alexander
Y
15:26
Yevhen
BR файл не генерится, хз может быть опять попробовать студию invalidate /restart + удалить билд папки
A
15:26
Alexander
In reply to this message
Сборка проекта без ошибок?
Obdrew invited Obdrew
Andrey Martynenko invited Andrey Martynenko
Y
15:30
Yevhen
с раза 4того сбилдилось и запустилось!
A
15:30
Alexander
Так проблемы уже нет?
Y
15:31
Yevhen
да все ок, спасибо!
A
15:31
Alexander
Если Вы подключили kapt то Вам нужно везде заменить annotatuonProcessor на kapt
15:31
Во всяком случае мне это помогло когда у меня не генерился Dagger и AutoValue
Y
15:33
Yevhen
да, верно
это помогло для butterknife
annotationProcessor 'com.jakewharton:butterknife:7.0.1'
для databinding пробовал и так и так
и kapt и annotationProcessor
I
15:33
Igor
autovalue, butterknife - хоспади, нафига это в kotlin
Y
15:33
Yevhen
legacy
Daniel invited Daniel
A
15:34
Alexander
Угумс, я не могу сразу их выпилить отовсюду
Denko Smith invited Denko Smith
Daniil Dubrovin invited Daniil Dubrovin
Yera invited Yera
Ilyos invited Ilyos
Arkadiy Filimonov invited Arkadiy Filimonov
Aleksandr Litvinchuck invited Aleksandr Litvinchuck
Vladimir Chekyrta🦉 invited Vladimir Chekyrta🦉
Alex Rasskazov invited Alex Rasskazov
Сергей invited Сергей
Ihor Y invited Ihor Y
27 October 2017
Sergei Makhaev invited Sergei Makhaev
Egor Shulgin invited Egor Shulgin
KLaus K invited KLaus K
Mikhailol invited Mikhailol
28 October 2017
ViTO Rossonero invited ViTO Rossonero
Svyatoslav Bilsky invited Svyatoslav Bilsky
Alexandr Dolgov invited Alexandr Dolgov
Favre invited Favre
F
22:58
Favre
Favre:
Добрый вечер, после обновления студии до 3-й почему-то котлин стал писать ошибку Error:(105, 67) Too many arguments for public open fun getColorStateList(p0: Int): ColorStateList! defined in android.content.res.Resources
22:59
С чем может быть связано?

вызываю как resources.getColorStateList(R.color.tab_icon, theme)
I
22:59
Igor
А у тебя там AppCompatActivity?
F
23:00
Favre
ага
23:01
до обновления все отлично работало, вроде версия котлина не менялася
I
23:01
Igor
А minVersion и targetVersion у тебя какой?

Так то версия с двумя параметрами появилась только в API 23
Владислав Ников invited Владислав Ников
F
23:02
Favre
у меня условие стоит
23:03
val colors: ColorStateList =
if (Build.VERSION.SDK_INT >= 23) {
resources.getColorStateList(R.color.tab_icon, theme)
} else {
resources.getColorStateList(R.color.tab_icon)
}
МР
23:05
Михаил Резниченко
ContextCompat.getColorStateList(context, R.color.tab_icon);
23:05
попробуй такой вариант
QH
23:08
Quantum Harmonizer
In reply to this message
А компилирует? Потому что бывают неадекватные ошибки, которые потом исчезают.
I
23:14
Igor
А если кстати перейти на сорцы, это метод будет?
F
23:18
Favre
на сорцах будет, в студии только при запуске пишет ошибку, ща другие варианты посмотрю
23:28
In reply to this message
Работает отлично, благадорю
23:31
чет странно, вернул обратно и старый способ заработал, возможно эт из-за криво обновленного jdk. Всем ответившим большое спасибо)
23:35
а нет ошибка осталась) буду использовать пока ContextCompat.getColorStateList(context, R.color.tab_icon);
23:38
In reply to this message
нет
29 October 2017
Anton invited Anton
Артем 👓💻📱 invited Артем 👓💻📱
Yevgeniy invited Yevgeniy
Георгий Новиков invited Георгий Новиков
Евгений Кузовкин invited Евгений Кузовкин
Дмитро invited Дмитро
Aleqzandr invited Aleqzandr
30 October 2017
Yra D invited Yra D
31 October 2017
Roman Ishchenko invited Roman Ishchenko
1 November 2017
Fieldmarshal invited Fieldmarshal
Maksim Ostrovidov invited Maksim Ostrovidov
2 November 2017
Danil invited Danil
Eügen ¥ invited Eügen ¥
Vladislav invited Vladislav
20:19
Sergey λ
😊
20:19
Sergey λ
Sergey λ 02.11.2017 20:08:43
QH
20:29
Quantum Harmonizer
In reply to this message
> Android
> Developer happiness
😞
20:32
Sergey λ
Да нормально все )
Alexey Sulatskov invited Alexey Sulatskov
Сергей Греков invited Сергей Греков
СГ
23:05
Сергей Греков
Стайлгайды завезли
https://android.github.io/kotlin-guides/style.html
I
23:27
Igor
Благо мы не комитим в Android… хотя ничего предосудительного с ходу не нахожу
3 November 2017
Роман invited Роман
I
11:45
Igor
(первое) Android приложение от JetBrains.
Можно посмотреть “архитектуру” или запулриквестить что-нибудь.

https://github.com/JetBrains/kotlinconf-app/tree/master/android
Р
11:59
Роман
ext.kotlin_version = '1.2.0-rc-39' )
VF
23:38
Va Fu
очень странные местами решения у них, если честно
23:38
имхо, репозиторий очень перегружен как для одного класса
23:39
но есть и интересные штуки
I
23:41
Igor
Ага, давайте туда клин накатим.
Главное что там видно как шарить код между jvm/native/js

P.S. Ну шо такое, вечно говорят “у нас маленькие dto, давайте класть в одни файл”, а потом
https://github.com/JetBrains/kotlinconf-app/tree/master/common/src/main/kotlin/com/jetbrains/kotlinconf/data
VF
23:46
Va Fu
да, интересное решение с actual
4 November 2017
Alon Parker invited Alon Parker
Meent Zeirison invited Meent Zeirison
5 November 2017
ST
02:56
Sasha Tainyuk
А кто нибудь уже native палочкой потыкал в контексте андроида?
D
12:21
Dima
Всем привет , есть много текста, при загрузке его в textview есть задержка , как организовать загрузку текста в фоне и показ анимации

Или по другому как организовать
D
12:41
Danil
In reply to this message
Берешь RxJava, загрузку текста подписываешь на io Schedulers, потом выгружаешь результат в mainThread
12:42
In reply to this message
Ну либо можешь сделать с помощью корутин
D
12:43
Dima
In reply to this message
RxJava не знаю что за зверь,

С корутинами есть пример?
QH
12:45
Quantum Harmonizer
In reply to this message
Смог называешь загрузкой? Просто setText или с сетевым запросом?
D
12:47
Dima
In reply to this message
setText из ресурсов
QH
12:47
Quantum Harmonizer
In reply to this message
Большой блок текста?
12:48
Вроде есть библиотека — легковесная замена TextView.
D
12:48
Dima
In reply to this message
Много
12:50
На моём nexus5 секунды 4 задержка
QH
12:51
Quantum Harmonizer
Сколько экранов занимает текст?
I
12:53
Igor
In reply to this message
Ссылку
D
12:53
Dima
In reply to this message
Запускается отдельное активити в нём textview
12:53
Один экран
QH
12:54
Quantum Harmonizer
In reply to this message
Не пользовался, только слышал.
12:54
In reply to this message
Какие размеры? match/match?
I
12:56
Igor
In reply to this message
Это врядли поможет, тк рендеринг происходит в главном потоке (если проблема в том что текста много).

Есть легкий “лайф-хак”, разбить текст на абзацы и грузить их в RecycleView с элементами TextView.
Мы так в одном приложение быстро грузили целые книги и там был вертикальный скрол, неотличимый от цельного TextView.
D
12:56
Dima
In reply to this message
Это важно ?

Textview во весь экран с прокруткой
QH
13:07
Quantum Harmonizer
In reply to this message
Да, это влияет на скорость measure.
I
13:12
Igor
Вообще можно попробовать
- создать TextView
- в бэкгрунд корутине задать текст и вызвать measure(…) и layout(…)
- в главном потоке добавить его на UI

(за стабильность не ручаюсь)

P.S. это уже не вопрос Kotlin, а просто @android_ru
QH
13:13
Quantum Harmonizer
In reply to this message
Не думаю, что так можно)
I
13:13
Igor
Вай?
QH
13:14
Quantum Harmonizer
Обычно вьюшки запрещено трогать из других потоков.
Но стоит пробовать)
I
13:14
Igor
Ну да возможно, так есть чеки на поток 🤔
13:16
Всегда можно создать сырой https://developer.android.com/reference/android/text/Layout.html
в любом потоке и потом бодро рисовать его на Canvas

Facebook Litho почти так и работает с текстом
KZ
13:17
Konstantin Zolotov
Вообще, можно создавать view в другом потоке, но вроде как с ними и работать тогда придется там же.
Роман invited Роман
Р
14:02
Роман
привет, дамы и господа
Р
14:02
Роман
Р
Роман 05.11.2017 13:44:12
Подскажите, как запилить flat button в anko? Чет такая конструкция не желает работать:
themedButton(android.R.attr.borderlessButtonStyle) {
id = R.id.button_add_word
textResource = R.string.add
}
Arcady invited Arcady
Xabik Xaxabik invited Xabik Xaxabik
QH
14:05
Quantum Harmonizer
In reply to this message
Я же ответил.
Yahor Urbanovich invited Yahor Urbanovich
Р
14:06
Роман
In reply to this message
ну решил, что может быть прям в экстеншенах анко что-то можно сделать
QH
14:07
Quantum Harmonizer
In reply to this message
Можно посмотреть в исходники и однозначно выяснить, есть ли там кнопка с этой темой.
Р
14:08
Роман
In reply to this message
Да вот не нашел, при попытке использовать themedButton реакции нет, кстати, не пойму, почему?
QH
14:08
Quantum Harmonizer
In reply to this message
Потому что туда тему нужно передавать.
Р
14:09
Роман
оу
14:09
блин, сорри, затроил
Alexander Borodin invited Alexander Borodin
Donald invited Donald
Deleted Account invited Deleted Account
Дімка 🤔 invited Дімка 🤔
Р
14:45
Роман
блин
14:46
совсем тупой вопрос, но никак не могу у этой чертовой flat Button установить цвет текста
14:47
как это делается из темы?
Alexey Bykov invited Alexey Bykov
QH
14:51
Quantum Harmonizer
In reply to this message
Почему бы не сделать это из defStyleAttr, как я предложил с самого начала?
Р
14:54
Роман
да вот у меня это и не получается, изменяю textColor, стиль унаследован от Widget.AppCompat.Button.Borderless
QH
14:57
Quantum Harmonizer
С этим вариантом не нужно наследовать никакой стиль.
QH
14:57
Quantum Harmonizer
QH
Quantum Harmonizer 05.11.2017 13:57:26
Кажется, Button(context, null, android.R.attr.borderlessButtonStyle).
-> @kotlin_mobile
Р
14:58
Роман
In reply to this message
это почему?
QH
14:58
Quantum Harmonizer
In reply to this message
Что «почему»?
Р
15:00
Роман
почему стиль не нужен будет наследовать ни от какого стиля?
15:01
Как мы в этом случае укажем цвет текста?
QH
15:02
Quantum Harmonizer
In reply to this message
Через textColor, блин.
Р
15:05
Роман
In reply to this message
whichcraft!!!
15:05
Сейчас все заработало
15:06
спасибо большое)
ЕК
15:35
Евгений Кузовкин
Скопирую из общего чата сюда своё сообщение. Когда использовал anko, то различные кнопки делал с помощью textview и вот таких стилей
ЕК
15:35
Евгений Кузовкин
ЕК
Евгений Кузовкин 09.10.2017 11:01:25
Р
16:02
Роман
Ну вот хотелось сократить количество кода
I
16:07
Igor
Ну так вынеси их в функции и выдели общий код
Andrey Panchenko invited Andrey Panchenko
ND invited ND
Р
17:14
Роман
In reply to this message
Как вариант, спасибо всем за помощь
Alexei Miliutin invited Alexei Miliutin
Alexey Gvozditskiy invited Alexey Gvozditskiy
Maxim Lomovtsev invited Maxim Lomovtsev
Sergii invited Sergii
Chaban Serhii invited Chaban Serhii
Artem Kharkov invited Artem Kharkov
Vladislav Vladimirovich invited Vladislav Vladimirovich
Battle Toad invited Battle Toad
Dmitry Bohdanov invited Dmitry Bohdanov
I
22:55
Igor
А вы уже ставили себе https://play.google.com/store/apps/details?id=com.jetbrains.konan_activity2 ?

В нем не работает кнопка назад 😏
QH
22:56
Quantum Harmonizer
O_o
ST
23:02
Sasha Tainyuk
In reply to this message
Не работающая кнопка это фигня, я вот исходники смотрю. И вроде буквы знакомы, но ничего не понятно.😞
Р
23:03
Роман
In reply to this message
А сорцы где глянуть можно?
ST
23:03
Sasha Tainyuk
Да, они на гитхабе есть
Р
23:03
Роман
In reply to this message
О, а можешь ссылку дать?
ST
23:04
Sasha Tainyuk
Момент
I
23:04
Igor
А вот еще https://github.com/JetBrains/kotlinconf-app

Тут ссылки на AppStore/Google Play - https://www.kotlinconf.com/app/
Р
23:04
Роман
In reply to this message
Спасибо
ST
23:04
Sasha Tainyuk
Ещё в clion они есть
Р
23:04
Роман
In reply to this message
И тебе
23:06
In reply to this message
Clion? А он зачем тут?
23:07
In reply to this message
Native плагин только под него есть
Р
23:07
Роман
О, Native зарелизили?!
ST
23:08
Sasha Tainyuk
Нет, превью
23:09
Там надо превью clion качать и только оттуда видно native плагин
Р
23:12
Роман
Ну все равно круто, че
ST
23:15
Sasha Tainyuk
Да, я уже готов купить как будет релиз.)
6 November 2017
Viacheslav Antonenko invited Viacheslav Antonenko
Artyom Dorosh invited Artyom Dorosh
roman G invited roman G
Alexey invited Alexey
Tazman 🐰 invited Tazman 🐰
Daniil Grushchak invited Daniil Grushchak
Марат Исхаков invited Марат Исхаков
Andrew invited Andrew
Вл
18:42
В ладу

private var _searchQuery: String = ""
override val searchQuery: String
get() = _searchQuery

Это из жб репы. Я в таких случаях делаю паблик вар, прайват сет
Что-нибудь теряю?
QH
18:47
Quantum Harmonizer
Ничего не теряешь. backing property немного для другого.
I
18:47
Igor
В IDEA еще не пофиксили подсветку таких свойств как mutable?
Вл
21:50
В ладу
In reply to this message
для чего
QH
21:51
Quantum Harmonizer
In reply to this message
Если это вопрос, то, например, для скрытия фактического типа.
val _prop: ArrayList<X>
var prop: List<X> get() = _prop
VF
21:51
Va Fu
In reply to this message
а с ними было что-то не так ?
I
22:46
Igor
Все вызовы свойства с приватным сететором все равно подсвечивались в IDEA как “muttable” свой-во,
хотя фактически со стороны вызывающего оно readonly.
Denys Honcharenko invited Denys Honcharenko
7 November 2017
VF
01:38
Va Fu
In reply to this message
забавно
но нет, не пофиксили
L invited L
Sergey Vasilchenko invited Sergey Vasilchenko
D
20:37
Dima
А есть готовые инструменты сортировки в списках ?

Есть List нужно по возрастанию отсортировать
QH
20:49
Quantum Harmonizer
In reply to this message
java.util.Collections.sort
D
20:51
Dima
In reply to this message
Спасибо , да нашёл только сортировка так работает
20:51
20:51
По первому числу
QH
20:52
Quantum Harmonizer
In reply to this message
передай компаратор и отсотируй как надо. -> @javastart
8 November 2017
Nikita Yatskivskiy invited Nikita Yatskivskiy
S
20:40
Sergii
Ребят, а кто-то пишет androidTest на котлине?
А то на сайте андроида все еще ограничение указано "Using multidex to create a test APK is not currently supported."

kotlin подключил, rxjava подключил. как бы приехали, много не надо
QH
20:41
Quantum Harmonizer
koxlin — 5k, rx 2 — 10k
S
20:42
Sergii
https://github.com/KeepSafe/dexcount-gradle-plugin не умеет для androidTest а чем еще подсчитать что там растолстело можно?ъ
I
20:42
Igor
In reply to this message
А прогуард работает? (и вырубай нафиг RX, есть же корутины)
S
20:44
Sergii
Прогард поддерживается, но сидеть ждать прогарда по 5 минут, чтобы тесты заранить перспектива конечно так себе

(у нас сейчас на CI proguard релиз билда вдвое дольше чем сборка дебаг версии и прогонка всех UI тестов на дейвайсе) 😐
9 November 2017
r
07:15
roman G
Ребят , если через студию перевести старый проект на java в котлин
приложение увеличит производительность , или не стоит тратить время ? Проект с 2008 года
MO
07:15
Maksim Ostrovidov
не трать время
NY
07:18
Nikita Yatskivskiy
Насчёт производительности не скажу, но вот при конвертации проекта, например, с RxJava, нагенерировалось много чего "интересного". И в итоге много чего пришлось исправлять и редактировать.
Arnal invited Arnal
Даниил Кузьмин invited Даниил Кузьмин
QH
11:30
Quantum Harmonizer
In reply to this message
А с чего бы производительности увеличиться?
I
11:36
Igor
Ну может “производительность” разработки 😏
Nikolay invited Nikolay
Владимир Танаков invited Владимир Танаков
ВТ
16:42
Владимир Танаков
Всем привет
вопрос по интеграции котлина в уже существующий проект: если в проекте есть butterknife, а я хочу использовать kotlin+android extensions в _новых_ классах, должен ли я подключать kapt для баттернайфа или нет?
I
16:45
Igor
Батер использует анатойшен-процессор?
Код который использует bk на котлине?
Если да, то конечно (правило на будущие)

PS да это даже гуглится легко.
16:46
А вообще выкидывать его нафиг и переписывай на kotlin-extensions
ВТ
16:49
Владимир Танаков
если честно не получилось нагуглить с первого раза, мб не правильно задавал вопрос в гугле
ну вообще в планах все потихоньку переписать, но проект большой, сразу все не перепишешь)
спасибо за ответ
A
19:21
Arnal
Всем привет. Помогите пожалуйста насчет settings preference fragment. У меня 1 activity и 3 fragments при нажатии таб внизу должен вызвать fragment. 3-fragment у меня настройки. И не получается ни как... заранее спасибо.
ПГ
19:23
Павло Гриник
In reply to this message
не в тот чат
A
19:24
Arnal
Почему? У меня в котлине не получается
ПГ
19:30
Павло Гриник
тогда код в студию
Игорь Васильев invited Игорь Васильев
10 November 2017
ST
00:14
Sasha Tainyuk
In reply to this message
Хз, что у тебя там не так, но это
 bottomBar.setOnTabSelectListener { tabId ->
supportFragmentManager
.beginTransaction()
.apply {
when (tabId) {
R.id.tab_today -> replace(R.id.contentContainer, MainFragment())
R.id.tab_prayers -> replace(R.id.contentContainer, PrayersFragment())
R.id.tab_settings -> replace(R.id.contentContainer, SettingsFragment())
}
}.commitAllowingStateLoss()
}

работает 99.99%. )
I
00:18
Igor
Если такой смелый, то почему не поставишь commit() 😏
ST
00:22
Sasha Tainyuk
In reply to this message
Если бы я был смелый, то написал 100%. )
00:23
А чем commitAllowingStateLoss() плох?
I
00:32
Igor
Да в принципе ничем, только не понятно зачем он тут нужен
ST
00:38
Sasha Tainyuk
Страховка, на всякий так сказать. Хуже все равно не будет.
QH
01:31
Quantum Harmonizer
In reply to this message
when можно сделать меньше, чтоб он только фрагмент возвращал. А если это неподходящая вкладка, не начинать транзакцию вовсе.
ST
01:48
Sasha Tainyuk
In reply to this message
Хм... Спасибо.
Dmitriy Kuts invited Dmitriy Kuts
Foat Karipov invited Foat Karipov
Paul Malikov invited Paul Malikov
Dmitriy Volkovskiy invited Dmitriy Volkovskiy
AR
21:33
Alex Rasskazov
In reply to this message
Прошу прощения. Но котоиновсктй ext по край ней мере раньше создавал новый объект при создании вью . Что накладывает ограничения для извращенцев. Ну вдруг я захочу поиметь много....
D
21:36
Dmitry
In reply to this message
Типа экстеншнс не использует анотейшн процессинг? А как он синтетические классы генерирует тогда?
QH
21:37
Quantum Harmonizer
In reply to this message
При создании или при поиске? Каждый раз или только первый?
Эти нюансы играют решающую роль.
21:37
In reply to this message
Не использует. Это плагин к компилятору.
D
21:37
Dmitry
У компилятора есть специальное апи для этого? Я раньше смотрел, там в этой либе обычный капт был.
QH
21:38
Quantum Harmonizer
In reply to this message
Недокументированный, только для избранных, насколько я знаю)
21:38
У меня может быть инфа годичной давности.
I
21:39
Igor
In reply to this message
А зачем нужные third-party решения, если все есть из коробки от самих разработчиков компилятора/idea
D
21:42
Dmitry
In reply to this message
Из коробки в котлине - делегаты, вот там чисто компилятор. А экстеншн это соседняя либа, которая изначально делалась студентом, который практику в джетбрейнс проходил, насколько я знаю. Хотя наверное с тех пор уже пару раз переписывалось.
21:50
Что-то не могу найти сорцы плагина kotlin-android-extensions, он вообще открыт? Раньше вроде частью анки был.
QH
22:02
Quantum Harmonizer
In reply to this message
О_о С чего бы ему быть частью Anko?
https://github.com/JetBrains/kotlin/tree/master/plugins/android-extensions
D
23:37
Dmitry
Походу действительно не через капт, а через плагин интерфейс, я был не прав.
11 November 2017
Lipe App invited Lipe App
12 November 2017
XO invited XO
щеколда для жопы invited щеколда для жопы
щ
13:02
щеколда для жопы
Здраствуйте)А вот в AIDE можно писать на Kotlin?
I
13:04
Igor
Ты хочешь компилить kotlin на android? Не уверен что он потянет (на большом кол-ве девайсов)
щ
13:04
щеколда для жопы
Ну да
I
13:04
Igor
KotlinScript, работающий через компилятор сам по себе жрет ~200 МБ ОЗУ
щ
13:04
щеколда для жопы
Спасибо за инфу
I
13:05
Igor
Ну ты попробуй, если взять топовый девайс на Android 8.X + largeHeap - может и получится
щ
13:06
щеколда для жопы
Мде, где только найти топовый девайс и восьмерку
13:07
Если у меня в руках жалкий бюджетный гэлекси
I
13:09
Igor
Самое сложно будет разобраться как работает компилятор (я не осилил)
и куда там пристраиваться что бы просто “подсказки” показывать

JB как-бы не выгодно, делать тот же Language Server - что бы конкрентых из IDEA не появлялись
13 November 2017
Stanislav Slavin invited Stanislav Slavin
Stas invited Stas
Aleksei Kleandrov invited Aleksei Kleandrov
Александр М invited Александр М
Vadim Lesnov invited Vadim Lesnov
Dmitry B invited Dmitry B
Женя Вабищевич invited Женя Вабищевич
Nikita invited Nikita
mikhail invited mikhail
Aleksei Katkov invited Aleksei Katkov
Andrey T invited Andrey T
LA
17:23
Lipe App
Где найти книгу?
Maxim Motorniy invited Maxim Motorniy
ST
18:50
Sasha Tainyuk
In reply to this message
Dcoder поддерживает и hello world точно работает, но имхо, на телефоне максимум это примерчики. Для всего остального нужен экран побольше и клавиатура.
Кирилл Романенко invited Кирилл Романенко
КР
19:04
Кирилл Романенко
Всем привет. Какие либы есть, чтобы можно было отправить подобный запрос серверу через json?
19:04
A
19:05
Alexander
Так отправить или распарить?
19:05
Распарсить
КР
19:05
Кирилл Романенко
Мне нужно сделать подобный запрос серверу
19:06
Он мне ответит так же на json, но с парсом проще, там +- понятно
A
19:06
Alexander
Так кладешь JSON в тело запроса и пуляешь, не?
КР
19:08
Кирилл Романенко
Ну, похоже что не всё так просто, потому что такой код у меня крашится
19:08
ПГ
19:08
Павло Гриник
Retrofit?
КР
19:08
Кирилл Романенко
Ща чекну
ПГ
19:08
Павло Гриник
Но при чём здесь Котлин?
19:09
Кстати, а уже кто-то делал DSL либу для JSON для Котлин?
КР
19:10
Кирилл Романенко
In reply to this message
Нет. У меня не http запрос идёт, а на чистых сокетах. Котлин тут при том что пишу на нём, подумал что может для таких вещей сделали какую-то полезную либу
QH
19:10
Quantum Harmonizer
In reply to this message
Насколько чистые? TCP, UDP?
ПГ
19:11
Павло Гриник
In reply to this message
Сорри, имел ввиду GSON
КР
19:11
Кирилл Романенко
In reply to this message
Мне мой тимлид сказал так: "Совсем чистые" :D
ПГ
19:11
Павло Гриник
Формируешь свои команды в виде объектов и вперёд
QH
19:12
Quantum Harmonizer
In reply to this message
Думаю, что он добланулся, потому что к чистым сокетам нужно прикручивать гарантию доставки, целостности, последовательности.
Или он перепутал их с вебсокетами.
КР
19:13
Кирилл Романенко
In reply to this message
Без понятия. Моё дело гуи + общение с сервером. Вот как раз и ищу как нормально организовать общение
KZ
19:19
Konstantin Zolotov
In reply to this message
Да даже если и не http, твое дело просто сериализовать а строчку и в байтики конвертнуть совсем просто.
19:19
Но это таки не про котлин
КР
19:40
Кирилл Романенко
Ток щас подумал... А ведь есть же разница для сервера между " и ' ? Просто ж по умолчанию json поля обрамляются "
КР
19:40
Кирилл Романенко
КР
Кирилл Романенко 13.11.2017 19:04:47
QH
19:41
Quantum Harmonizer
In reply to this message
Строго ", одинарных кавычек в JSON нет.
КР
19:41
Кирилл Романенко
Вот я о том же думаю
Евгений Нефедов invited Евгений Нефедов
Y
21:19
Yahor Urbanovich
привет, как правильно будет в котлине писаться эта штука
Observable<?>
A
21:21
Alexander
Observable<*>
Y
21:22
Yahor Urbanovich
21:22
пробовал
I
21:30
Igor
Это как бы и не логично, ты же в observer можешь передать к примеру Observer<String>
, а потом пытаться ему скармливать Int, тк судя по всему у obserable тип Observable<Any>

Раз копилятор требует <in Any> то ты и должен передать только Any или Any?
fun execute(obserable: DisposableObserver<in Any>, params: Params)
Y
21:36
Yahor Urbanovich
ну да, логично. Поставил Any и не ругается. Спасибо
Mikhail invited Mikhail
14 November 2017
Арсений Сафин invited Арсений Сафин
ST
02:44
Sasha Tainyuk
Вдруг кто не видел.)

Интересно почему написали только сейчас, проблема вроде как давно уже. К слову, еще помогает в kotlin compiler снятие галки c keep compiler process alive between invocations.
Evgeniy Kuznetsov invited Evgeniy Kuznetsov
VV
14:29
Vladislav Vladimirovich
Кто может посоветовать хорошую литературу kotlin android?
Y
14:36
Yahor Urbanovich
Kotlin in actions?
X
14:37
XO
Kotlin for android developers | Version June 2017 | ENG
LA
15:11
Lipe App
Где их найти
Р
15:30
Роман
Ура, вышло обновление kotlin 1.1.60 в котором пофиксили некоторые баги. В частности у меня были проблемы. На Android 4 (API < 20) приложение падало в процессе установки с ошибкой Failure [INSTALL_FAILED_DEXOPT]. Выявлено что это происходило при использовании аннотации @Parcelize на версии kotlin 1.1.51. В логах ошибка: dalvikvm: Invalid file flags in class Lcom/package/MyClass;: 0009, после обновления kotlin 1.1.60 всё стало ok.
A
15:34
Arnal
PrTimes ptd = calculate (year, month, day)
15:34
Как мне написать на котлинн?
КР
15:35
Кирилл Романенко
val ptd = calculate(year, month, day)
АМ
15:35
Александр М
var ptd : PrTimes = ...
КР
15:35
Кирилл Романенко
Если нужно привести тип или явно указать
15:36
In reply to this message
То сделай вот так
A
15:36
Arnal
👍
X
16:21
XO
In reply to this message
Kotlin - коммерческий продукт. Соответственно и все книжки денежег стоят.
1. Купить в сети ~ 700-900р за книжку.
2. Искать в сети.
3. Могу тут выложить если правила чата позволяют. А правил Я смотрю тут нет.
I
16:23
Igor
Есть libgen.io если человек не даун, то поймет что делать дальше
QH
16:24
Quantum Harmonizer
In reply to this message
Сам по себе Котлин — свободный продкт.
Правила наследуются от правил основного чата.
Вл
16:26
В ладу
In reply to this message
Я думаю те кто просят книги в чатах - недалёкие
I
16:28
Igor
Не надо намеков 😑

Я сначала гуглил эту книгу по Elm, а потом уже спрашивал
X
16:29
XO
In reply to this message
1. То что компилятор устанавливается бесплатно не говорит, что продукт бесплатный.
2. Когда человек попал сперва в этот чат, откуда он может знать что есть основой чат где можно почитать правила "унаследованных" чатов.
3. Это телеграм. Тут нет подчатов. Так что будьте добры в каждом дублировать правила.
4. Умные чатовладельцы делают правила на внешних источник и тут прекрепляя ссылку на них.
QH
16:29
Quantum Harmonizer
In reply to this message
В описании есть ссылка на главный чат.
X
16:30
XO
In reply to this message
Очевидный ответ 😂
RI
16:32
Ruslan Ibragimov
Это очень важно чтобы были правила в шапке? В шапке все не поместится. Да и в целом воровать плохо
16:33
Нечего тут дисскутировать вообще, хотите пиратить - есть личка, рутрекер и т.д.
КР
16:33
Кирилл Романенко
In reply to this message
Или тг боты
X
16:35
XO
In reply to this message
В 4 пункте Я упомянут как сделать, чтобы всё влезло.
Да и собственно ваше дело как вы загубите свой чат.
КР
16:35
Кирилл Романенко
In reply to this message
Вообще, полностью согласен.
RI
16:35
Ruslan Ibragimov
In reply to this message
Спасибо, мне кажется пока тут все впорядке
16:36
Мы дойдем в определенный момент до внешней ссылки конечно, но всему свое время
15 November 2017
Valeriy Andrikeev invited Valeriy Andrikeev
Denis Timofeev invited Denis Timofeev
AP
14:24
Alexey Pushkarev
In reply to this message
а можно же как-нибудь увеличить хип для котлин компилятора?
14:25
но вообще всегда напрягали некорректные ошибки.
ST
15:34
Sasha Tainyuk
In reply to this message
Хз, как именно котлину, я несколько раз пытался что-то найти в доках/Гугле и ничего не нашёл, кроме как поднять в пропертях MaxPermSize до 512мб.
16 November 2017
Valerii Nativus invited Valerii Nativus
Vladislav Yuschuk invited Vladislav Yuschuk
Artur Kharchenko invited Artur Kharchenko
AK
11:50
Artur Kharchenko
Всем привет!

У кого-нибудь есть положительный опыт интеграции SonarQube и Android проекта на Kotlin?

Сконфигурировали последнюю версию по этому рецепту
https://github.com/arturbosch/sonar-kotlin

Java код анализирует, а Kotlin игнорит. Хотя сами kt файлы видит.
N
12:26
Nikolay
Привет! Вот у нас похоже та же проблема, но я только начал с ней разбираться.
Krocks invited Krocks
Maria Chmyreva invited Maria Chmyreva
Sashka Bolshakov invited Sashka Bolshakov
Igor invited Igor
K
14:50
Krocks
пишут тут приложеньку потренероваться использую котлин, и хочу заюзать рум, архитектурные компоненты и всякие модные штуки, посоветуйте пожалуйста
1) что юзать для фрагментов/навигации (чичероне/натив)?
2) для DI с котлином dagger2?
3) для инжекции и работы с вью на котлине (buterknife, native)?
в общем возможно что то посоветуете, цель потрениться разобраться
QH
14:51
Quantum Harmonizer
In reply to this message
3) Если продолжать использовать XML, то kotlin android extensions.
K
14:54
Krocks
In reply to this message
спасибо
Anton Vlasov invited Anton Vlasov
AV
15:30
Anton Vlasov
Не советую все сразу юзать, т.к. придется решать гораздо больше проблем, чем с одной какой то технологией
I
15:47
Igor
In reply to this message
> рум, архитектурные компоненты
фу какая гадость (Kotlin им дал кросплатформенность, а они все google тулзы тащат)

1) Найди либу для реализации Redux/Elm архитектуры
2) НЕ нужно, пиши логику на чистых функциях
3) см пункт 1)
15:49
Sergey λ
In reply to this message
писать под андроид и не юзать google тулзы? 😂
15:50
> Kotlin им дал кросплатформенность
ещё года 2 как минимум ждать
I
15:50
Igor
Хех ну через пару лет мы на них будет смотреть,
как и на AsynTask и лоадеры (знаю некоторые любят до сих пор) сейчас
QH
15:51
Quantum Harmonizer
In reply to this message
++, но хз, как это всё сделать(
15:51
In reply to this message
Да, конечно. Библиотеки гугла, кроме AppCompat, никаких насущных проблем не решают.
15:52
Sergey λ
есть ещё Google services и остальное что на них
I
15:52
Igor
В любом случае это было мое imho, которое не стоит воспринимать слишком серьезно (и тащить сразу в прод)
P.S. это скорее совет просто для тех кто мноооого лет пишет под Android и просто устал от него (типа меня).
QH
15:54
Quantum Harmonizer
In reply to this message
Да, они, к сожалению, тоже есть.
GR
15:58
Gor Rushanyan
In reply to this message
а что в руме плохого?
I
16:05
Igor
Нет ничего плохого.

Просто как любой “официальный” фреймворк, который судя по всему все затащат в свои проекты,
- он быстро закостинеет (и через пару лет будет дружно его выпиливать, когда на github появится хорошая независимая альтернатива).

Плюс не для всех проектов SQL лучший выбор - часто хватает (модного) NoSQL решений.
GR
16:08
Gor Rushanyan
In reply to this message
рум появился когда уже существует 100500 аналогов, и вполне неплохо себя показал
nosql немного не туда, если человек не может выбрать нужный ему инструмент то это проблемы не инструмента
Deleted Account invited Deleted Account
I
22:50
Igor
Смотрели https://youtu.be/Vre-Ih5Gdc0 , как вам?
Imho интересный доклад про применение стей-машин для UI
Чувствую через пару итераций, она дошла бы до Redux
22:51
Кстати, @vlastachu я знаю ты же тоже ценитель 😏
Смотрел два видео с KotlinConf от авторов Kategory? Как тебе их идеи?
Вл
23:29
В ладу
In reply to this message
ничего с котлинконф не смотрел
23:29
теперь есть повод
17 November 2017
AP
10:59
Alon Parker
Всем привет, чет с ходу не могу решить одну проблемку:
в Parcelable пытась положить arr: Array<Int>
writeToParcel - parcel.wrireSerializable(arr)
readToParcel - parcel.readSerializable(parcel.readSerializable()) as Array<Int> /компилятор ругается на меня.
Как можно парсерелизвать List<Int> или Array<Int>?
МР
11:03
Михаил Резниченко
In reply to this message
вроде для List - writeList, для Array - writeArray (writeIntArray)
AP
11:06
Alon Parker
In reply to this message
readArray просит класслоадер. А для Array<Int> какой класслоадер?
11:10
parcel.readArray(Int::class.java.classLoader) as Array<Int> - unchecked cast
МР
11:10
Михаил Резниченко
In reply to this message
попробуй readIntArray
11:11
и, соответственно, writeIntArray
AP
11:36
Alon Parker
Чет не работает, пустой возращается. Сделал отдельный класс с Intами и сделал его Parcalable. Через writeTypedLisr и parcel.createTypedArrayList
11:36
Спасибо
I
11:49
Igor
In reply to this message
А зачем тебе вообще Array<Int>, когда есть IntArray?
В Array<Int> будут храниться “boxed” Integer - это же ненужный оверхед
AP
11:50
Alon Parker
In reply to this message
Пошел чиать доку, спасибо
АМ
15:08
Александр М
Ребят никто не сталкивался с глюками плагина котлина в андроид студио?
15:08
Kotlin threw an uncaught IllegalStateException.
D
15:09
Dmitry
Есть то кто-то, кто не сталкивался? -)
АМ
15:09
Александр М
и перестает работать подсветка автокомплит и прочее
15:09
ну мож лечится как то)
15:09
сижу на маке
15:09
у коллеги на линухе вроде все ок
D
15:10
Dmitry
на гну/линух тоже падает, но он обычно самоподнимается после этого и всё работает.
В последнее время получше стало.
I
15:11
Igor
In reply to this message
Я в IDEA сижу принципиально 🤷‍♀️
АМ
15:12
Александр М
в чем принцип?)
I
15:21
Igor
Ну я же не андроид-формошлеп 😏.
Люблю побаловаться другими языками/технологиями и проще держать один инструмент.

Да и меня IDEA CE полностью устраивает для Kotlin под Android.
D
15:26
Dmitry
Idea перестала импортировать настройки, сохраненные в андроид студии?
GR
15:26
Gor Rushanyan
In reply to this message
плагин у меня часто крашит когда пишу классы с дженериками
15:27
ну и последний раз когда написал статик метод с теми же дженериками при его использовании подсветка кода ломалась, хотя все отлично компилилось
АМ
16:05
Александр М
ну дженерики у меня везде), а крашится не везде (
QH
16:08
Quantum Harmonizer
In reply to this message
Спасибо, отлично.
Тоже пришёл к похожему подходу.
MM
16:43
Maxim Motorniy
In reply to this message
у меня такое время от времени вылетает, но всё продолжает работать без проблем
ubunut, studio 3.0
Nikita Karnaukh invited Nikita Karnaukh
Артёмка invited Артёмка
А
18:36
Артёмка
Ребят, привет. Столкнулся со странной проблемой на android. Есть базовый класс (адаптер для ресайклера), в нём есть метод getItemCount(): Int. Если переопределяю его в адаптере, который наследуется от базового, то почему-то не дергается метод дочернего адаптера. Все равно почему-то вызывается метод базового. В чём может быть дело?
I
18:42
Igor
Покажи код
Михаил invited Михаил
Konstantin invited Konstantin
Alexander Blizniuk invited Alexander Blizniuk
Aleksey Bogomolov invited Aleksey Bogomolov
Ivan Erofeev invited Ivan Erofeev
Konstantin Martishenko invited Konstantin Martishenko
Вл
23:05
В ладу
https://www.youtube.com/watch?v=s9oMED6ZikQ
второе видео я что-то не нашёл.
ну в общем видос вводный и поэтому минуте на 15й заскучал и начал скипать. норм подходят к объяснению тайпклассов, хотя всё равно люди новую концепцию будут пытаться воспринимать через аналогии и фейлится.

совершенно не понимаю в какой момент они решили связаться с асинхронщиной (ну то есть я видел этот момент в слаке, но не понимал что происходит). пересмотрю середину видоса ещё раз чтобы подразобраться.

произношения у докладчика не очень но видно текст был редактирован и перечитан и говорит вполне ясно.
23:06
алсо где-то была ссылка где чел пользуюясь их либой применял в андроиде фри монады и я даже не разобрался зачем
23:06
но могу поискать
Oleksii Melnykov invited Oleksii Melnykov
18 November 2017
I
00:52
Igor
Вот второй видос https://youtu.be/qI1ctQ0293o
Тут чувак дал больше конкретики: начал с result - закончил reader monad и m-transformer.
I
01:09
Igor
Мои впечатления от обоих докладов:
- в языке поддержки нет, но есть красивые KEEP
- есть либа из “💩 и палок”, а еще идеи про монад трансформеры в android
- “пожалуйста используйте и контрибьютьте” (нах оно кому-то нужно, он не раскрыл)
Вл
03:19
В ладу
ну да общее впечатление такое же от их либы
без поддержи в языке туповато
ST
10:24
Sasha Tainyuk
Народ, а румовские entity не дружат с parcelize? Что то у меня при создание объекта ошибка верификации NameObject$Create
10:27
Поправочка,не в момент создания, а в момент записи
Mihail invited Mihail
щ
21:38
щеколда для жопы
😕
Vitaliy invited Vitaliy
19 November 2017
RI
01:59
Ruslan Ibragimov
Layouts DSL is the only way – Станислав
https://bkug.by/2017/11/19/otchet-o-bkug-6/
Kirill Evdokimov invited Kirill Evdokimov
KE
04:50
Kirill Evdokimov
Добрый день, недавно совсем начал изучать kotlin и столкнулся с некоторой проблемой, которую долго не мог решить. Сейчас я дошел до решения - костыля, по моему скромному мнению, поэтому хотел бы спросить у более опытных людей по поводу этого решения и вопроса в целом.

Суть задачи в переводе UI кода :
https://pastebin.com/raw/qF3Nj79g

Костыль-решение : https://pastebin.com/raw/RQxeDYgd
Gregory Bass invited Gregory Bass
QH
10:25
Quantum Harmonizer
In reply to this message
Обычно тут используют либо nullable, либо lateinit.
Deleted Account invited Deleted Account
D
11:53
Dima
Привет всем , повесил на кнопку onClik{} и onLongClik {} все хорошо только после долгого нажатия срабатывает и короткое

Как правильно выход сделать ?
11:55
Там есть только return@onLogClick он походу неработает
Алина Долгих invited Алина Долгих
Р
12:54
Роман
In reply to this message
Ооо реактивные мозги здесь
Дмитрiй Канунниковъ invited Дмитрiй Канунниковъ
АД
13:32
Алина Долгих
:) в соседнем чате много про вас говорят
QH
14:06
Quantum Harmonizer
In reply to this message
код в студию
QH
15:06
Quantum Harmonizer
In reply to this message
> Oglavlenia
pizdets
D
15:07
Dima
In reply to this message
Ну просит ченить написать же
15:07
)
QH
15:07
Quantum Harmonizer
holder?.txtName? — не должно быть таким нуллабельным всё. Сломается — и не заметишь.
15:09
In reply to this message
Попробуй залоггировать, что происходит раньше — onLongClick или onClick.
Если долгий клик происходит раньше, то можно перещёлкнуть какой-нибудь флаг, чтобы ближайший кроткий клик игнорировался.
D
15:10
Dima
И как это сделать
QH
15:10
Quantum Harmonizer
In reply to this message
Как логами пользоваться, что ли?
D
15:10
Dima
Флаг поставить
QH
15:11
Quantum Harmonizer
In reply to this message
переменную завести Булева типа
Ruslan invited Ruslan
BT
16:45
Battle Toad
In reply to this message
OnLongClick же должен true/false возвращать, в зависимости от того, обработал ли он ивент полностью. А в коде просто выход из лямбды, насколько я понял. Поэтому пробрасывается и OnClick. Допиши true в конце лямбды и будет счастье 😉
QH
16:47
Quantum Harmonizer
Main.save_str что-нибудь возвращает?
16:48
In reply to this message
Хмм, Колин не скомпилировал бы, если бы нужно быть вернуть значение. Похоже на баг функции, которая вешает слушателя.
BT
16:56
Battle Toad
In reply to this message
Судя по импортам он юзает вот эту реализацию из Anko: https://github.com/Kotlin/anko/blob/master/anko/library/generated/sdk25-coroutines/src/ListenersWithCoroutines.kt. У неё дефолтный return false. Я немного промазал с лямбдой, она таки возвращает Unit. Тогда нужно вместе с лямбдой ещё и returnValue передать.
17:10
@DmitriyDeomin а зачем там корутины, они же в UI потоке запустят хэндлэр? Обычной лямбды будет достаточно для текущей реализации по идее.
D
17:10
Dima
In reply to this message
Нет
D
19:41
Dima
In reply to this message
Спасибочки заработало как положено
19:42
Дописал в параметрах лямбды returnValue=true
19:42
VF
21:16
Va Fu
holder можно сделать не optional, если что
21:18
это из-за отсутствия @NotNull на джава-стороне, при импорте по дефолту параметры абстрактных методов nullable. но холдер, по-факту, не null
D
21:48
Dima
In reply to this message
Нечего не понял , адаптер по примеру делал . По моиму этот холдер костыль
КР
22:11
Кирилл Романенко
Короче просто убери знаки ? у holder , он точно не null
Y
23:04
Yahor Urbanovich
Привет, кто-нибудь юзает Firebase Database вместе с data class?
20 November 2017
Deleted Account invited Deleted Account
01:07
Deleted Account
Кто-то юзает с котлин Room под анднроид? Можно заставить его также синтаксис светить?
01:07
для Query
Andrey Stepankov invited Andrey Stepankov
Vladimir invited Vladimir
Dmitry Alexeenkoff invited Dmitry Alexeenkoff
X
06:14
XO
GB
08:45
Gregory Bass
Иван Ларин invited Иван Ларин
Gregory Manushkin invited Gregory Manushkin
Arman Chatikyan👨‍💻 invited Arman Chatikyan👨‍💻
Arman Chatikyan👨‍💻 invited Narek Avetisyan
Nikita invited Nikita
GB
14:30
Gregory Bass
Попробовал сегодня на котлине написать обработчик для кнопки, выбрал привычный вариант со свойством onClick в xml, а студия не хочет создавать функцию в коде, как в джаве. Создал ее сам, все работает. Но студия подчеркивает и саму функцию и передаваемый параметр view, что они нигде не используются. Получается такой способ в котлине не приветствуется и надо делать через onClickListener?
QH
14:30
Quantum Harmonizer
In reply to this message
Он не «не приветствуется», просто не все инспекции работают.
GB
14:31
Gregory Bass
Понял) будем ждать когда допилите
14:32
Но впечатления от котлина только положительные!)) Язык прям как родной
QH
14:33
Quantum Harmonizer
In reply to this message
«когда допилят», тогда уж)
Можно проголосовать за issue: https://youtrack.jetbrains.com/issue/KT-12851
AK
14:34
Artur Kharchenko
old school'ненько)
КР
14:34
Кирилл Романенко
In reply to this message
Можно обойтись без использования onClick() в XML
14:35
Почитай
GB
14:35
Gregory Bass
In reply to this message
Проголосовал)
КР
14:36
Кирилл Романенко
В кратце, можно сделать в стиле
your_button.onClick {
...
}
GB
14:36
Gregory Bass
А ну я так и делаю)
QH
14:37
Quantum Harmonizer
onClick работает только в Activity, что делает его довольно-таки бесполезным)
14:37
и, да, оно рефлективное
GB
14:38
Gregory Bass
Сегодня ещё и Anko попробовал, остался очень доволен. Надо будет получше ее опробовать
14:38
In reply to this message
Я думаю все зависит от задачи
КР
14:39
Кирилл Романенко
In reply to this message
Значит я неправильно понял
14:39
In reply to this message
По поводу бесполезности я бы поспорил.
QH
14:40
Quantum Harmonizer
In reply to this message
инфлейтишь тот же XML из фрагмента, а он всё равно ищет указанный метод в активити)
14:40
Так что я за то, чтоб такого свойства вообще не было.
КР
14:43
Кирилл Романенко
Лично меня полностью устраивает так писать. Но, хорошо, какой метод по вашему лучше?
14:44
Sergey λ
Явный OnClickListener на вьюхе
14:45
Я тоже не сторонник onClick в xml
14:45
Разве что в data binding ок
KZ
14:47
Konstantin Zolotov
Да ладно, конкретное имя метода в xml обязывает создать именно такой метод там, где разметка используется. Отвратительно же.
QH
15:03
Quantum Harmonizer
In reply to this message
Anko, конечно же.
Но если таки XML, то явный setOnClickListener.
Вл
15:33
В ладу
In reply to this message
https://github.com/lorien/nosticker_bot думаю ок такое вводить в чаты
QH
15:35
Quantum Harmonizer
In reply to this message
«to delete FUCKINGLY annoying stickers» 👍
Quantum Harmonizer invited NoSticker
Вл
15:36
В ладу
ему мб ещё привелегии надо давать
QH
15:37
Quantum Harmonizer
In reply to this message
а, вот этого я не могу сделать)
RI
15:37
Ruslan Ibragimov
О, если норм работает нужно и в большой чатик добавить
15:37
Чтобы стикеры и гифки выпиливал
QH
15:38
Quantum Harmonizer
In reply to this message
давай тут эксперимент проведём с ним
15:38
его надо модератором сделать
RI
15:39
Ruslan Ibragimov
Норм, работает
КР
16:21
Кирилл Романенко
Сейчас начал читать про Anko, и появился вот какой вопрос: неужели она может позволить полностью отказаться от XML? Мне очень трудно это представить. Я постоянно юзаю визуализатор в Android Studio.
16:22
А для Anko, вроде как, визуализатор не подвезли.
А
16:22
Артёмка
если слишком составной у вас экран, то очень вряд ли вы одним анко обойдётесь
QH
16:23
Quantum Harmonizer
In reply to this message
если слишком составной экран, вряд ли возможностей XML хватит
А
16:24
Артёмка
ну ладно(
КР
16:24
Кирилл Романенко
In reply to this message
Вы случайно не допустили ошибку? Может, вы хотели сказать что возможностей Ankо не хватит?
А
16:25
Артёмка
сомневаюсь, что ошибка) По сути всё верно. Если я понял правильно.
КР
16:26
Кирилл Романенко
Ну я не соглашусь. Как по мне, с помощью XML можно сделать что угодно и тут же увидеть все недостатки на визуализаторе.
А
16:26
Артёмка
сделаете волну в xml?)
QH
16:26
Quantum Harmonizer
In reply to this message
XML может не всё, код — всё.
КР
16:26
Кирилл Романенко
Ну, почти всё что угодно. :D
16:26
Sergey λ
In reply to this message
и код не все ))
А
16:26
Артёмка
в xml всё можно расставить как хочешь, а сделать что хочешь — не совсем
16:27
Sergey λ
например в RemoteView вью из кода не всунуть
QH
16:27
Quantum Harmonizer
In reply to this message
всё, что может XML, описано кодом 😄
16:27
In reply to this message
да, тут нельзя не согласиться
Вл
16:27
В ладу
In reply to this message
визуализатор фигня. если твоё приложение не похоже на лендинг пейдж (не должно, ведь тогда тебя бы заменили верстальщиком/фронтэндером), то появляется много элементов которые нужно обобщить. много свойств которые невозможно задать статически и тут визуализатор обычно становится бесполезным и ты всё равно делаешь xml/edsl вслепую
xml много ещё где остаётся и много где ещё хочется от него отказаться
16:28
Sergey λ
In reply to this message
это наверное единственное исключение
КР
16:29
Кирилл Романенко
In reply to this message
Меня не заменили.) Пишу весь проект. И многие моменты невозможно сделать вслепую. Наоборот, нужно постоянно включать визуализатор и оценивать.
16:30
Sergey λ
In reply to this message
> невозможно сделать вслепую
качай нативный рендер 😄
Вл
16:32
В ладу
не ну круто было бы в рантайме редактировать код и тип перерендериться
16:32
как в реакт нетив
16:32
Sergey λ
In reply to this message
или Flutter
Вл
16:33
В ладу
оу
кажется это решает весь спор выше и вот тебе edsl с честным визуализатором
мб какие-нибудь подводные камни?) медленный?
КР
16:38
Кирилл Романенко
Пока не слышал о них, т.к. на андройде недавно.) Пойду копать инфу, спасибо!
16:38
Sergey λ
In reply to this message
он на ранней стадии разработки
Nick Senchurin invited Nick Senchurin
N
17:56
Nick Senchurin
N
Nick Senchurin 20.11.2017 17:55:36
на голом андройде я нажимал контрол альт хоум и меня кидало в лэйаут, в а в котлин-файлах есть подобный хоткей?
Eugene Matiash invited Eugene Matiash
Konstantin invited Konstantin
Y
18:55
Yahor Urbanovich
In reply to this message
У Anko же есть визуализатор
Вл
18:56
В ладу
ни разу не видел чтобы он работал
18:56
ну это началось с какой-то версии студии
Y
18:57
Yahor Urbanovich
В 2.3.3 было уже)
Вл
18:59
В ладу
я второй раз в третьей проверял
عجزت ملوك الجن ان تفهم مزاجي invited عجزت ملوك الجن ان تفهم مزاجي
ST
19:52
Sasha Tainyuk
In reply to this message
Он есть уже давно, но толку от мало. Как уже сказали выше, почти всегда не работает.
J
20:44
JRoot3D
In reply to this message
Работал на какой то канарейке. И с следующей версией грозятся починить конвертер
ST
20:45
Sasha Tainyuk
Будем надеяться.)
J
20:46
JRoot3D
In reply to this message
Ну я качал с их тимсити промежуточные сборки то конвертер заработал а визуализация нет
Вжик invited Вжик
21 November 2017
Kanybek Mo invited Kanybek Mo
Andrey Mischenko invited Andrey Mischenko
D
16:35
Dima
Есть scrollView как сделать постоянное отображение полосы прокрутки ?
QH
16:36
Quantum Harmonizer
In reply to this message
Гуглил?
Причём тут Котлин?
D
16:40
Dima
Гуглил нечего толкового
16:41
В дизайнера прикольно сделано 100500 свойств 5-6 реально рабочие
QH
16:42
Quantum Harmonizer
In reply to this message
Серьёзно? https://stackoverflow.com/a/7911203/3050249
Котлин тут причём?
D
16:45
Dima
In reply to this message
Перепутал малость, за ссылку спасибо
Eugene K. invited Eugene K.
Y
18:29
Yevhen
In reply to this message
не знаю как доклад но с фоном она явно переборщила )
N
18:35
Nick Senchurin
делаю инфлейт во фрагмент.
    val inflater = activity.layoutInflater
val v: View = inflater.inflate(R.layout.layout_simple_text, container, true)

v.content.text = "asdfasfd"

но почему то v.content никак не рисуется...
18:36
до этого экстеншннами не выцеплял из дочерних вьюх, не подскажете, как правильно?
18:37
другой лэйаут тоже не инфлейтится, видимо инфлейт нужно делать по-другому...
Y
18:40
Yevhen
нужно теперь это v засунуть в фрагмент
I
18:42
Igor
Кстати, тут есть люди шарящие в MVI?
Y
18:44
Yevhen
@nsenchurin
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
val view = inflater.inflate(R.layout.fragment_container, container, false)
setupViews(view)
return view
}
Вл
18:44
В ладу
In reply to this message
в архитектурном чатике наверное
S
18:47
Sergii
Нужно больше чатиков для бога чатиков :) А какие у него координаты, где искать?
MM
21:45
Maxim Motorniy
Оффтоп, конечно. Но все таки новость интересная https://itc.ua/news/tainstvennaya-os-google-fuchsia-poluchit-podderzhku-yazyika-programmirovaniya-apple-swift/
21:46
Так что котлин и андроид скоро будут deprecated
21:46
Расходимся
Вл
22:07
В ладу
> itc.ua
> большая перешакаленная картинка
> статья вроде про операционки но описывается такими словами, как будто речь про жизнь всяких актёров.
> в речи используются риторические приёмы
> ссылки на другую новостную срань
22:07
то за что ненавижу hacker news с их всякими вашингтон постс
QH
22:24
Quantum Harmonizer
In reply to this message
дико похоже на текст сообщений другого человека :)
I
22:26
Igor
In reply to this message
Да пофиг, я вообще на RN пишу.

А если что всегда есть Kotlin Native
Вл
22:27
В ладу
и как?
КР
22:27
Кирилл Романенко
In reply to this message
Крайне-крайне мало вероятно.
Вл
22:28
В ладу
неприятно было первый раз детачить/эджектить отказываться от всего экспо и писать на obj-c?
о ещё тут есть котлин-релейтед вопрос: пробовал завезти котлин-джс для рн? это правда не супер идея когда можно просто флоу поставить
I
22:34
Igor
Хм, у меня пока такой необходимости на появилось и expo хватает.

Вообще если выкинуть жс, то RN топчик для простых программ.

> Kotlin + RN
Нет не пытался, отзывы пока не очень.
А так была бы оф. поддержка Котлина (с тулингом) я бы на андроид вообще бы забил.
Вл
22:41
В ладу
у меня первый опыт с рн был помочь портировать obj-c либу на рн. ну и короч не круто.
тем более что теряется возможность из винды для айфона разрабатывать (приоритетная фигня была для того кому помогал). и фб не хочет связываться со свифтом. на самом деле это оправданно, тк свифт постоянно обновляется, но как-то неприятно возвращаться назад
22 November 2017
00:14
Sergey λ
In reply to this message
Они перевели статью The Verge
00:14
Факт имеет место
00:15
Но что, куда и зачем пока не понятно
N
10:17
Nick Senchurin
In reply to this message
на самом деле трабл был в том, что вторым аргументом надо было передать rootView.container, а я пихал просто container
10:18
но все равно, экстеншны очень удобны)
I
16:31
Igor
In reply to this message
Новое видео от авторов Kategory - https://youtu.be/IL5XzaCMKpQ
Более глубокое, тк со функциональной конфы Lambda.World (но либа все так же ### без задач)
16:37
Можно посмотреть просто “расширения кругозора”
(ну и возможно можно от туда взять генератор линз на аннотациях)
Вл
17:09
В ладу
линзы можно
это же топ. то есть там бедненько было в плане сопутствующих функций, но уже в том виде вполне юзабельно. компактно описывать апдейты модели
I
17:14
Igor
Возможно, только мне еще ни разу не приходилось апдейтить сильно вложенные поля (да кажется что в это есть что-то неправильное)
23 November 2017
Евгений Низамиев invited Евгений Низамиев
Anton Kazakov invited Anton Kazakov
Sebastian Pereiro invited Sebastian Pereiro
SP
19:40
Sebastian Pereiro
Коллеги, кто-нибудь использует room? Как обходите то, что он требует пустой конструктор для дата классов?
ST
19:49
Sasha Tainyuk
In reply to this message
Parcelable используешь?
Вл
19:49
В ладу
забить на дата классы.
тип можно подумать, что то что имеет отношение к бд/сети/фс должно быть дата классами, но реальность такова, что всё это проходит десериализации, а мир джавы это пустой конструктор и сеттеры. ну то же самое ещё и к фаргментам - инжекты вместо нормального конструктора.
чтобы тебе проще было забыть про эти дата классы, скажи — зачем тебе они были нужны?
SP
19:50
Sebastian Pereiro
In reply to this message
нет, это отдельный класс для сохранения в базе и использования внутри списков, етц.
QH
19:51
Quantum Harmonizer
так-то дата-классы не накладывают ограничений на конструктор или сеттеры
Вл
19:51
В ладу
ааа ну там же вроде хотя бы один аргумент в конструкторе должен быть?
SP
19:52
Sebastian Pereiro
вот есть инетерсная строчка, но что такое parameters match fields вообще непонятно Each entity must either have a no-arg constructor or a constructor whose parameters match fields (based on type and name)
I
19:52
Igor
Наверное нам нужна специальная аннотация, которая на уровне байт-кода делать синтетические пустой-конструктор и сетеры, не доступные из простого кода.

И все будут счастливы 😏
SP
19:53
Sebastian Pereiro
да, это было бы шикарно
Вл
19:53
В ладу
In reply to this message
вроде вполне понятно и даже решает твои проблемы
SP
19:53
Sebastian Pereiro
так а разве по умолчанию в дата классе не создается не пустой конструктор, у которого есть все параметры?
Вл
19:54
В ладу
создаётся тот который ты напишешь
19:55
тип если все параметры в круглых скобках, то да, утверждение справедливо
Y
19:55
Yahor Urbanovich
Чтобы был в дата классе пустой конструктор, надо все поля проинициализировать
SP
19:55
Sebastian Pereiro
да это то понятно, что поинициализировать надо, но это уже за гранью добра и зла по-моему
19:56
сейчас смотрю в декомпилированный код и там есть конструктор со всеми параметрами
QH
20:00
Quantum Harmonizer
In reply to this message
в любом классе
20:01
In reply to this message
параметры, у которых имена и типы соответствуют именам и типам полей, видимо
SP
20:06
Sebastian Pereiro
разве это не всегда справедливо, если не используешь кастомные имена полей, заданные через name = ?
QH
20:11
Quantum Harmonizer
In reply to this message
должно быть справедливо, я думаю
SP
20:15
Sebastian Pereiro
Кароч нафиг рум
ST
20:39
Sasha Tainyuk
@y_n07 вот так попробуй сделать
SP
20:45
Sebastian Pereiro
Спасибо, попробую
24 November 2017
VF
14:26
Va Fu
Ребят, кто-то пробовал ViewModel из ArchComponents дружить с каким-нибудь котлиновым DI фреймворком а-ля koin или kodein ?
14:28
и кондуктором, желательно 🙂
14:31
есть еще такая штука, может, кто-то тоже пробовал https://habrahabr.ru/company/mobileup/blog/342850/
S
14:48
Sergii
Ребят, а где дока на android-kotlin плагин?
Как зааплаить compileKotlin настройки для андроида?
ST
15:32
Sasha Tainyuk
In reply to this message
А в чем проблема?
VF
15:33
Va Fu
ну, там же, по-факту, свой инжектор, а дружить два инжектора это боль
15:34
с kodein только фабрики для каждого отдельного viewmodel писать, и это печально
15:35
а с conductor там вообще печально, потому что ViewModelProviders.of(arg) : arg — либо фрагмент, либо активити
ST
15:36
Sasha Tainyuk
Чет печаль.
S
18:52
Sergii
Ребят, а почему stdlib jar без сорцов? 🙄
Как сделать чтобы смотреть имплементацию стандартных коллекций в androidstudio ?
QH
18:52
Quantum Harmonizer
In reply to this message
typealias ArrayList = java.util.ArrayList
S
18:53
Sergii
18:53
@Harmonizr
вот это имею ввиду
QH
18:53
Quantum Harmonizer
хмм...
S
18:54
Sergii
Как бы большинство опенсорс либ уже научилось билдить джарники с сорцами и джавадоком, а тут или kotlin тима не положили или что-то с интеграцией в androidstudio
QH
18:54
Quantum Harmonizer
мб нужно Gradle попросить, чтоб тянуло исходники?
S
19:00
Sergii
сорцы вроде есть
http://central.maven.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.1.60/

похоже где-то котлин плагин для androidstudio надо подтолкнуть
27 November 2017
Vlad G invited Vlad G
GB
12:23
Gregory Bass
Не подскажете как фаргменты реализовывать в котлине? Создал элементарный фрагмент
12:23
И программа не запускается
AK
12:24
Anton Kazakov
мы угадать должны с чем падает?
12:24
а где дефолт конструкто
12:24
инфлейтер разве наллабл
GB
12:25
Gregory Bass
Ошибок в логе не видно
12:25
12:25
In reply to this message
студия ругалась и предложила так исправить
AK
12:25
Anton Kazakov
это не тот лог
GB
12:27
Gregory Bass
Если не затруднит мог бы пример самого элементарного фрагмента показать? Без лишнего кода, чтобы не запутаться
12:27
а я сравню что сделал не так
AK
12:27
Anton Kazakov
там же есть темплейты)
12:27
для фрагмента
GB
12:27
Gregory Bass
а да) сорян, не заметил
12:32
эм после урока по фрагменту для джавы где реализация идет как у меня на скрине только в синтаксе джавы тут что-то многовато кода. Аж на 103 строчки 😐
AK
12:32
Anton Kazakov
ты галочки не убрал для ньюинстанс и интерфейс наверное
12:32
убери все кроме конструктора и oncreateview
GB
12:33
Gregory Bass
да, оно. Спасибо! А то пока путаюсь иногда в элементарном
12:38
Извиняюсь конечно, но так получается тоже самое что я на скрине скинул и при запуске идет ошибка Error inflating class fragment
12:39
И можешь пояснить что за конструктор
12:39
AK
12:39
Anton Kazakov
у тебя наверное фрагмент менеджер на саппортовский
12:39
а фрагмент сапортовский
12:39
или наоборот
GB
12:41
Gregory Bass
да не все импорты саппортовские, ладно буду дальше гуглить
AK
12:41
Anton Kazakov
а менеджер
QH
13:00
Quantum Harmonizer
In reply to this message
этого недостаточно, должно быть более детальное пояснение
13:01
И, да, вопрос вообще не о Котлине.
VF
20:37
Va Fu
@Harmonizr , ща, я стяну проект твой, перевкурю 🙂
QH
20:38
Quantum Harmonizer
ок)
Sankarsana das invited Sankarsana das
Andrey K invited Andrey K
Валерий invited Валерий
Dmitry Ikryanov invited Dmitry Ikryanov
Siarhei Sin invited Siarhei Sin
Quarx2k 🦄 invited Quarx2k 🦄
Pavel Shilyagov invited Pavel Shilyagov
Deleted Account invited Deleted Account
28 November 2017
VF
00:13
Va Fu
@Harmonizr , отложилось немного вкуривание
идея очень хороша, мне нравится
но у тебя она жестко завязана на фрагментах, а это не гибко
я понимаю, что для твоих конкретных задач оно справляется хорошо
QH
00:14
Quantum Harmonizer
In reply to this message
Не завязано, именно поэтому у Presenter шесть (или семь?) дженериков.
Но реализовано только для фрагментов, да.
Deleted Account invited Deleted Account
Gerc invited Gerc
Вл
21:23
В ладу
https://github.com/JakeWharton/Reagent
видимо на данном этапе развития нельзя разделять стримы (которые про датафлоу) и промизы (которые про конкаренси)
AK
21:29
Anton Kazakov
FAQ
Should I use this?
No.
21:29
))
М
22:17
Михаил
А рх не хватит?)
Y
22:42
Yahor Urbanovich
какая версия котлина для андроид сейчас последняя?
22:42
а то стоит самая свежая версия, а студия ругается
22:45
пардон, релизнули 1.2.0
29 November 2017
App Le invited App Le
Anatoly invited Anatoly
A
19:41
Anatoly
Если нужно выполнить тяжелую операцию в отдельном потоке и вернуть результат в UI, нужно сделать что-то наподобие такого? ~~~ launch(CommonPool) {
val result = operation()
launch(UI) {
toUI(result)
}~~~
I
19:43
Igor
In reply to this message
Теор там ограничение на “кол-во ядер - 1”, больше паралельности на CommonPool под Android (<7) не получится.
Те если у тебя 2 ядерный телефон и долгие IO - вся асинхронщина будет последовательной.

(хз как на Android 7.0 дефолтный ForkJoinPool работает.)
A
19:45
Anatoly
In reply to this message
а по синтаксису верно?
I
19:46
Igor
Вроде да, хотя вместо launch(UI) { наверное лучше заюзать run(UI) {
Вл
19:47
В ладу
In reply to this message
так ведь вся идея в том чтобы не блокировать уи. на скорость то плевать
A
19:47
Anatoly
In reply to this message
спасибо
I
19:48
Igor
In reply to this message
Наверное, но мне было неприятно заметить это только в “продакшене”,
когда быстрые переходы между элементами списка открывали пустые окна.
QH
19:51
Quantum Harmonizer
In reply to this message
Откуда там ForkJoin?
Вл
19:53
В ладу
In reply to this message
CommonPool?
I
19:53
Igor
In reply to this message
Где именно?
В Android метод возращающий commonPool появился в 7.0 https://d.android.com/reference/java/util/concurrent/ForkJoinPool.html#commonPool()
Kotlin CommonPool проверяет его наличие через reflection и если он есть, то юзает его.
QH
19:54
Quantum Harmonizer
In reply to this message
О, прикольно.
Pavel invited Pavel
Evgenii Kozlov invited Evgenii Kozlov
A
23:24
Anatoly
Как сделать синглтон с передачей контекста? Нагугленные варианты выглядят не очень (
SS
23:29
Siarhei Sin
поделись ссылками, какие варианты не подошли, чтобы мы не гадали )
SS
23:32
Siarhei Sin
чем вариант 1й не подошел?
Manager.getInstance(context)
A
23:43
Anatoly
In reply to this message
выглядит пугающе )
SS
23:46
Siarhei Sin
да не, самый легкий вариант на самом деле :)
23:47
SingletonHolder в свой проект и можно использовать
MM
23:50
Maxim Motorniy
А какой контекст именно будет передаваться в синглтон и зачем?
23:51
Попахивает каким то страшным костылем.
SS
23:51
Siarhei Sin
обычная практика
23:51
Glide например
MM
23:52
Maxim Motorniy
А, т.е. автор пишет библиотеку, не приложение?
A
23:52
Anatoly
In reply to this message
бд, сервис
AK
23:54
Anton Kazakov
в глайд нужен нормальный контекст
23:54
а не апликейшен
23:55
там же даже перегруженные конструкторы есть для фрагмента активити вью и тп
MM
23:55
Maxim Motorniy
Помниться мне что в глайде в месте использования рекомендуется передавать "контекст", который ближе всего к месту использования. Под капот не смотрел, но не похоже что там синглтон
SS
23:56
Siarhei Sin
In reply to this message
всё верно, но непонятно что ты доказать хочешь
23:56
синглтоны зло - это все знают :)
MM
23:57
Maxim Motorniy
Я ничего не хочу доказать, мне просто кажется, что делать синглтон для контекста это не то что выстрел себе в ногу, а сразу в голову.
23:58
И дело не только в синглтоне. А в синглтоне с каким либо контекстом. Тут даже не попахивает мемори ликами, а откровенно смердит.
AK
23:58
Anton Kazakov
ребята не превращайте этот чат в андроид ру плз
MM
23:58
Maxim Motorniy
Ок)
SS
23:59
Siarhei Sin
можешь лики обосновать? апликейшн последнее, что живет в андроиде перед тем как процесс умрет
23:59
вариант поместить инстанс в Application через DI например норм, а нааборот костыль? :)
30 November 2017
AK
00:02
Anton Kazakov
уххх
00:02
вы про глайд спорите или че
00:04
в глайде нужен не апликейшен контекст тк глайд умный и знает про жизненный цикл. если например фрагмент контекст был использовао при создании инстанса глайда то при смерти его сразу отменится запрос на загрузку, не будет декодинга и кеширования. если у вас апликейшен контекст то он будет жить долго как и например может засетиться битмав в уже ненужную вьюху и тд
Lazar Prijović invited Lazar Prijović
SS
00:05
Siarhei Sin
мы не про глайд, ты вообще не туда
SP
00:05
Sebastian Pereiro
Простите, что влезаю, но разве не в этом как раз и суть, что если у нас будет инстанс этого синглтона где-нибудь в презентере, и мы забудем занулить ссылку на него, как раз из-за того, что аппликейшн контекст "вечный" то ГЦ не сможет нормально собрать ни этот инстанс, ни презентер
SS
00:06
Siarhei Sin
ну так не делай так )
AK
00:06
Anton Kazakov
ну вот а я тут распинаюсь
SS
00:06
Siarhei Sin
синглтон на то и нужен, что он 1 на приложение :)
SP
00:07
Sebastian Pereiro
из-за недостатка опыта или внимания такие вещи могут проскакивать
SS
00:07
Siarhei Sin
непонятно какие всё же )
00:08
сразу скажу - у меня синглтонов нету, всё через DI, но много всего на уровне ApplicationComponent, и приложение себя нормально чувствует.
AK
00:09
Anton Kazakov
на все новый обьект создаешь?
SS
00:10
Siarhei Sin
ты про то, что нету синглтонов? Да, портит тогда модульность иначе
AK
00:10
Anton Kazakov
у тебя энивей есть синглтон это апликейшен
00:10
каким образом портит модульность
00:11
чет я не понимаю
SS
00:11
Siarhei Sin
ну так это необходимое зло какбы
AK
00:11
Anton Kazakov
вот у меня есть главный модуль в котором допустим аналитика лежит
SS
00:11
Siarhei Sin
если у тебя есть синглтоны, и ты их напрямую используешь, то это говнокод :) в 21 веке
AK
00:11
Anton Kazakov
почему я не могу сделать трекер синглтоном
SP
00:11
Sebastian Pereiro
In reply to this message
+1
AK
00:12
Anton Kazakov
бля ну вот
SP
00:12
Sebastian Pereiro
можешь на уровне DI
AK
00:12
Anton Kazakov
спасибо ребята
00:12
я и забыл что 21 век
SS
00:12
Siarhei Sin
In reply to this message
делай, я считаю подход нормальным. но на уровне DI это был бы интерфейс, который можно мокать и т.д.
00:12
я ж как раз и твержу за то, что Manager.getInstance(appContext) это какбы ничего такого, я бы сказал обыденно ))
AK
00:13
Anton Kazakov
а причем тут интерфейс вообще?
00:13
ты скоуп можешь классу указать
00:14
а если ты будешь либу писать то ты че будешь делать?
00:14
провайдить?))
00:14
через ди
SS
00:15
Siarhei Sin
перечитай что я писал, я говорю что это норм подход, и привел в пример Glide :)
AK
00:15
Anton Kazakov
так а в глайде как раз на каждый новый контекст новый инстанс
SS
00:15
Siarhei Sin
да пофигу, плохой пример значит ))
00:16
или ты спор ради спора завел?
AK
00:16
Anton Kazakov
так за че ты топишь я нихуя не пойму
00:16
не
00:16
я просто не пойму ты говоришь то говно то норм
00:16
только что был говнокод а потом стал норм подход
SS
00:16
Siarhei Sin
синглоны - ниче такого. синглоны напрямую в коде - говнокод. это мое мнение.
00:17
по поводу интерфейса и почему синглтон лучше заворачивать, если он есть.
сегодня у тебя Fabric, а завтра Flurry, и везде синглтоны, и по 100 ссылок на них в коде.
AK
00:18
Anton Kazakov
дау меня сразу 5 аналитик
SS
00:18
Siarhei Sin
и 5 синглтонов?
AK
00:19
Anton Kazakov
1 синглтон в котором 5 других
00:19
ну работаю я только с 1
SS
00:19
Siarhei Sin
ну так ты DI Завернул в синглтон :)
00:19
почему там DI не заюзать?
AK
00:19
Anton Kazakov
где тут ди то)
00:20
если я вызываю в том синглтоне 5 синглтон инстансов других аналитик чет не вижу тут ди)
SS
00:21
Siarhei Sin
блин, вижу тут какое-то писькомерение. я свой подход и мнение объяснил, переубедить что синглтоны говнокод никого не пытаюсь если что :)
MM
00:23
Maxim Motorniy
есть приложение, оно синглтон, оно контекст
что ещё надо?
SS
00:27
Siarhei Sin
тесты?
MM
00:27
Maxim Motorniy
вопрос был, как сделать тестируемый синглтон?
00:27
Цитирую: "Как сделать синглтон с передачей контекста?"
00:29
Ответ: "есть приложение, оно синглтон, оно контекст"
00:29
вроде сходится
SS
00:30
Siarhei Sin
эта тема уже давно закрыта была, там сам же тс ответ скинул на вопрос 40 минут назад
MM
00:31
Maxim Motorniy
ни одного ответа на этот вопрос в этом чате не было, в т.ч. от меня
SS
00:31
Siarhei Sin
затем мы переключились на то, зло синглтоны или нет
00:31
Siarhei Sin, [29.11.17 23:32]
чем вариант 1й не подошел?
Manager.getInstance(context)

Mikhail, [29.11.17 23:43]
[In reply to Siarhei Sin]
выглядит пугающе )

Siarhei Sin, [29.11.17 23:46]
да не, самый легкий вариант на самом деле :)

Siarhei Sin, [29.11.17 23:46]
SingletonHolder в свой проект и можно использовать
00:32
😁
MM
00:32
Maxim Motorniy
Но автора же не устроили именно эти варианты.
00:33
В прочем неважно. Предлагаю закрыть темы.
AR
01:37
Alex Rasskazov
In reply to this message
попробую предложить вариант отсюда, https://github.com/stepango/Archetype посмотри как у низ делается DI, контекст передается через Application(), который потом инжектится в DI
Dmitry Sokolov invited Dmitry Sokolov
Grigorii Raudiiainen invited Grigorii Raudiiainen
Макс invited Макс
Наиль Гилазиев invited Наиль Гилазиев
Alexander T invited Alexander T
Anton Shvab invited Anton Shvab
Denis Chagin invited Denis Chagin
Denis invited Denis
D
11:36
Denis
приветы

гайз, а у вас "Calling new methods on older versions" на котлине работаит?
Georgii Solovev invited Georgii Solovev
N
18:52
Nick Senchurin
N
Nick Senchurin 30.11.2017 18:48:37
Всем привет , а дагер дружит с котлином ?
18:52
Часто слышал много упреков в сторону капта
Y
18:53
Yahor Urbanovich
все работает)
N
18:55
Nick Senchurin
Спасибо , буду тестить
Y
19:24
Yahor Urbanovich
с TypeDef еще нет новостей?
NoMad42 invited NoMad42
Константин invited Константин
1 December 2017
Усман invited Усман
Max Oliynik invited Max Oliynik
Pavel Vasiliev invited Pavel Vasiliev
Aleksandr Gilmanov invited Aleksandr Gilmanov
Александр invited Александр
Andrew invited Andrew
GB
12:09
Gregory Bass
В андроид студии для котлина не наботает show method separation ? Галочка стоит, в java файлах видно разделение методов, а в котлине нет
Alex invited Alex
Jeka Goroshkin invited Jeka Goroshkin
Александр Смалёха invited Александр Смалёха
3 December 2017
Denis invited Denis
ST
17:45
Sasha Tainyuk
Пацаны, а это нормально, когда widget().lparams { visibility = View.GONE } влияет на родителя? Или что то не так делаю?

Если перенести во внутрь виджета, то все ок.
I
17:49
Igor
А ты можешь this. перед visibility поставить?
QH
17:51
Quantum Harmonizer
непосредственный this в lparams — это layoutParams, снаружи него — this родителя, результат немного предсказуем
ST
17:51
Sasha Tainyuk
Возможно, не пробовал.
I
17:58
Igor
In reply to this message
А почему кстати @AnkoViewDslMarker не блокирует вызов visibility из внешнего скоупа?
QH
17:59
Quantum Harmonizer
In reply to this message
Потому что это единственный подходящий скоуп, ядумаю
I
17:59
Igor
Хм, а я думал он просто блокирует внешние скоупы.
I
20:09
Igor
@usmafeel
Проверь все таки тип аргумента в view
observe(view, …)
В IDEA это вроде комбинация клавиш ctr+J
I
20:09
Igor
У
4 December 2017
Nikolay Gusev invited Nikolay Gusev
Monsieur Taishín invited Monsieur Taishín
Dmitriy Mitrofanov invited Dmitriy Mitrofanov
Anatoly Shirokov invited Anatoly Shirokov
Андрей Мамонов invited Андрей Мамонов
Roman Sytnyk invited Roman Sytnyk
QH
16:52
Quantum Harmonizer
внезапно)
RI
16:53
Ruslan Ibragimov
Я даже посмотрел)
I
16:53
Igor
In reply to this message
Подкинь ее гитхуб с примерами
QH
16:53
Quantum Harmonizer
In reply to this message
16:53
In reply to this message
сочувствую)
RI
16:54
Ruslan Ibragimov
Ну почему, вполне себе) Паттерны, композиция. Пока про какие-то инфлейторы речь не заходила было вполне понятно
QH
16:55
Quantum Harmonizer
In reply to this message
потому что мне пора голос нормально поставить :)
RI
16:56
Ruslan Ibragimov
Не волнуйся, тяжело слушать себя в записи, это почти у всех так
I
17:16
Igor
In reply to this message
Слегка напомнило механизм Behaviour в WPF/Xamarin,
только там не принято “создавать” view, а только коннектится к готовым.

Но в принципе годных механизм вынести из UI логики и раскидать ее по независимым/переиспользуемым классам.
I
17:31
Igor
QH
Quantum Harmonizer 04.12.2017 17:28:34
Это вполне годная тема для @android_mobile, например.

Суть утверждения Игоря не в том, что не надо оптимизировать, а в том, что любая библиотека многократно больше, чем все твои enum'ы вместе взятые.
I
17:31
Igor
Я просто авансом отсаиваю свое право пользоваться sealed классами 🙃
QH
17:33
Quantum Harmonizer
In reply to this message
не, забудь, sealed-класс — это целый класс, он кучу места в памяти занимает.
Vitalii Dmitriev invited Vitalii Dmitriev
Gukov Viktor invited Gukov Viktor
GV
17:37
Gukov Viktor
In reply to this message
В процентном соотношении это действительно ничтожная часть от прочих, более объемных вещей. Тут скорее воля разработчика в том, хочет ли он оптимизировать всё, что можно оптимизировать или нет.
QH
17:38
Quantum Harmonizer
In reply to this message
Какой профит? Загрузка классов на 0.5% быстрее? Или на 0.2%?
GV
17:40
Gukov Viktor
In reply to this message
Тут 0.2%, там 0.5%. Глядишь и процент набежал. Но я не могу придумать кейс в котором бы требовалась такая сверхоптимизация. Старые устройства? Узкопрофессиональные вроде тех, что у работников РЖД?
QH
17:43
Quantum Harmonizer
In reply to this message
Когда-то в проекте с 11к собственных методов я обновил ретролямбду. 500 методов ушло в небытие. Десяток энамов даже рядом не стоял по массе.

Я ничего не имею против такой сверхоптимизации, только вот лысый это совсем иначе подаёт. Не как возможность, а как необходимость. Ему стоило бы добавить «ни в коем случае не подключайте AppCompat.»
I
17:44
Igor
Как обычно - авторы android сваливают работу на прикладных разработчиков “пишите дескать как на c++”
(а благодаря их стараниям - проекты уже давно не укладываются в 65k)

А вообще уже сто раз всякие “перформенщики” говорил “помните Кнута и юзайте профайлер”
GV
17:53
Gukov Viktor
In reply to this message
“пишите дескать как на c++”
Android NDK же есть для таких случаев. У кого нибудь есть пример проекта полностью на NDK?
17:54
In reply to this message
Как раз для любителей сверхоптимизации.
VD
17:55
Vitalii Dmitriev
In reply to this message
Такая сверхоптимизация, что JNI — ощутимый оверхед.
А вообще, чистым проект, вроде, не может быть, как минимум Application/Activity/ещё что на Java надо описать и пробросить вызовы.
I
17:58
Igor
> JNI — ощутимый оверхед
Ну c++ наверное только для игры и нужнен, где все свое и мало вызовов android-части.
(всякие отщипенцы типа 2gis, которые на qt пишут - не в счет)
17:58
Sergey λ
In reply to this message
Есть и NativeActivity
17:59
Но не юзал, особенностей не знаю
VD
17:59
Vitalii Dmitriev
In reply to this message
Ещё всякие нативные библиотеки, которые на Java переписывать очень дорого.

Ну и реализации всяких протоколов тоже.
QH
18:00
Quantum Harmonizer
телеграм ещё есть, который работает с сетью нативно)
18:03
Sergey λ
In reply to this message
Как и с бд
Вл
18:04
В ладу
да бывает бд берут свою и данные в ui потоке достают
I
18:05
Igor
Тут народ на Clojure пишет через ReactNative и у них (почти) не тормозит.
А вы про какие-то native, как-будто тут авторы телеграмов собрались.
18:09
Sergey λ
In reply to this message
Но согласись, что неприятно когда на мощном девайсе юи приложения лагает 🙂
Roman Pihariev invited Roman Pihariev
I
18:16
Igor
Потому что слишком много свистелок-… напридумывал дизайнер 🤷‍♀️

Иногда кажется что мы не проблемы людей решаем автоматизацией (по заветам Фреско),
а реализуем безумные идеи далеких от разработки людей.
Вл
18:16
В ладу
так главное же по потокам раскидать
с чем рн справляется
18:17
ну батарейку ест - это фигня
AV
18:20
Anton Vlasov
если сложная анимация, по тредам не раскидаешь особо, но таки да
Eduard Mizurov invited Eduard Mizurov
5 December 2017
Nickolay Chameyev invited Nickolay Chameyev
Mikhail invited Mikhail
Alexander invited Alexander
Dmitry Konurov invited Dmitry Konurov
Vladimir Bobkov invited Vladimir Bobkov
VB
13:31
Vladimir Bobkov
Нароооооод!!! Привет всем!!!
Подскажет кто? Почему точка останова в функции onSaveInstanceState() класса MainActivity : AppCompatActivity не срабатывает при повороте экрана?
13:36
Sergey λ
In reply to this message
Может вы хендлите смену конфигурации?
VB
13:37
Vladimir Bobkov
In reply to this message
Эээээээээээээээээ?
AK
13:37
Anton Kazakov
хахах
QH
13:37
Quantum Harmonizer
In reply to this message
отличный разговор
13:38
Sergey λ
In reply to this message
В манифесте есть android:configChanges ?
VF
13:38
Va Fu
а до чего тут котлин, ребят ?
DM
13:38
Dmitriy Mitrofanov
In reply to this message
13:38
Sergey λ
In reply to this message
Вот да.
DM
13:38
Dmitriy Mitrofanov
А, я снова не увидел, что вопрос не в том чате. Прошу прощения
13:39
Sergey λ
In reply to this message
Первый что не вызывается работает только на андроид 5+
DM
13:40
Dmitriy Mitrofanov
Ну я просто натыкался и самое простое - не тот метод override'ил =)
VB
13:40
Vladimir Bobkov
In reply to this message
++
13:40
Sergey λ
Там PersistableBundle
VB
13:41
Vladimir Bobkov
In reply to this message
нету
QH
13:41
Quantum Harmonizer
короче, надо код
VB
13:42
Vladimir Bobkov
In reply to this message
Вот
13:42
Sergey λ
In reply to this message
Android? Версия
13:43
In reply to this message
^^^
VB
13:43
Vladimir Bobkov
In reply to this message
Вот
13:43
Sergey λ
In reply to this message
ОС, не студию
VB
13:44
Vladimir Bobkov
In reply to this message
API_24
13:45
Sergey λ
In reply to this message
Переопредели другой метод, без PersistableBundle
VB
13:47
Vladimir Bobkov
In reply to this message
Уррррррааааа!!! Заработалооооо!!!!
13:47
Sergey λ
А стоило почитать документацию 😁
13:47
Заработало бы сразу
VB
13:48
Vladimir Bobkov
In reply to this message
QH
13:49
Quantum Harmonizer
In reply to this message
там полупустая страница)
VB
13:54
Vladimir Bobkov
Вообще андроид при повороте экраана должен сохранять состояния всех вью, для которых задано айди, но почему-то не сохраняет
13:56
Sergey λ
In reply to this message
Он это делает для которых умеет, типа EditText и TextView
Oleh invited Oleh
VB
13:56
Vladimir Bobkov
In reply to this message
Дык у меня текствью и есть
13:57
Sergey λ
Ну текст то сначала надо задать
13:57
Я не вижу на том скриншоте этого
VB
13:58
Vladimir Bobkov
In reply to this message
Текст задаётся
13:58
Sergey λ
В леяуте? Значит он будет после поворота.
VB
13:59
Vladimir Bobkov
In reply to this message
вот. но и в лейауте тоже
13:59
Sergey λ
И вообще это тема уже не про Котлин. Извольте перейти сюда @android_ru
QH
13:59
Quantum Harmonizer
In reply to this message
см. freezesText
14:00
Sergey λ
14:00
Ты же его сам и затираешь
VB
14:01
Vladimir Bobkov
In reply to this message
Дык оно ж должно при пустом стэке состояний сработать так? Иля я чё-то не догоняю
QH
14:04
Quantum Harmonizer
Ответ выше, давайте больше не оффтопить.
14:05
In reply to this message
Неправда.
Состояние восстанавливается после onCreate. Просто TextView по умолчанию его не сохраняют.
14:05
Sergey λ
In reply to this message
всмысле по умолчанию?
14:06
если есть айди, он сохранит
QH
14:06
Quantum Harmonizer
In reply to this message
Если есть айди, фреймворк позовёт метод вьюхи, который сохраняет состояние.
TextView посмотрит, что freezesText — false, и не сохранит ничего.
Сергей Е invited Сергей Е
QH
14:07
Quantum Harmonizer
(по ошибке написал EditText. Конечно, имел в виду TextView)
Eugene Dudnik invited Eugene Dudnik
VB
14:09
Vladimir Bobkov
In reply to this message
+++++
Установил в лейауте для текствью android:freezesText="true" и затёр onSaveInstanceState(outState: Bundle?) - всё работает :):):):):)
Nick Miller invited Nick Miller
VB
14:15
Vladimir Bobkov
In reply to this message
Вот нифига это из официального документа (https://developer.android.com/reference/android/widget/TextView.html#attr_android:freezesText) не следует, но факт.
QH
14:16
Quantum Harmonizer
frozen icicle 😀
VB
14:18
Vladimir Bobkov
In reply to this message
всю голову сломал, как это адекватно перевести
QH
14:18
Quantum Harmonizer
замёрзшая сосулька, ну
GV
14:19
Gukov Viktor
In reply to this message
Сосулька сама по себе подразумевает замерзшее состояние, разве нет?
VB
14:19
Vladimir Bobkov
In reply to this message
поэты, блин
QH
14:20
Quantum Harmonizer
In reply to this message
в гугле, видимо, нет
14:21
Sergey λ
наверное для них она тает
VB
14:34
Vladimir Bobkov
Нарооооод!! А кто знает, как под котлином Moxy запускать?
AK
14:35
Anton Kazakov
никто
GB
14:37
Gregory Bass
Не подскажете что происходит при компиляции котлина с таким кодом? Когда я не создаю переменную и не привязывыаю view элемент через findViewById, а использую айдишник напрямую
14:37
14:37
В байт коде не будет много лишнего дублируемого кода?