
Di7aK
28.08.2018
08:52:42
Не я
Или я был бухой)

Alexey
28.08.2018
08:53:52

Ivan
28.08.2018
08:54:05

Google

Alexey
28.08.2018
08:54:18
Соу вот?
ktor нельзя на андроиде?

Nail
28.08.2018
08:55:27
Нет, инверсия контроля (IOC) общее название di контейнеров например spring, dagger, koin

Andrew
28.08.2018
08:55:49

Anton
28.08.2018
08:55:53
кроме di там еще есть куча всего

Di7aK
28.08.2018
08:55:55
Вы такие умные?

Anton
28.08.2018
08:56:13
я чет тоже не вижу где ретрофит нарушает иос

Ivan
28.08.2018
08:56:50

Andrew
28.08.2018
08:57:25

Костя
28.08.2018
08:57:54

Nail
28.08.2018
08:57:58
Ещё dependency lookup... Я не говорю что нарушает, просто мне странно слышать про IOC не в рамках контейнера)

Костя
28.08.2018
08:58:17
я думаю имелся ввиду именно ktor-client который работает без аннотаций и т.д.

Andrew
28.08.2018
08:59:34

Google

Artur
28.08.2018
08:59:52
так ведь ktor не исключает ни DI ни IoC - бери и прикручивай. хоть от Java, хоть родные Котлиновские

Alexey
28.08.2018
09:00:01
Нуну

Andrew
28.08.2018
09:00:20
Эти ваши setOnClickListener — это тоже об IoC, если что.
Просто местами это оправдано, местами нет :)

Ivan
28.08.2018
09:01:35
Ретрофит как раз нужен, чтобы не писать кучу кода руками на "нормальных и православных" ktor-client, OkHttp и так далее

Nail
28.08.2018
09:02:00
Надо бы почитать про общий IOC, окей)
В ktor-client кстати вызовы на корутинах, что порадовало немного, но там много руками писать пришлось

Костя
28.08.2018
09:04:19
а ktor-client надо глянуть будет на досуге )

Alexey
28.08.2018
09:05:19

Maxim
28.08.2018
09:05:47

Alexey
28.08.2018
09:05:54
Каждый приходится писать такую туеву тучу кода, что 10 строк просто меркнет в сравнении

Andrew
28.08.2018
09:06:21
Я в целом не до конца понимаю, где вы находите необходимость писать руками много кода, при учёте что самое "страшное" — десериализация объектов из стрима респонса — покрывается
install(ContentNegotiation) {
gson { ... }
}

Alexey
28.08.2018
09:06:21
для http вызова

Andrew
28.08.2018
09:07:05
Да и всякие авторизации конфигурируются для клиента в одном месте, а не на каждый вызов, равно как и для ретрофита.

Igor
28.08.2018
09:07:33

Nail
28.08.2018
09:08:36

Andrew
28.08.2018
09:10:42
Пардоньте, запамятовал,
install(JsonFeature) {
serializer = GsonSerializer { ... }
}

Google

Костя
28.08.2018
09:13:05
обидно (

Alexey
28.08.2018
09:13:36
потому что нельзя просто так взять и вытравить "деревню" из человека
очевидно же

Andrew
28.08.2018
09:14:11

Alexey
28.08.2018
09:14:30
Ну это немного о разном

Igor
28.08.2018
09:14:53

Quantum Harmonizer
28.08.2018
09:15:26

Alexey
28.08.2018
09:15:38
На хаскеле сейчас у людей хорошо получается писать всякие компиляторы, интерпритаторы и тд

Костя
28.08.2018
09:15:44

Alexey
28.08.2018
09:15:55
есть конечно даже блок чейн на хаскеле, но это скорее исключение

Nail
28.08.2018
09:15:55

Костя
28.08.2018
09:16:03
Rx Dagger Kotlin, архитектура, Retrofit
стандартный сейчас стэк технологий

Quantum Harmonizer
28.08.2018
09:16:13

Костя
28.08.2018
09:16:14
везде-везде

Quantum Harmonizer
28.08.2018
09:16:28

Костя
28.08.2018
09:16:38

Quantum Harmonizer
28.08.2018
09:16:52

Костя
28.08.2018
09:16:58
я назвал стэк, 90% проектов именно на этом сейчас

Google

Костя
28.08.2018
09:17:02
мне самому это не нравится
но приходится жить с даггером тем же
или Rx
хотя можно koin и корутины
на своих проектаях я их и введу думаю, но когда не мой, увы
консерватизм может
не знаю что всему виной )

Quantum Harmonizer
28.08.2018
09:18:03
хайп и инерция

Alexey
28.08.2018
09:18:05

Quantum Harmonizer
28.08.2018
09:18:28
RxJava вообще не про это :)

Admin
ERROR: S client not available

Костя
28.08.2018
09:18:57
RxJava идет в купе с ретрофитом для запросов
ну и чтобы комбинировать вместе разные запросы паралельно или последовательно например

Quantum Harmonizer
28.08.2018
09:19:27
да, бывает такое отклонение

Костя
28.08.2018
09:19:28
также есть RxView всякие для UI
сам не юзал, но видел в одном проекте
у себя в пет я корутины засобачил и koin, а тут выходит можно ktor взять ещё вместо ретрофита, чтобы вообще модным стать ))

Alexey
28.08.2018
09:20:19

Костя
28.08.2018
09:20:23
вот займусь и таким на досуге

Andrew
28.08.2018
09:20:36
Да у меня что-то не завелось, сам писал... Попробую ещё потом
Главное — проверить, что все зависимости в Gradle подтянуты:
io.ktor:ktor-client-core:...
io.ktor:ktor-client-cio:...
io.ktor:ktor-client-json:...
После при инициализации клиенты устанавливаешь фичу с сериализатором и шаблонный .get должен начать работать.
Единственное, ему будет не очень хорошо, если сервер не отдаёт Content-Type правильный, но это по идее можно вылечить перехватом и исправлением хедеров в респонсе (ну или пи***лями бекендщикам, что даже лучше).

Google

Костя
28.08.2018
09:20:51
я не видел проектов без этого уже прилично времени ))
не знаю почему вас это удивляет )) как будто я один на аутсорце работаю том же, или у нас проекты совершенно другие ))

Alexey
28.08.2018
09:21:30
Брать стримы чтобы процессить один запрос ?
Чем их любая другая монада не устроила, для композиций

Костя
28.08.2018
09:21:49
почему один ?
в приложение один запрос ?
неочень понял

Alexey
28.08.2018
09:22:08
Потому что это Observable всегда от одного элемента

Костя
28.08.2018
09:22:23
Single ?
заюзать

Maxim
28.08.2018
09:22:33

Alexey
28.08.2018
09:22:54
Как будто это сильно что то меняет

Костя
28.08.2018
09:22:59
меня не устраивает только что они тяжелые и громоздкие как и даггер

Nameless
28.08.2018
09:23:07

Костя
28.08.2018
09:23:09
и корутины проще, меньше, легче
как и koin

Andrew
28.08.2018
09:23:21
Ну справедливости ради, каждый входящий респонс может гоняться через кеш, перемалываться через flatMap и параллелиться дальше, но насколько часто это встречается на практике у людей — я без руля.

Костя
28.08.2018
09:23:26
в по функциям ну Rx делает свои функции на ура
не поспоришь

Quantum Harmonizer
28.08.2018
09:24:11

Alexey
28.08.2018
09:24:51