всего создать обработку ошибок от сервера.
К примеру при 401 ошибке нужно перенаправить пользователя на экран авторизации. При ошибках 500 нужно показывать экран в приложении.
Как лучше всего реализовать подобное? Хочу услышать все варианты, нестандартные и странные в том числе :) Может есть примеры приложений?
Я видел два способа 1. Когда с юзкейкса или даже из репозитория возвращают какой нибудь Result который в себе может хранить не только данные но и/или какие то отловленные ошибки, состояние загрузки 2. Это когда юзкейс/репозиторий ошибки ловит и генерирует новые кастомные ошибки, которые ловят например во вью модели и передают фрагменту/комплзаблу который в зависимости от типа ошибки какое то действие воспроизводит или же в самой вью модели и обрабатывают Ну и комбинацию тоже видел)
Можно установить interceptor (например в Retrofit или Ktor) и слушать его в местах где выполняется навигация.
Если нужен переход на один и тот же экран с ошибкой, будет дублирование кода, лучше перехват в одном месте (вся логика в одной точке)
Никто не мешает сделать базовый класс для ВМ который будет это хэндлить
Конечно ) Можно и в базовой ВМ. Тут акцент именно на "слушать", без универсальных методов обращения к репозиториям, когда все вызовы через прокси
Ну мне пока не очень нравится что там получается некий ивентбас с этими событиями, но в целом да, можно. Лучший доклад по теме что я видел https://youtu.be/nyTzAB_sg2M
Это максимально стандартные способы, в них чересчур повторяется код, не нравится...
Это ответственность репозитория
Обсуждают сегодня