
Konstantine
30.09.2018
12:53:22
В общем много не понятных сходу моментов

Mikhail
30.09.2018
12:53:56

Konstantine
30.09.2018
12:55:41
Поэтому и хочется реальный рабочий пример глянуть

Google

Mikhail
30.09.2018
13:16:50
Зачем усложнять?

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
А еще лучше, если интерактор будет чистой функцией а презентер будет применять ее к саспенду из дата-слоя. Количество кода в тестах уменьшится в разы

Konstantine
30.09.2018
13:20:42

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
Ну значит какая-то экзотика, надо билдскриптом и настройками идеи разбираться

Bogdan
30.09.2018
15:17:44

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

Alexandr
30.09.2018
19:30:27

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

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

dimiii
30.09.2018
21:53:40

Alexandr
01.10.2018
02:47:12

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

balolam
01.10.2018
08:31:03

Unknown
01.10.2018
08:32:21

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

Google

Жабра
01.10.2018
09:40:15

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

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

Dmitri
01.10.2018
11:30:38

Никита
01.10.2018
11:31:01
типа 4 человека стоят и тыкают поочереди в экран?

J
01.10.2018
11:31:26
нет
ограничение должно быть не на сервере

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

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

Max
01.10.2018
11:54:09

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

Nikita
01.10.2018
13:23:17

J
01.10.2018
13:23:44

Bogdan
01.10.2018
13:25:51

Egor
01.10.2018
13:25:52

Timophei
01.10.2018
13:26:58

Kirill
01.10.2018
13:28:12

Google

Yaroslav
01.10.2018
13:57:47

OlegKrikun
01.10.2018
13:59:39

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

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

Quantum Harmonizer
01.10.2018
16:32:10

Руслан
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
Но возможно на уровне байткода это будет одно и то же

Vlad
01.10.2018
17:58:02

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

Kirill
01.10.2018
18:51:20