
Quarx2k ?
30.11.2017
20:52:30
Вот оно что))

Quantum Harmonizer
30.11.2017
20:56:04

Quarx2k ?
30.11.2017
20:57:16
А в спринге же тоже нечто похожее на андроидовский Application

Google

Andrew
30.11.2017
20:58:20
А вот это уже интересно. Чем плох android.app.Application, если это единственный "настоящий" синглтон, что гарантируется рантаймом? И чем он хуже, положим, процедурного main()?

Igor
30.11.2017
20:59:16
Мужики -> @kotlin_mobile

Quantum Harmonizer
30.11.2017
20:59:30

Quarx2k ?
30.11.2017
21:00:09
Блин куда не ткнись - все зло:D

Sergii
30.11.2017
21:00:10
Да нормальное решение с Application, позволяет достигнуть практического результа.
Конечно, это не влажные мечты о воздушных замках чистых функций окруженных клин архитекча.
вопрос скорее философских взглядов

Quantum Harmonizer
30.11.2017
21:00:14

Sergii
30.11.2017
21:01:16
Это наверное очень плохо, да

Quantum Harmonizer
30.11.2017
21:01:48
Это наверное очень плохо, да
Отвратительно, потому что когда нужно, чтобы одна активити могла вести себя разными способами, появляется customizable object.

Andrew
30.11.2017
21:02:12

Sergii
30.11.2017
21:02:45
Как же так, если одна активити ведет себя разными способами не является ли это злым паттерном нарушающим принцип single resposibility??

Andrew
30.11.2017
21:03:32
Активити -- интерфейс общения с системой, там SRP не может быть, если система это не предусмотрела.

Quantum Harmonizer
30.11.2017
21:03:44

Google

Sergii
30.11.2017
21:04:16
А сейчас значит не может иметь зависимости или делегивать им решения не получается?
Вы уж определитесь где болит

Igor
30.11.2017
21:04:40

Andrew
30.11.2017
21:05:51
Если б не ограничения системы, привычное общение между активити и аппликейшном надо выворачивать наизнанку. Как это, к примеру, в JavaFX делается обычно.

Quantum Harmonizer
30.11.2017
21:06:40

Andrew
30.11.2017
21:06:40

Quantum Harmonizer
30.11.2017
21:07:13

Andrew
30.11.2017
21:07:17
Именно, и даггеровский инжект в поля -- костыль именно по вышеуказанной причине.

Quantum Harmonizer
30.11.2017
21:07:37

Andrew
30.11.2017
21:08:47
Равно как и тыща MV* фреймворков, которые пытаются спрятать костыли за своими интерфейсами.
Всё, я прекращаю оффтопить.

Quantum Harmonizer
30.11.2017
21:10:22

Igor
30.11.2017
21:11:01

Andrew
30.11.2017
21:13:21
Аргумент. Задевать адептов чистоты и функциональщины не планировалось, речь шла сугубо о ведре, MVU -- это другая опера ?
MVP и прочее, собственно, тоже в более общем плане -- хорошо. Просто API, предоставляемое ведром -- зло.
Хотя в ведре и единой точки входа в привычном понимании нет. Что накладывает свои ограничения.
Впрочем ладно.

Quantum Harmonizer
30.11.2017
21:16:27

Andrew
30.11.2017
21:18:01
При учёте, что Application всё равно создаётся при старте Activity / Service, если его не было, зависимости таки можно было и не выворачивать. But oh well, сначала об этом никто не подумал, а потом уже было поздно.

Quarx2k ?
30.11.2017
21:22:01
За то я теперь узнал, что я называл синглетоны которые не синглетоны)))

Andrew
30.11.2017
21:25:58
Да ладно, даггер их тоже синглтонами называет. Я же в шутку это писал :)

Phil
30.11.2017
21:26:29
Хм, а чем DI плох для создания сущностей с гарантией единственности на уровне App?
Spring или Guice - не важно.
Все лучше, что встроенные в Котлин синглтоны, хотя бы протестировать можно и подменить реализацию )

Quarx2k ?
30.11.2017
21:31:31
Да тут скорее на любителя и от религии зависит))

Google

Andrew
30.11.2017
21:33:00
Дык хорош, о том и речь. Я просто не сразу понял, что имеет ввиду тщ Quarx :)

Quantum Harmonizer
30.11.2017
21:40:50

