Третья и заключительная публикация о том, как делалось приложение "Маяки Болгарии". В этой части будут только технические подробности.
Самое большое программное отличие "Маяков Болгарии" - новая библиотека карт. В двух других приложениях я использовал mapbox_gl. Эта библиотека выдаёт отличные векторные карты и имеет кэширование "из коробки", но с ней чертовски сложно работать. Её сложно настраивать и она капризна в работе, хотя, казалось бы, на официальном сайте есть инструкции. У меня был прецедент, когда новая версия приложения, где карты не менялись вообще, вылетала при открытии карт. С приложением "Маяки Болгарии" всё работало на эмуляторе, но не работало на реальном смартфоне. Очень это всё надоело. Вдобавок, mapbox_gl давно утратил статус официального плагина и перемещён из репозитория Mapbox в репозиторий непосредственно автора. Кроме того, развитие его остановилась и сейчас он попросту доживает.
Одной из самых популярных картографических библиотек под Flutter сейчас является flutter_map, которая, по сути, является адаптацией популярной библиотеки Leaflet. Я уже пробовал её в "Маяках Эстонии", но отказался из-за одного досадного бага: если открыть карту, нажать там на маркер маяка (откроется страница этого маяка), потом вернуться назад на карту, нажать на другой маркер, опять вернуться и повторить этот цикл ещё пару раз, карта начинала очень сильно тормозить. Сейчас попробовал её снова и, как оказалось, этого бага больше нет. Второй приятностью перехода на новую библиотеку стал фильтр по типу объектов, как в списке маяков. Я очень много сил потратил, чтобы сделать это на mapbox_gl для "Маяков Прибалтики", но так и не сдюжил. С flutter_map я просто взял код фильтра из виджета списка и он заработал.
Есть в flutter_map и свои нюансы. "Из коробки" нет ни кэширования, ни векторных карт. И то и то доступно через отдельные плагины, но выбрать надо что-то одно. Я выбрал векторные карты, но не смог прикрутить к ним кастомное оформление и отказался. Зато теперь у карт есть кэширование.
Впрочем, самое первое, что я сделал для этого приложения - это логотип. Здесь приключилась некоторая цепочка удачных решений. Идея использовать в логотипе цвета болгарского флага была крайне очевидной. Это напрямую продиктовало выбор маяка - красно-белых маяков в Болгарии всего два (чисто красных нет вообще) и из них Шабла более узнаваем. Таким образом, концепция лого оформилась, но с оригинальными цветами флага оно выглядело не очень. Поиграл с оттенками - стало лучше, даже почти хорошо. Дальше был достаточно важный для меня в таких случаях момент - я взял паузу. Периодически поглядывал на результат, но старался специально ничего не придумывать. В какой-то момент решил попробовать добавить объёма. С логотипом "Маяков России" это не сработало, но тут добавило последний недостающий штрих. Сразу проверил, как получившееся лого будет выглядеть в виде маленькой иконки и понял, что нарисовал свой лучший логотип. Он прекрасен, не спорьте!
Ставьте все приложение (Google Play Market, Apple App Store), если ещё не сделали этого, и читайте историю маяков, на русском о маяках Болгарии есть только у меня в приложении и на сайте. Хороших всем праздников!
Не накомментили ещё. Би зэ фёст!