М
Мобильная разработка #1
@developer_mobila3.9K подп.
630просмотров
16.0%от подписчиков
4 марта 2026 г.
question📷 ФотоScore: 693
📶 Что видит пользователь, когда заходит в лифт? (Или почему ваш лоадер всех бесит) Представьте: пользователь едет в метро. Интернет то появляется, то пропадает. Он открывает ваше приложение, чтобы почитать ленту. ❌ Подход Джуна (Прямая труба): Запрос в сеть -> Показ лоадера на весь экран -> Ошибка тайм-аута -> Пустой белый экран. А если пользователь случайно повернет телефон (сменит ориентацию) - лоадер появится снова, потому что Activity пересоздалась и запрос полетел заново. Это боль. ✅ Подход Мидла (Single Source of Truth - SSOT): Открыл приложение -> Мгновенно увидел вчерашние данные из кэша -> В фоне пошел незаметный запрос в сеть -> Лента плавно обновилась свежими данными. Как это работает (Паттерн SSOT): Запомните золотое правило: UI никогда не должен получать данные напрямую из сети! Единственным источником «правды» для экрана должна быть ваша локальная База Данных (БД). 1. Ваш ViewModel / Presenter просто подписывается на изменения в БД. 2. Когда нужно обновить данные, Repository идет в сеть. 3. Скачанные из сети данные сохраняются в Базу Данных. 4. База данных отправляет сигнал в UI: "Эй, у меня новые данные, перерисуйся!". 🛠 Чем пользуются профи: 🤖 Android: Связка Room + Flow (или LiveData). Вы пишете в DAO: fun getNews(): Flow<List<News>>. UI начинает слушать этот Flow. Как только метод из сети сделает insert(newItems) в базу, Room сам протолкнет новые данные в Flow, и UI обновится. Магия! 🍏 iOS: Современный SwiftData (или старая добрая CoreData) + макрос @Query (в SwiftUI) или Combine. Принцип тот же: UI биндится к хранилищу. Вы просто обновляете контекст базы, а списки на экране разъезжаются и анимируются сами. 💡 Совет: Такой подход не только спасает от отсутствия интернета, но и решает проблему пагинации, поиска и шаринга данных между разными экранами (ведь все они смотрят в одну базу). #architecture #offlinefirst #ssot #android #ios #middle #caching 👉 @developer_mobila
630
просмотров
1929
символов
Да
эмодзи
Да
медиа

Другие посты @developer_mobila

Все посты канала →
📶 Что видит пользователь, когда заходит в лифт? (Или почему — @developer_mobila | PostSniper