← ко всем постам
TripTrack · 2 мин ru

😂 Попробовал сделать «красивый» pixel-фильтр карты. Получилась полная лажа — и это тоже хороший…

День 16/30

😂 Попробовал сделать «красивый» 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**