
Дмитрий
10.10.2017
08:43:35
Привет, а вы используете
https://antonioleiva.com/kotlin-android-extensions/

Quantum Harmonizer
10.10.2017
08:44:04

Виталий
10.10.2017
08:45:00
А он нормально работает? Багов нет?

Quantum Harmonizer
10.10.2017
08:45:11

Google

Виталий
10.10.2017
08:46:06
А плюсы есть кроме экономии одной строки findViewById?

Quantum Harmonizer
10.10.2017
08:46:29

Виталий
10.10.2017
08:47:21
ну c compileSdkVersion 26 тоже вроде такой проблемы нет

Quantum Harmonizer
10.10.2017
08:47:58

JRoot3D
10.10.2017
09:19:17
а так можно? о_О

Konstantine
10.10.2017
09:21:14

Виталий
10.10.2017
09:22:29
ну можно id кэмел кейсом писать

Konstantine
10.10.2017
09:23:30
Тогда не соответствие код стайлам в хмл)

DarkMentat
10.10.2017
09:28:55
как раз соответствие)
кодастайла для хмл толком и нету, у гугла половина так, половина так

JRoot3D
10.10.2017
09:30:49

Konstantine
10.10.2017
09:31:30

Google

JRoot3D
10.10.2017
09:32:10

DarkMentat
10.10.2017
09:32:13

JRoot3D
10.10.2017
09:32:23
я с андроидом недавно...

Konstantine
10.10.2017
09:32:48

Quantum Harmonizer
10.10.2017
09:43:09

Konstantine
10.10.2017
09:44:32

Igor
10.10.2017
13:20:39
Народ на каком пуле вы гоняете IO операции в корутинах?
Нужно обернуть простое-синхронное API без колбеков.
На CommonPool вроде же нельзя, тк он для heavy-cpu операций.

Михаил
10.10.2017
13:22:29
на комон :D

Igor
10.10.2017
13:24:10
на комон :D
Сложный мемас.
Как вариант попробовал это (тут android, но не суть)
AsyncTask.THREAD_POOL_EXECUTOR.asCoroutineDispatcher()
Типа я должен завести свой CoroutineContext для IO?

Vic
10.10.2017
13:37:49

Igor
10.10.2017
13:55:18
Что никто не корутины не юзат для IO или прям на CP гоняют?

? animufag ?
10.10.2017
13:55:47

Igor
10.10.2017
13:56:41

? animufag ?
10.10.2017
13:57:50
а я подумал синхронное апи подразумевает, что непредусмотрено для многопоточной среды

Igor
10.10.2017
13:58:46
Нет, для простоты можно представить что надо обернуть что-то типа
URL(“https://…”).readText()

Руслан
10.10.2017
14:02:21
тут к сожалению никак лучше не сделать

balolam
10.10.2017
14:11:42

Руслан
10.10.2017
14:12:27
И потом какие-нибудь параллельные стримы будут тормозить

Quantum Harmonizer
10.10.2017
14:12:35

Google

Quantum Harmonizer
10.10.2017
14:12:50
вообще, глобально доступные пулы — странноватая идея

balolam
10.10.2017
14:12:55

Sergey
10.10.2017
14:13:03

Руслан
10.10.2017
14:13:08

balolam
10.10.2017
14:13:31

Quantum Harmonizer
10.10.2017
14:13:53

balolam
10.10.2017
14:13:55
А ничего что сетевая операция блокирующая?

Quantum Harmonizer
10.10.2017
14:14:16

Руслан
10.10.2017
14:14:38
А что, поток как-то при этом используется?

Igor
10.10.2017
14:14:49

balolam
10.10.2017
14:15:25
Не вижу проблем. Покажите мне мобильное приложение где будут проблемы?
У вас там фоновая работа в каждую микросекунду времени?

Руслан
10.10.2017
14:15:53
https://ruslan.ibragimov.by/2014/11/26/pervye-grabli-java-8/#executing-streams-in-parallel

balolam
10.10.2017
14:16:08

? animufag ?
10.10.2017
14:16:24

Igor
10.10.2017
14:16:26

Google

balolam
10.10.2017
14:16:28
Я отвечаю с контекста вопроса, а не пытаюсь разводить Балаган

Руслан
10.10.2017
14:16:38

balolam
10.10.2017
14:17:18

Руслан
10.10.2017
14:17:35
Тем более на мобилках стоит забивать коммон пулы, ведь там самый быстрый интернет как известно

balolam
10.10.2017
14:17:36

Quantum Harmonizer
10.10.2017
14:18:21

balolam
10.10.2017
14:18:29
Эх, тогда как раньше народ с асинк тасками жил, там вообще по дефолту в один поток?

? animufag ?
10.10.2017
14:18:46

Quantum Harmonizer
10.10.2017
14:19:19

balolam
10.10.2017
14:19:42

Руслан
10.10.2017
14:19:56

Quantum Harmonizer
10.10.2017
14:20:30

Igor
10.10.2017
14:21:02

Boris
10.10.2017
14:24:37
У ио своя специфика, для него лучше иметь неблокирующий ивентлуп

Руслан
10.10.2017
14:25:00

Boris
10.10.2017
14:25:15
А хендлить уже где хочешь
Хоть в кп

Igor
10.10.2017
14:25:55

Руслан
10.10.2017
14:28:21
Можно подробнее?
Вот так пойдет? :) https://en.wikipedia.org/wiki/Reactor_pattern

Google

Руслан
10.10.2017
14:30:48
Можно подробнее?
Если ты думаешь что сейчас решится твоя проблема с синхронным апи - то нет, не решится) Я думаю ты и так знаешь что такое реактор, @fogone просто сказал как должно быть, а не как жить с тем что есть

Quantum Harmonizer
10.10.2017
14:31:35

Руслан
10.10.2017
14:36:17
Что понимать под неблокирующим в данном контексте?
Ну у тебя есть io тред(ы), в нем(их) например ты получаешь запросы/пишешь ответы и можешь делать только маленькие неблокирующие задачи. Если нужны блокирующие задачи (jdbc например) то эти задачи выносятся на отдельный пул воркеров (который достаточно большой, чтобы держать нагрузку, около 10 тредов на ядро, эмпирически).

Quantum Harmonizer
10.10.2017
14:36:58

Руслан
10.10.2017
14:37:09

Boris
10.10.2017
14:38:27
Ну да, лучше конечно готовую реализацию брать

Руслан
10.10.2017
14:39:47
Есть еще крутая штука типо cpu pinning(или еще называют афинити), это когда ты io тред прямо к конкретному ядру привязываешь, и получаешь бенифиты от того что у тебя кеши лучше работают, контекст свич на этом потоке никогда не происходит и т.д.

Igor
10.10.2017
14:40:12

Руслан
10.10.2017
14:40:14
Это из той же серии что выключать гипетрединг, чтобы получить предсказуемую летенси

Quantum Harmonizer
10.10.2017
14:40:28

Руслан
10.10.2017
14:40:46
вспомнилось XNIO
ну вот я тоже хотел пальцем туда показать, xnio в undertow юзается

Boris
10.10.2017
14:40:59
Корутины вообще перпендикулярны этому всему

Igor
10.10.2017
14:42:20

Руслан
10.10.2017
14:42:27
"Способ делать неявные колбеки", как тебе формулировка @fogone ?

Vic
10.10.2017
14:42:35