@kotlin_lang

Страница 900 из 982
Konstantine
30.09.2018
12:53:22
В общем много не понятных сходу моментов

Mikhail
30.09.2018
12:53:56
Да, а можно еще по логике интеракторы сделать suspend'ами, либо наоборот прям в них билдеры использовать
Саспендами. Никаких execute, получающих сразу значение с непонятно какого треда и непонятно когда

Konstantine
30.09.2018
12:55:41
Саспендами. Никаких execute, получающих сразу значение с непонятно какого треда и непонятно когда
В RX для этого часто используют некий SchedulerProvider, тут можно сделать что-то вроде ContextProvider

Поэтому и хочется реальный рабочий пример глянуть

Google
Mikhail
30.09.2018
13:16:50
В RX для этого часто используют некий SchedulerProvider, тут можно сделать что-то вроде ContextProvider
Саспенд поздволяет сделать инверсию зависимостей без инъекции

Зачем усложнять?

Konstantine
30.09.2018
13:17:49
Это получается, что у нас все слои, кроме презентейшн, будут саспендами? И лишь презентейшн будет уже билдерами пользоваться и решать что да как?

Mikhail
30.09.2018
13:18:03
Между вариантом "передавать шедулерпровайдер" и "извне подписывать на нужный шедулер" разница только в количестве кода

Обычно также и с ркс

Konstantine
30.09.2018
13:18:28
Хм, окей, спасибо

Mikhail
30.09.2018
13:19:52
А еще лучше, если интерактор будет чистой функцией а презентер будет применять ее к саспенду из дата-слоя. Количество кода в тестах уменьшится в разы

Alexander
30.09.2018
14:26:07
Перевел один из маленьких проектов на mpp сборку. Некоторое время бился лбом об настойку artifactory, но в результате все заработало

Osip
30.09.2018
14:48:59
Доброго времени суток. Из-за чего может быть такое, что номера строк кода в рантайме не соответствуют номерам строк в исходниках? Пишу сюда, потому что библиотека на котлине. Грешил уже и на proguard и на shadow plugin, отключил обоих, но проблема остаётся. Упорно не получается при отладке нормально ходить по исходникам.

Alexander
30.09.2018
14:53:11
proguard и shadow к исходникам вообще отношения не имеют. Обычно такие штуки возникают из-за неправильной версии плагина или из-за протухкния кэша идеи. Проверьте версии и инвалидируйте кэш.

Osip
30.09.2018
15:00:22
@noraltavir думал на proguard потому что в генерируемом маппинге есть строки типа: ru.endlesscode.inspector.api.report.DiscordReporter$Builder -> ru.endlesscode.inspector.api.report.DiscordReporter$Builder: ru.endlesscode.inspector.api.service.TextStorage textStorage -> textStorage java.lang.String id -> id java.lang.String token -> token java.lang.String username -> username java.lang.String avatarUrl -> avatarUrl 123:134:ru.endlesscode.inspector.api.report.Reporter build() -> build 146:148:ru.endlesscode.inspector.api.report.DiscordReporter$Builder hook(java.lang.String,java.lang.String) -> hook 158:159:ru.endlesscode.inspector.api.report.DiscordReporter$Builder setUsername(java.lang.String) -> setUsername 169:170:ru.endlesscode.inspector.api.report.DiscordReporter$Builder setAvatar(java.lang.String) -> setAvatar 111:117:void <init>() -> <init>

Google
Alexander
30.09.2018
15:01:29
В отладке он вообще не включается

Не должен по крайней мере

Osip
30.09.2018
15:01:46
У меня не android приложение

Alexander
30.09.2018
15:02:24
Ну если он криво руками прикручен то все может быть.

Osip
30.09.2018
15:02:55
Да, но и без него проблема сохраняется. Сейчас после сброса кэша посмотрю что будет

@noraltavir со сброшенным кэшем то же самое.

Alexander
30.09.2018
15:09:43
Ну значит какая-то экзотика, надо билдскриптом и настройками идеи разбираться

Osip
30.09.2018
15:30:18
@SchFuntik, я имел в виду, что при отладке отладчик идёт совершенно не по тем строкам, которые в исходинках

