Size: a a a

Android Architecture

2017 January 31

AZ

Alexandr Zherebtsov in Android Architecture
Ivan
или выступление
источник

I

Ivan in Android Architecture
спасибо
источник

AZ

Alexandr Zherebtsov in Android Architecture
доклад суперский, кстати, очень полезный
источник

ES

Eugene Stepanov in Android Architecture
Aleksei Korshun
А выше вопрос был про 401 ошибку, кто как у себя обрабатывает? Аутентификатором пользуется кто-нибудь для okhttp?
Я использую, и как у автора вопроса выше такая же задача.
У меня такая логика, как срабатывает аутентификатор (ну он вызывается по 401 http error ) лезу на бак - пытаюсь рефрешить токены, если фейлится эта затея, то чищу всю пользовательскую инфу и на окно авторизации интентом перехожу
источник

MT

Max Tuev in Android Architecture
Denis Chuvasov
Товарищи, нужен код, ну или разжевать для дураков. Хочу VIPER.
Есть стандартный сценарий, при 401 ошибке нужно выкинуть на экран авторизации. Приложение построенно на много активити-много фрагментов.

Как это все должно выглядеть? Интерактор отвечает за бизнес логику и поидее должен быть какой-то базовый интерактор, который  чекает все ошибки от бэка и как придет 401 ошибка, то сказать призентеру, что все хана сворачивай тапки, а презентер уже передает роутеру команду, что нужно показать экран авторизации.
Все верно? Есть у кого-нибудь тестовый проект с данной имплементацией? Ну или на пальцах объясните, пожалуйста.
У нас к примеру на одном проекте сделали максимально просто. Мы отлавливали ошибку 401 в CallAdapterFactory ретрофита, пытались восстановить сессию, если получалось, повторяли запрос, причем для подписчика все выглядело так что запрос проходил без ошибки. Если восстановить сессию не получалось то дергали метод GlobalNavigator'a чтобы он открыл экран авторизации. Это конечно серьезное нарушение архитектуры, но как уже обсуждалось, архитектура должна помогать, а не вставлять палки в колеса, так что подобное, в порядке исключения, приемлемо. Естественно что такие вещи лучше заносить в ТехДокументацию проекта.
источник

MT

Max Tuev in Android Architecture
Кстати тут кто нибудь ведет тех документацию проекта, и из чего она у вас состоит?
источник

AK

Aleksei Korshun in Android Architecture
Max Tuev
У нас к примеру на одном проекте сделали максимально просто. Мы отлавливали ошибку 401 в CallAdapterFactory ретрофита, пытались восстановить сессию, если получалось, повторяли запрос, причем для подписчика все выглядело так что запрос проходил без ошибки. Если восстановить сессию не получалось то дергали метод GlobalNavigator'a чтобы он открыл экран авторизации. Это конечно серьезное нарушение архитектуры, но как уже обсуждалось, архитектура должна помогать, а не вставлять палки в колеса, так что подобное, в порядке исключения, приемлемо. Естественно что такие вещи лучше заносить в ТехДокументацию проекта.
Вот я пока так же делаю, через аутинтификатор, и момент навигации в нем, мягко говоря, выглядит не верно
источник

MT

Max Tuev in Android Architecture
А аутентификатор тоже позволяет повторить изначальный запрос?
источник

AK

Aleksei Korshun in Android Architecture
Да
источник

MT

Max Tuev in Android Architecture
Спасибо, похоже я для этого свой велосипед придумал)
источник
2017 February 01

AI

Alexey Illarionov in Android Architecture
А как быть при 401 ошибке/expired-token'e в случае, если сворачивать тапки особо не нужно, а нужно показать экран авторизации и если юзер вошел, то продолжить выполнение всех запросов?
источник

AK

