Size: a a a

Android Architecture

2020 July 28

AC

Arsen CeH9 in Android Architecture
сабОн ио
обсервОн копутейшин
вычилсения()
обсервОн мейн
результат()
источник

RC

Roman Chumachenko in Android Architecture
Arsen CeH9
сабОн ио
обсервОн копутейшин
вычилсения()
обсервОн мейн
результат()
Ну то есть меняли по мере необходимости в слое ниже, понял
источник
2020 July 29

AI

Arkadii Ivanov in Android Architecture
Roman Chumachenko
Вопрос для тех, кто работает с RxJava: в каком слое вы определяете subscribeOn? Читал одну статейку, где было высказывание "поставщик данных лучше знает, на каком потоке стоит их добывать". Теперь интересно, назначает ли планировщик кто в репозиториях/юзкейсах
Я всегда делаю там где надо. Вот где прямо выполняется действие. Т.е. в самих источниках данных.
источник

RC

Roman Chumachenko in Android Architecture
Arkadii Ivanov
Я всегда делаю там где надо. Вот где прямо выполняется действие. Т.е. в самих источниках данных.
Спасибо
источник

AI

Arkadii Ivanov in Android Architecture
Roman Chumachenko
Спасибо
Ну просто потому, что subscribeOn не гарантирует что весь upstream будет работать на указанном потоке. Только сам источник данных может 100% всё расставить.
источник

RC

Roman Chumachenko in Android Architecture
Arkadii Ivanov
Ну просто потому, что subscribeOn не гарантирует что весь upstream будет работать на указанном потоке. Только сам источник данных может 100% всё расставить.
А можно немного подробнее? Не гарантирует, потому что где-то по цепочке выше может быть "выбор" потока?
источник

AV

Alex Vayts in Android Architecture
Roman Chumachenko
А можно немного подробнее? Не гарантирует, потому что где-то по цепочке выше может быть "выбор" потока?
Попробуйте сделать такую штуку:

single.fromCallable { … }
  .subscribeOn(thread1)
  .subscribeOn(thread2)
  .subscribeOn(thread3)
источник

AV

Alex Vayts in Android Architecture
на каком потоке будет выполнено тело?
источник

AI

Arkadii Ivanov in Android Architecture
Roman Chumachenko
А можно немного подробнее? Не гарантирует, потому что где-то по цепочке выше может быть "выбор" потока?
Не. По определению subscribeOn гарантирует только, что подписка будет выполнена на указанном потоке. Но вы же не знаете деталей реализации источника данных, ему этого может быть мало.
источник

RC

Roman Chumachenko in Android Architecture
Понял-принял, ещё раз спасибо, ребят)
источник

AI

Arkadii Ivanov in Android Architecture
Roman Chumachenko
Понял-принял, ещё раз спасибо, ребят)
Например
Flowable.generate{}.subscribeOn(io), этот generate коллбек может быть вызван не на io
источник

AI

Arkadii Ivanov in Android Architecture
Или Flowable.create{}.map{}.susbcribeOn(io), map может быть вызыван не на io
источник

AD

Aleksey D. in Android Architecture
Roman Chumachenko
А можно немного подробнее? Не гарантирует, потому что где-то по цепочке выше может быть "выбор" потока?
источник

VP

Vitaly Peryatin in Android Architecture
Изучаю MVI и возник такой вопрос:
Пользователь вводит тектовые данные в поля ввода, а потом прикрепляет картинку, нажимает сохранить и выходит с экрана

При смене конфигурации нужно сохранять состояние, а потом его восстанавливать
Когда сохраняем состояние? При вводе каждого нового символа и каждый раз обновляем состояние? Получается что поля дважды заполняются одними и теми же данными. При каждом новом действии пользователя: свайп, добавление новой картинки или ещё что-то нужно каждый раз сначала сохранять текущее состояние (значения тех самых полей в текстовом поле) а только потом выполнять какое-то действие
Вопросов очень много, скорее всего что-то не так делаю

Как в MVI реализовать такое поведение?
источник

AC

Arsen CeH9 in Android Architecture
(непроверенная теория) для сингл активити архитектуры ssot(единый источник) можно держать в мемори, а перед  потенциальными "точками невозврата" (onPause активити) - сейвить перситентно (диск/bundle)
источник

AC

Arsen CeH9 in Android Architecture
если я правильно понял, то вопрос только про смену конфигурации, а не смерть процесса, тогда все намного проще
источник

AC

Arsen CeH9 in Android Architecture
вообще в MVI не оперируют вещами типа "когда сейвить стейт", все изменения всегда реактивно отображаются на стейте
источник

AC

Arsen CeH9 in Android Architecture
двойной сеттинг значений решается диффингом
источник

AC

Arsen CeH9 in Android Architecture
иф (не изменилось)  skip
источник

I

Igor in Android Architecture
Vitaly Peryatin
Изучаю MVI и возник такой вопрос:
Пользователь вводит тектовые данные в поля ввода, а потом прикрепляет картинку, нажимает сохранить и выходит с экрана

При смене конфигурации нужно сохранять состояние, а потом его восстанавливать
Когда сохраняем состояние? При вводе каждого нового символа и каждый раз обновляем состояние? Получается что поля дважды заполняются одними и теми же данными. При каждом новом действии пользователя: свайп, добавление новой картинки или ещё что-то нужно каждый раз сначала сохранять текущее состояние (значения тех самых полей в текстовом поле) а только потом выполнять какое-то действие
Вопросов очень много, скорее всего что-то не так делаю

Как в MVI реализовать такое поведение?
> Получается что поля дважды заполняются одними и теми же данными

а когда происходит первый и второй раз?
источник