Alexandr
30.09.2018
19:30:27
@SchFuntik, я имел в виду, что при отладке отладчик идёт совершенно не по тем строкам, которые в исходинках
Отлаживаете либу? Если пытаетесь ходить по декомпиленному коду, то вполне может быть(даже в java). Он может сильно отличаться от исходников. Лучший вариант - тянуть с мавена jar с исходниками, если они поставляются

dimiii
30.09.2018
21:17:04
очень искусственный такой пример
Ребята из sun/oracle с десяток лет пилили jigsaw, а на выходе, для прикладной разработки выхлоп такой, что гораздо более вероятное событие увидеть подобное, чем проект, использующий возможности модулей

Konstantine
30.09.2018
21:28:47
Да
Это как получается. Допустим, я делаю авторизацию пользователя. У меня AuthActivity вызовет AuthPresenter и передаст туда логин и пароль. Тот, в свою очередь, с помощью какого-нибудь launch вызовет AuthUseCase, у которого будет suspend fun auth(login: String, pass: String): Boolean который будет лезть еще дальше в suspend репозиторий? Или же сам usecase должен возвращать какую-либо корутину, а не просто булевое значение?

Osip
30.09.2018
21:30:56
Отлаживаете либу? Если пытаетесь ходить по декомпиленному коду, то вполне может быть(даже в java). Он может сильно отличаться от исходников. Лучший вариант - тянуть с мавена jar с исходниками, если они поставляются
Либа своя, поэтому исходники есть. Кстати, с проблемой разобрался. Оказалось, в Class Loader затесалась старая версия этой либы, отсюда и расхождения в номерах строк

Bogdan
30.09.2018
21:43:45
Ребята из sun/oracle с десяток лет пилили jigsaw, а на выходе, для прикладной разработки выхлоп такой, что гораздо более вероятное событие увидеть подобное, чем проект, использующий возможности модулей
лигсваг про другое, это скорей "модификатор доступа", и ролезно для разработки либ, также, в идеале, сможет уменьшить количество загружаемых классов. Если нужна выгрузка классов, то это OSGI

Alexandr
01.10.2018
02:47:12
Unknown
01.10.2018
07:55:32
синтетические свойства Котлин работают с виджетами из Android X?

balolam
01.10.2018
08:31:03
синтетические свойства Котлин работают с виджетами из Android X?
Там совершенно не играет роли что это за виджеты, принцип работы другой

Unknown
01.10.2018
08:32:21
Там совершенно не играет роли что это за виджеты, принцип работы другой
я уже разобрался, функция migrate to android x ничего не переделала вот и возникли проблемы, пришлось все вручную править

picty
01.10.2018
09:39:29
Ребята, посдкажите вот есть либа https://github.com/nhaarman/mockito-kotlin Стоит ли её юзать для Kotlin? Вопром связан с тем, что и стандартная либа работает — или в этой всё коротко и красиво просто?) спасибо!

Google
Руслан
01.10.2018
09:43:09
Там бывают проблемы с мокито, из-за того что местами с типами беспорядок, местами он null передает в not null места

Поэтому брать mockito-kotlin, или Mockk.

J
01.10.2018
11:30:01
Такой вопрос есть кнопка, по которой происходит запрос на сервер и парситься JSON, как сделать так, чтобы при многократном нажатии не делался каждый раз запрос, а существовала бы задержка для каждого пользователя. Допустим 10 сек

J
01.10.2018
11:31:26
нет

ограничение должно быть не на сервере

Ivan
01.10.2018
11:40:22
В какой момент этот чат стал андроид-чатом?

Timophei
01.10.2018
11:47:20
оо да здравствует срач

J
01.10.2018
13:22:08
Я слышал разработка на андройд и котлин как-то связаны

Nikita
01.10.2018
13:23:17
Я слышал разработка на андройд и котлин как-то связаны
ну щас массово переходят на разработку андроид приложений на котлине

Bogdan
01.10.2018
13:25:51
Egor
01.10.2018
13:25:52
Я слышал разработка на андройд и котлин как-то связаны
бред какой-то. Я под андроид на хтмл пишу

