Перейти к содержимому
Источник Глава два. Градиенты

Глава три. Шрифты

Исторически у нас в проекте был везде зашит Roboto. Теперь вместо него появились две новых гарнитуры: одна для заголовков, другая – для всего остального. Казалось бы, изменилось не очень много. Просто подкладываешь файл гарнитуры в ресурсы и меняешь начертания в Typography из Compose-темы. Ну я так думал, по крайней мере. 😰

Скачал файлы вариативных шрифтов с Google Fonts, подложил, указал в теме. И вижу, что всё слиплось нафиг, леттерспейсинг меньше нужного, интерлиньяж не тот, жирность букв – тоже мимо. Начал дебажить, сделал Compose-превьюшки на все веса от 100 до 1000 поверх макета из фигмы и понял, что вариативный шрифт просто не работает. Ну то есть как не работает – работает, но только как Regular (до 500) и как Bold (выше 500). Попутно ещё все остальные параметры у начертания применяются неправильно.

После этого я в документации нашёл предупреждение, что "Variable fonts are only supported on Android O and above", мои опасения начали подтверждаться, но, к слову, у меня и на последнем Android 15 на пикселе нифига не работает. 🎲

Дальше разбираться не стал. Решил как в старые добрые просто положить уже готовые начертания в виде отдельных файлов. Заработало нормально, чудо. В общем, стандартный вывод: чем тупее – тем лучше. Может с этими конкретными TTF-файлами что-то не то, но если бы я деньги ставил, то скорей бы поставил на приколы андроида и инструментов.

Это всё, как вы поняли, про Compose. А кто XML-экраны фиксить то будет? Идём заводим XML ресурсы с font-family, указываем их в XML теме. Причём, естественно, приходит осознание, что теперь надо пройтись по всем лейаутам и стилям, убрать хардкод ссылки на Roboto хотя бы в пользу sans-serif, sans-serif-medium итд. Никто ж не предполагал, что такое может быть, когда верстали.

По итогам, всё работает и в XML тоже. Но с одной гарнитурой. С той, которая для всех основных шрифтов была задумана. На вторую (для заголовков) с дизайнерского согласования мы забили в угоду дедлайнам. Потому что хуже уже не будет, XML-экраны и так выглядят сильно хуже композных, т.к. там фактически нет дизайн-системы. И мне страшно даже представить тот объём работы, чтобы во всех легаси лэйаутах у всех заголовков правильные шрифты задать. Эти XML годами никто не трогал и все надеются, что выкинутся или перепишутся. А они живее всех живых.

Простейшая, казалось бы, задача...