😂 Попробовал сделать «красивый» pixel-фильтр карты. Получилась полная лажа — и это тоже хороший…
😂 Попробовал сделать «красивый» pixel-фильтр карты. Получилась полная лажа — и это тоже хороший результат.
картинка 1
Сегодня тестил идею с пиксель-арт фильтром для карты на экране записи. На концепте выглядело интересно, в реале — тяжело, шумно и тормозно. В нашем случае не подходит.
👒 После этого сел добивать то, что реально влияет на качество приложения: offline-first и производительность.
Главная проблема фида была в том, что каждая карточка поездки поднимала живой Map() из MapKit. На 20+ карточках это десятки мегабайт тайлов и лаги при скролле.
Решение: заменил живые карты на MKMapSnapshotter — заранее делаем снимок, кешируем как изображение, поверх рисуем маршрут. Визуально почти так же, но UI теперь намного легче.
картинка 2
Дальше:
• добавил персистентный кеш геокодинга по geohash (TTL 90 дней), чтобы не дёргать сеть для одних и тех же мест
• подключил офлайн-поведение: если сети нет, поездка сохраняется без названия, потом автоматический retry
• сделал двухуровневый кеш миниатюр фото: память + диск
• закешировал статистику, чтобы не пересчитывать всё при каждом открытии
• заложил поля под будущую синхронизацию (lastModifiedAt, syncStatus)
Прогнал несколько раундов ревью (с ии-агентами) и добил неприятные штуки: threading в CoreData, orphaned thumbnails, race condition в callback, потенциальную уязвимость в файловом пути.
💪 **Итог:**приложение стало реально offline-first. Сеть нужна только для тайлов карты и первого геокодинга новой точки. Всё остальное едет из локального хранилища.
—
И кстати, прилетел классный комментарий на YouTube: в будущем добавить кастомные точки вроде «дом» и «гараж». Идея огонь, забрал в бэклог.
—
А мы продолжаем! Уже очень хочу в релизе увидеть приложение без багов и пользоваться им на постоянной основе 🌅
— OneZee TripTrack — день 16**/30**