Andrew
30.11.2017
21:44:47
Люди, которые не вникают, что за аннотациями стоит, и без них бы творили страшное, а для остальных DI container -- просто инструмент, которым можно пользоваться, можно нет. В этом контексте не вижу смысла спорить, хорош он или плох.
Тот же Spring Boot кроме DI уйму другой, гораздо более "страшной" магии делает.

Phil
30.11.2017
21:45:21
Ну, Boot меня до сих пор пугает )
А вот на простой DI на котлиновских делегатах я бы посмотрел )
Там даже аннотации не нужны )

Boris
30.11.2017
21:47:10
Как раз для грейдловой сборки такую себе замутил

Phil
30.11.2017
21:47:41
Не хочу писать велосипед )

Boris
30.11.2017
21:48:35
А там ничего кроме штатных котлиновских средств

Andrew
30.11.2017
21:48:53
В паблике или для чего-то закрытого?

Boris
30.11.2017
21:52:04
Для работы, но там все просто. Класс в котором поля, которые инстанцируются методами, в которые передаются поля которые уже были инициализированы и все лейзи, чтобы не создавать то, что не используется в данной конфигурации

Andrew
30.11.2017
21:54:19
а какую роль в этом Gradle играет?

Boris
30.11.2017
21:54:49
Приятно что сборка и инстанцирования в одном месте. На базе конфига

Andrew
30.11.2017
21:55:46
То есть сам граф описан в конфигах сборщика? Хм.
Скрипт генерит код точки входа?

Boris
30.11.2017
21:55:57

Andrew
30.11.2017
21:56:17
А, понял наконец. Занятно :)
Quantum, представляешь себе андроид-проект с пачкой build.gradle.kts, которые тянут в buildscript dependencies Dagger 2 и сами им пронизаны? ? Звучит как страшилка на ночь)

Boris
30.11.2017
21:59:07
Но для андроида сложно себе представить сбоку которой самой нужен di

Andrew
30.11.2017
21:59:53
Человек DI контейнеры не любит, я и предлагаю ему пофантазировать ?

Google

Boris
30.11.2017
22:00:34
Хотя не буду скрывать, у меня была мысль на счёт даггера ?

Andrew
30.11.2017
22:01:51
Да, но я же конкретно о даггере написал.

Farrukh
30.11.2017
22:33:31
Всем привет

Admin
ERROR: S client not available

Farrukh
30.11.2017
22:33:56
У кого-нибудь есть книгы по Котлину?

balolam
30.11.2017
22:46:31
Вы уже смотрели на оф доки?

Sasha
01.12.2017
00:36:54
))

Жабра
01.12.2017
05:14:48
:D

Vladimir
01.12.2017
05:15:57
Не было же в 1.2 ни List, ни ArrayList.
Только Vector, только хардкор

Viktor
01.12.2017
05:28:56

Evgeniy
01.12.2017
05:56:39
https://medium.com/contentsquare-engineering-blog/make-or-break-with-gradle-dac2e858868d

Vitalii
01.12.2017
07:04:57

Roman
01.12.2017
07:08:40
По части синглтонов в Application есть еще такая идейка: накидав N штук туда, мы получаем что-то вроде Service Locator-а, мы даже можем юзать его как типичный SL (если сделать правильный дизайн). Но тут уже намечается другой холиварчик: SL vs DI. Мой выбор пока в сторону DI, SL юзаю только в ограниченных ситуациях.

Hleb
01.12.2017
07:11:49
на маленьких проектах на object AppContext только и сижу
единственное что, в самом коде юзаю не AppContext.service, а использую как дефолт аргумент в конструкторах
чтобы легко тестать было
исключение только main()

Vladimir
01.12.2017
09:01:41

Google

Vitalii
01.12.2017
09:04:54

Vladimir
01.12.2017
09:05:42

Vitalii
01.12.2017
09:06:39

Aleksandr
01.12.2017
09:35:34
парни опять вопрос смеси старого проекта на джаве и новых файлов на котлине
джавовский класс с методом на вход хотят requestEach(final String... permissions)
внутр икотлина меня соотвесвенно Array<String>
как можно красиво это сделать?

Abbas
01.12.2017
09:37:25
*permissions

Aleksandr
01.12.2017
09:38:01
о крутяк
а как называется этот оператор *?
чтоб почитать

Abbas
01.12.2017
09:39:24
доку читать перед тем как работать с котлин))
https://kotlinlang.org/docs/reference/functions.html#variable-number-of-arguments-varargs