Aleksei Korshun in Android Architecture
Я пока делал так, в аутентификаторе стартовал логин скрин, если юзер авторизоваться успешно, то ему опять показывался предыдущий экран, но запросы повторялись когда он пытался покинуть экран, если он закрывает логин, то экран либо отрисовывал новую модель для не авторизованных юзеров, либо и вовсе закрывался, если он не может быть показан не авторизованным
источник

P

Pavel in Android Architecture
Есть пара вопросов по архитектуре. Влился в чатик после последнего dev подкаста и возможно вопросы обсуждались и я их пропустил.
1. https://github.com/grandstaish/hello-mvp-dagger-2 может кто-то использовал похожую архитектуру MVP, domain, interactor etc. Она в примере больше заточена под rx и хранение Subject, которое происходит в Interactor, а Presenter (пере-)подписывается на него. Я таким образом решил проблему переворота экрана и переподски на длительные сетевые операции, но ссылку на Subject пока храню в Presenter.
2. В недалеком будущем предстоит рефакторинг большого проекта с довольно сложной навигацией (стек в стеке, перепрыгивания в стеках через несколько шагов как вперед так и назад). Кто-нибудь использовал conductor (https://github.com/bluelinelabs/Conductor) или вместе в связке с Mosby (https://github.com/sockeqwe/mosby)?
источник

AP

Alexander Popsuenko in Android Architecture
Pavel
Есть пара вопросов по архитектуре. Влился в чатик после последнего dev подкаста и возможно вопросы обсуждались и я их пропустил.
1. https://github.com/grandstaish/hello-mvp-dagger-2 может кто-то использовал похожую архитектуру MVP, domain, interactor etc. Она в примере больше заточена под rx и хранение Subject, которое происходит в Interactor, а Presenter (пере-)подписывается на него. Я таким образом решил проблему переворота экрана и переподски на длительные сетевые операции, но ссылку на Subject пока храню в Presenter.
2. В недалеком будущем предстоит рефакторинг большого проекта с довольно сложной навигацией (стек в стеке, перепрыгивания в стеках через несколько шагов как вперед так и назад). Кто-нибудь использовал conductor (https://github.com/bluelinelabs/Conductor) или вместе в связке с Mosby (https://github.com/sockeqwe/mosby)?
Презентер должен переживать переворот.
Subject лучше не использовать (особенно в таких простых ситуациях), посмотрите доклад Матвея Малькова об Rx.
источник

DB

Dmitry Berdnikov in Android Architecture
Alexander Popsuenko
Презентер должен переживать переворот.
Subject лучше не использовать (особенно в таких простых ситуациях), посмотрите доклад Матвея Малькова об Rx.
В терминах dagger2, мы тогда компонент сохраняем, который провайдит презентер и тд? кстати кто нибудь в компоненте создает например адаптер для списка?
источник

AP

Alexander Popsuenko in Android Architecture
Dmitry Berdnikov
В терминах dagger2, мы тогда компонент сохраняем, который провайдит презентер и тд? кстати кто нибудь в компоненте создает например адаптер для списка?
Я презентер создаю и инъецирую через Moxy и не парюсь.
Dagger2 использую только для построения слоя модели.
источник

DC

Denis Chuvasov in Android Architecture
Aleksei Korshun
Я пока делал так, в аутентификаторе стартовал логин скрин, если юзер авторизоваться успешно, то ему опять показывался предыдущий экран, но запросы повторялись когда он пытался покинуть экран, если он закрывает логин, то экран либо отрисовывал новую модель для не авторизованных юзеров, либо и вовсе закрывался, если он не может быть показан не авторизованным
а как вы стартовали логин скрин? У вас в аутентификаторе был калбэк для вызова логина? и как вы показывали ему предыдущий экран? Как восстанавливали стек?
источник

AK

Amir Konovalov in Android Architecture
хороший момент кстати
источник

AK

Amir Konovalov in Android Architecture
как вызвать аутентификацию в неожиданны момент отваливания токена
источник

AK

Amir Konovalov in Android Architecture
из любой точки
источник