TGViewer
Андроидѣ | Михаил Белый Андроидѣ | Михаил Белый @foundout · 328 subscribers
Post #300 411
Какой бывает работа с бэкендом

Бывает, что API-методы хорошо описаны в сваггере. Состояние авторизации, список параметров, выбор content-type и схема. Для каждого метода прописаны типы ошибок, которые он генерирует. Контракт определяется бэкендом, тебя не спрашивают. Ты формашлеп.

Бывает, что добавление новых и изменение старых методов на бэкенде согласовывают с тобой. Тебя спрашивают про совместимость и миграции, формат данных и ограничения, ошибки и идемпотентность, название полей и их регистр.

Бывает, что ты полностью отвечаешь за контракт. Какие поля нужны на клиенте, какие сортировки, фильтры и лимиты применять. Бэкендер идет делать. Ты архитектор.

Бывает, что сервер использует сквозную модель – шлёт только нужные NotNull-поля. Клиент кладет их сразу в Room, без каких-либо мапперов. Меньше ошибок трансформаций, проще тесты, быстрее доставка фич. Встречается такая схема очень редко.

Бывают стейтфулл-клиенты. Все получаемые из сети данные хранятся в Room. База данных – единый источник истины. Входящие данные мерджатся через upsert с транзакциями. Данные читаются реактивно, UI подписан на Flow и мгновенно получает апдейты. База мигрируется, заранее проектируется схема с ForeignKey.

Бывают стейтлесс-клиенты. UI живет по принципу Loading-Content-Error. Каждый запрос несет весь контекст. Вместо локальной базы – in-memory-кэш на время жизни экрана. Пагинация детерминирована. Ошибки маппятся на понятные состояния. Такой клиент легко масштабировать и тестировать.

Бывают приложения на сокетах. Клиент держит постоянное TLS-соединение, авторизуется и поддерживает канал. Сообщения идут по протоколу JSON. При обрыве – реконнект. Надо учитывать жизненный цикл.

Бывает, что сваггера и документации нет вообще. Бэкендер пропал. Айосник потерялся. Аналитик не нанимался. Делаешь новые методы, разбирая код iOS-клиента и копируя его вызовы. Проверяешь запросы через Postman. Выявляешь формат ошибок.

Бывает, твое приложение начинают использовать в дарксторах (подвал -1 этаж). Интернет там ловит только у входа. Было – тонкий клиент и 20 сетевых запросов. Стало – толстый клиент и 2 сетевых запроса. Остальные 18 превратились в локальную синхронизацию данных в Room.

Бывает наступает эпоха херового мобильного интернета. Все глушат, шатают и отключают. Позволяем запросам на изменение стейта (без получения данных) выполняться локально. Они хранятся в руме как упорядоченная цепочка вызовов. Приложение отслеживает состояние сети и через воркменеджер выполяет их пачкой по порядку. И это даже работает.

Нужно быть готовым ко всему.
More from @foundout
  1. Sep 28, 2026Post #463
  2. Sep 9, 2026Истории про айфон Первый айфончик у меня появился в 24 года. К этим годам одни успевают пе…
  3. Sep 2, 2026Как правильно жить в Республике Бангладеш Жить в прекрасной стране Бангладеш – что может б…
  4. Sep 1, 2026Новые открытия Помню, как зимой, лежа на диване, ругался на концепт зимней арки. Как на оч…
  5. Aug 13, 2026Турецкий скам Я третий раз в Турции. За 4 года моего отсутствия покупательная способность…
  6. Aug 9, 2026Что делать в Черногории Шароебиться по горам. Всё, чем известна Черногория – сюда 20 лет н…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →