Size: a a a

Android Architecture

2020 February 11

RM

Ruslan Mingaliev in Android Architecture
Andrew Growing
на хабре есть почитать?
источник

EM

Eugene Matsyuk in Android Architecture
Andrew Growing
на хабре есть почитать?
источник

AG

Andrew Growing in Android Architecture
мерси
источник

ИЧ

Иван Чепёлкин in Android Architecture
Добрый день! Такой вопрос, если я хочу получить данные, сохранить их и выдать на экран, то где мне обрабатывать получение/сохранение/передачу данных? В юзкейзе или в репозитории? спасибо!
источник
2020 February 12

EG

Evgeny GooDi in Android Architecture
Иван Чепёлкин
Добрый день! Такой вопрос, если я хочу получить данные, сохранить их и выдать на экран, то где мне обрабатывать получение/сохранение/передачу данных? В юзкейзе или в репозитории? спасибо!
предположу что юскейс дает команды репозиторию, а репозиторий непосредственно реализует получение/сохранение/передачу
источник

E

Evgeniy in Android Architecture
Иван Чепёлкин
Добрый день! Такой вопрос, если я хочу получить данные, сохранить их и выдать на экран, то где мне обрабатывать получение/сохранение/передачу данных? В юзкейзе или в репозитории? спасибо!
Смотря какой паттерн используешь. Но в основном репозиторий который оперирует датасурсами
источник

МE

Михаил E1ement in Android Architecture
Привет! Ребята, подскажите, как проверять и нормально обрабатывать пустые эмиты (пустые выборки из ROOM)?  Уже какие только костыли не делал, но в проклатый map не заходит, цепочка рвётся. room умеет бросать ексепшены на пустые выборки, но это тоже неверно ИМХО
источник

AI

Arkadii Ivanov in Android Architecture
Михаил E1ement
Привет! Ребята, подскажите, как проверять и нормально обрабатывать пустые эмиты (пустые выборки из ROOM)?  Уже какие только костыли не делал, но в проклатый map не заходит, цепочка рвётся. room умеет бросать ексепшены на пустые выборки, но это тоже неверно ИМХО
Скорее всего getItemByUniqueId никогда не заканчивается
источник

AT

Alexander Taran in Android Architecture
Проблема скорее всего в
.toList()
источник

AS

Aleksandr Shvidchenko in Android Architecture
можешь всегда запрашивать список элементов, тогда будет возвращаться пустой список
источник

МE

Михаил E1ement in Android Architecture
Arkadii Ivanov
Скорее всего getItemByUniqueId никогда не заканчивается
Видимо так :(
Room Observable. When there is no user in the database and the query returns no rows, the Flowable will not emit, neither onNext, nor onError.
источник

МE

Михаил E1ement in Android Architecture
Aleksandr Shvidchenko
можешь всегда запрашивать список элементов, тогда будет возвращаться пустой список
чем это отличается от того, что я сейчас делаю?
источник

МE

Михаил E1ement in Android Architecture
Arkadii Ivanov
Скорее всего getItemByUniqueId никогда не заканчивается
Хотя нет, breakpoint в toList приходит. Начал дебажить rx и почему-то для map Function  (f) = null:
   public static <T> Single<T> onAssembly(@NonNull Single<T> source) {
       Function<? super Single, ? extends Single> f = onSingleAssembly;
       if (f != null) {
           return apply(f, source);
       }
       return source;
   }
источник

AS

Aleksandr Shvidchenko in Android Architecture
Михаил E1ement
чем это отличается от того, что я сейчас делаю?
по-моему switchIfEmpty не должен сработать, потому что dao сразу вернет ошибку, если не найдет искомого элемента в базе
источник

AS

Aleksandr Shvidchenko in Android Architecture
раве нет?
источник

IV

Ivan Vlasov in Android Architecture
Михаил E1ement
Привет! Ребята, подскажите, как проверять и нормально обрабатывать пустые эмиты (пустые выборки из ROOM)?  Уже какие только костыли не делал, но в проклатый map не заходит, цепочка рвётся. room умеет бросать ексепшены на пустые выборки, но это тоже неверно ИМХО
Поставь onErrorReturn вместо switch
источник

AI

Arkadii Ivanov in Android Architecture
Михаил E1ement
Хотя нет, breakpoint в toList приходит. Начал дебажить rx и почему-то для map Function  (f) = null:
   public static <T> Single<T> onAssembly(@NonNull Single<T> source) {
       Function<? super Single, ? extends Single> f = onSingleAssembly;
       if (f != null) {
           return apply(f, source);
       }
       return source;
   }
Brakepoint наверно срабатывает на сам вызов оператора toList. Но сам toList будет ждать, пока upstream завершится с onComplete или onError.
источник

mP

mr. PESIK in Android Architecture
Коллеги, я, кажется, что-то неправильное делаю с корутинами в presenter-е. Подскажите как правильно их использовать:
источник

mP

mr. PESIK in Android Architecture
Использую обычную схему repository - interactor -presenter
источник

mP

mr. PESIK in Android Architecture
CoroutineScope(Dispatchers.Main).launch {
           view?.showChartsLoadBars()
           withContext(Dispatchers.IO) {
               val reportsResult = reportsInteractor.getReports(generalTimeRange, step)
               withContext(Dispatchers.Main) {
                   if (reportsResult is AppResult.Success) {
                       val reports = reportsResult.value
                       updatePoints(currentReport, reports)
                   } else {
                       showError(reportsResult as AppResult.Error)
                   }
                   view?.hideChartsLoadBars()
               }
           }
       }

где reportsInteractor.getReports(generalTimeRange, step) - проиходит асинхронщина. Но че то долго
источник