Timophei
01.10.2018
13:26:58
бред какой-то. Я под андроид на хтмл пишу
Не прошлый век, все на Peetooh переходят

Kirill
01.10.2018
13:28:12
Не прошлый век, все на Peetooh переходят
Flutter, вы опечатались немного

Google
Yaroslav
01.10.2018
13:57:47
Flutter, вы опечатались немного
Вы имели ввиду ReactBug?

Admin
ERROR: S client not available

Konstantine
01.10.2018
15:28:39
Я правильно понимаю, что в этом коде: class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val service = RetrofitFactory.makeRetrofitService() GlobalScope.launch(Dispatchers.Main) { val request = service.getPosts() val response = request.await() if (response.isSuccessful) { // Pass in the response.body() to your adapter } else { toast("Error ${response.code()}") } } } }Запрос выполнится в бэкграунде? А то обычно видел, чтобы UI оборачивали в withContext(UI), а тут как-то и запрос и обработка в одном месте. Взято отсюда: https://android.jlelse.eu/kotlin-coroutines-and-retrofit-e0702d0b8e8f

Pavel
01.10.2018
15:48:31
Кто-нить юзает exposed? Как сериализуете модели? У меня на id поле постоянные infinite loops при сериализации. Не знаю как решить проблему ?

Exposed дно?

Quantum Harmonizer
01.10.2018
15:49:23
Pavel
01.10.2018
15:49:47
Альтернативы? kwery?

Sergey
01.10.2018
15:49:54
jdbi )

Quantum Harmonizer
01.10.2018
15:50:23
Альтернативы? kwery?
была бы годной, если бы поддерживалась

Andrey
01.10.2018
16:31:08
вот бы что-то подобное как это https://knexjs.org/ под kotlin

Quantum Harmonizer
01.10.2018
16:32:10
вот бы что-то подобное как это https://knexjs.org/ под kotlin
В Anko вроде похоже (но это Android). Проблема в том, что идеи из нетипизированных языков плохо ложатся на типизированные языки.

Руслан
01.10.2018
16:32:45
Phil
01.10.2018
16:42:01
Т.е. да, даже jooq лучше

Pavel
01.10.2018
16:46:10
jooq или jdbi?

Boris
01.10.2018
16:48:38
А я тут недавно маппер для джбстемплейта написал, который умеет в датаклассы

Phil
01.10.2018
16:52:26
А какая разница в jdbctemplate, что будет в результате лямбды?

Boris
01.10.2018
16:59:21
Только в том, что маппер сам маппит резалтсет на датакласс, а так никакой

Eugeny
01.10.2018
17:16:28
jooq или jdbi?
Если схема небольшая, то jdbi. Если средняя и большая, то настраиваешь жуковую автогенерацию и пануешь с автобополнением и типобезопасным жуком

Google
Quantum Harmonizer
01.10.2018
17:18:27
Посмотрел этот JDBI. Fluent API — schemaless и без типов. Declarative API — аннотации. Мда.

1337
01.10.2018
17:23:42
https://habr.com/post/423697/

сам не пробовал если че

Vlad
01.10.2018
17:26:14
Всем привет. Вопрос чисто из любопытства, чем будет отличаться класс, наследуемый от Any, от класса, наследуемого от java.lang.Object?

Alexander
01.10.2018
17:43:54
Тем, что один на Java, а другой на kotlin

Ну и еще первый не может быть null

Pavel
01.10.2018
17:57:02
Всем привет. Вопрос чисто из любопытства, чем будет отличаться класс, наследуемый от Any, от класса, наследуемого от java.lang.Object?
Note: Any is not java.lang.Object; in particular, it does not have any members other than equals(), hashCode() and toString(). Отсюда https://kotlinlang.org/docs/reference/classes.html

Но возможно на уровне байткода это будет одно и то же

Vlad
01.10.2018
17:58:02
Тем, что один на Java, а другой на kotlin
не, тот же самый котлин класс, только наследуемый от Object, интероп же)

Alexander
01.10.2018
18:00:16
Any внутри Kotlin-JVM превращается в Object, так что в этом случае разницы особой нет.

Но это внутри

Kirill
01.10.2018
18:51:20
+
Чем exposed плох?

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