
Igor
11.02.2018
10:42:22

Dibro
11.02.2018
10:44:26

Va
11.02.2018
10:57:27

Igor
11.02.2018
11:08:59
да я уже в метод завернул, как выше посоветовали
Я немножко о другом, можно вынести всю чистую логику в отдельную функцю, даже generic
fun <T> findByCommand(update: Update, commands: Map<String, T>): T? =
update.message
?.text
?.let { commandRegex.find(it) }
?.groupValues?.get(1)?.toLowerCase()
?.let(commands::get)
Потом ты сможешь ее тестировать атомарно, простыми дата-тестами без моков, ведь они зависит только от аругментов.

Google

Dibro
11.02.2018
11:33:21

Igor
11.02.2018
17:48:13
Ребят, как в koin сделать временный контекст, что бы View прокинуть в презентеру в конструктор?
Все пример на сайте, через метод, уже после создания.

Va
11.02.2018
21:26:00

Sviat
11.02.2018
21:37:07
Зачем вообще инжектить вью/контекст в презентер? Это нарушение мвп и какой-то бэд пректис

Михаил
12.02.2018
02:43:53

Dmitriy
12.02.2018
02:57:04

Mikhail
12.02.2018
06:01:54

Igor
12.02.2018
06:38:56

Sviat
12.02.2018
06:39:51
Для таких случаев у презентера есть методы takeView dropView
Но суть уже описали выше. Презентер живёт дольше вьюхи, значит в конструктор вьюху кидать нельзя

Dmitriy
12.02.2018
06:42:40
И не только clean

Igor
12.02.2018
06:43:53

Google

Igor
12.02.2018
06:44:27

Sviat
12.02.2018
06:45:58
И что это будет? Вы инжектите презентер во Вью и хотите ещё и Вью в презентер? Циклическая зависимость

Igor
12.02.2018
06:48:45
И в чем проблема? У нас GC, а не ARC. Все зависимости идут на интерфейсы.

Vladimir
12.02.2018
09:32:08
привет. я собрал проект, и вот какие классы попали в jar файл: https://gist.github.com/marshall-lee/7579fc2c21769cbfc91e3925b260b868
в зависимостях я разумеется явно их не указывал, у меня там только kotlin-stdlib-jdk8.
они правда нужны котлиновскому рантайму, или у меня билд плохо настроен?

Quantum Harmonizer
12.02.2018
09:41:33

Vladimir
12.02.2018
09:44:00

Quantum Harmonizer
12.02.2018
09:45:23

Vladimir
12.02.2018
09:46:02
ок)

Sergey
12.02.2018
10:01:09
вроде бы они собираются убрать эту зависимость, если не ошибаюсь где то писали об этом

picty
12.02.2018
10:24:17
Ребята, подскажите, как можно у data class сделать приватными setters у переменных?

Алексей
12.02.2018
10:26:42

Kuzma
12.02.2018
10:27:55
может кто-нибудь подсказать что за зверь такой Function Literals with Receiver, и для чего он нужен. прочитал доку на kotlinlang и пока что-то не сильно догоняю полезность сих функций

Igor
12.02.2018
10:41:06

Kuzma
12.02.2018
10:41:54
типа для декларативного объявления чего-либо?

DarkMentat
12.02.2018
10:41:54
А не подскажете, что за зверь этот Detekt? И чем он лучше обычного линта, что в студию встроен?

Даниил
12.02.2018
10:46:46
по-хорошему линтер не должен зависеть от IDE, я считаю

DarkMentat
12.02.2018
10:47:26
ну он вроде и не зависит, те же градлотаски
емнип
просто в чем суть, хочу хоть какой-то линт подрубить. и в растерянности: есть стандартный, если всякие сторонние, что есть что и как быть?

Даниил
12.02.2018
10:48:39
ну сторонние это только detekt мб

Google

DarkMentat
12.02.2018
10:48:49
и ктлинт вродь

Даниил
12.02.2018
10:48:53
ktlint точно сырой
detekt хз

Igor
12.02.2018
10:50:01
типа для декларативного объявления чего-либо?
Ну да, тот же Anko на нем построен и позволяет весь UI описывать в коде, еще новый kotlin-gradle-DSL или html DSL из ktor.
Если хочешь сделать красивый DSL, как в groovy (только стат. проверяемый), то это для тебя.

DarkMentat
12.02.2018
10:50:39
про линт: и не знаете, есть в стандартном варнинг про hardcoded strings? или какое-то уже готовое кем-то написанное правило?

Kuzma
12.02.2018
10:51:35
@angmarr
пока что эта штука взрывает мне мозг =)
спасибо ☕️☕️

DarkMentat
12.02.2018
10:51:39
линт джавовский ругает, котлиновский нет

picty
12.02.2018
11:00:22

Anton
12.02.2018
11:01:14
В чем сырость ктлинта?

Bogdan
12.02.2018
11:06:01

Mikhail
12.02.2018
11:06:55

picty
12.02.2018
11:07:23

Mikhail
12.02.2018
11:07:31

Anton
12.02.2018
11:07:54
Да
А детект?

Mikhail
12.02.2018
11:08:28
А детект?
а детект - это статический анализатор
всякие правила типа "ветка else никогда не будет задействована" и прочие вещи

Bogdan
12.02.2018
11:09:10

Sergey
12.02.2018
11:10:19
сделать только сеттер приватным не получится, можно только все проперти целиком, а в теле добавить публичный геттер
data class MyData(private var _title: String = "") {
val title get() = _title
}

Google

picty
12.02.2018
11:11:33

Bogdan
12.02.2018
11:18:40

Sergey
12.02.2018
11:20:06
в этом случае код разве не скмопилируется в ява класс с двумя полями? (если отдельно делать var)
если бы можно было убрать val из констркутора, то да. но в дата классе все параметры констркутра должны быть val/var

Bogdan
12.02.2018
11:21:38

Sergey
12.02.2018
11:21:53
в моем примере будет только одно поле
val title get() = _title скомпилируется в String getTitle() { return _title; }

Bogdan
12.02.2018
11:23:05
да таки
декомпилировал
но смотрится страннл

Sergey
12.02.2018
11:25:18
ну, похожий пример есть в документации https://kotlinlang.org/docs/reference/properties.html#backing-properties

Anton
12.02.2018
11:31:55
да детект мощнее намного чем ктллинт) спасиб

picty
12.02.2018
11:32:40

DarkMentat
12.02.2018
11:35:05

Anton
12.02.2018
11:35:20
обычный линт?
он разве поддерживает котлин? вроде только начинает