Пользовательские шрифты в устаревшем Paywall Builder

Пользовательские шрифты доступны только в AdaptyUI SDK v.2.1.0 и выше

Один из признаков хорошего дизайна — единообразие визуального стиля. Поэтому при создании no-code пейволов вы, скорее всего, захотите использовать пользовательский шрифт, который сочетается с остальным приложением. Здесь мы расскажем, как работает настройка шрифтов и как их использовать.

Этот раздел описывает устаревший Paywall Builder, совместимый с Adapty SDK v2.x и более ранними версиями. Информацию о новом Paywall Builder, совместимом с Adapty SDK v3.x и выше, см. в разделе Пользовательские шрифты в новом Paywall Builder.

Что можно настроить

Каждый текстовый элемент в Paywall Builder может иметь собственный шрифт и стиль. Настройте это в параметрах шрифта для каждого текстового элемента:

2b67da0-CleanShot_2024-02-07_at_13.27.092x.webp

Но в некоторых случаях удобнее изменить шрифт сразу для всего пейвола. Это можно сделать в разделе Layout в Paywall Builder путём настройки Paywall Font.

Шрифты, доступные по умолчанию

При создании пейвола в Builder Adapty по умолчанию использует системный шрифт — как правило, SF Pro на iOS и Roboto на Android (хотя это может варьироваться в зависимости от устройства). Также можно выбрать один из распространённых шрифтов (Arial, Times New Roman, Courier New, Georgia, Palatino и Verdana). Для каждого из них доступно несколько начертаний:

8812fab-CleanShot_2024-01-12_at_19.33.072x.webp

Обратите внимание: эти шрифты не поставляются в составе Adapty SDK и используются только для предпросмотра. Мы не можем гарантировать их корректную работу на всех устройствах.

Тем не менее в ходе тестирования мы наблюдали, что большинство устройств распознают эти шрифты без дополнительных усилий с вашей стороны. Список шрифтов, доступных по умолчанию на iOS, можно найти здесь: В официальной документации Apple

Как добавить пользовательский шрифт в дашборд Adapty

Если стандартных шрифтов недостаточно, нужно добавить пользовательский. Нажмите «Add custom font» в любом выпадающем списке шрифтов — откроется следующий экран:

89fb748-CleanShot_2024-02-07_at_13.21.552x.webp

Вам нужно:

  • Найти файл шрифта и загрузить его в эту форму
  • Указать имя для ссылки на шрифт в Paywall Builder
  • Указать корректные названия шрифта для обеих платформ
  • Добавить файл шрифта в бандл приложения, если вы ещё этого не сделали

Мы не будем отправлять загруженный файл шрифта на устройство — он нужен только для предпросмотра. SDK получает лишь строки с названием шрифта и использует их при отрисовке пейвола. Поэтому убедитесь, что файл шрифта включён в бандл и указаны правильные платформо-зависимые имена шрифта — иначе ничего не сработает. Не волнуйтесь, это займёт совсем немного времени.

Загружая файл шрифта в Adapty, вы подтверждаете, что имеете право использовать его в своём приложении

Получение корректного имени шрифта на iOS

Есть два способа получить правильный идентификатор шрифта: первый требует написания небольшого кода, второй использует приложение Font Book, доступное на macOS.

Если вы уже добавили пользовательский шрифт в бандл приложения — скорее всего, вы уже ссылаетесь на него по имени. Чтобы убедиться в правильности имени, вызовите UIFont.familyNames() для получения семейства шрифта, а затем передайте результат в UIFont.fontNames(forFamilyName: familyName). Сделать это можно в viewDidLoad, после чего удалите этот фрагмент кода:

override func viewDidLoad() {
    super.viewDidLoad()
  	...
  	for family in UIFont.familyNames.sorted() {
    		print("Family: \(family)")
	    	let names = UIFont.fontNames(forFamilyName: family)
    		for fontName in names {
        		print("- \(fontName)")
    		}
    }
}

fontName в этом фрагменте — именно то, что нам нужно. Оно может выглядеть примерно как «MyFont-Regular».

Второй способ значительно проще: установите шрифт на Mac, откройте приложение Font Book, найдите нужный шрифт и используйте его PostScript name:

bb8a902-CleanShot_2024-01-12_at_20.32.222x.webp

Получение корректного имени шрифта на Android

Если файл шрифта правильно добавлен в папку ресурсов, достаточно указать имя файла. Убедитесь, что оно написано строчными буквами и содержит только буквы, цифры и символы подчёркивания — иначе это может не сработать.

Проверить правильность имени файла можно, вызвав ResourcesCompat.getFont(context, R.font.my_font), где my_font — это имя вашего файла. В данном случае именно my_font нужно указать при создании пользовательского шрифта в Adapty.

Добавление файлов шрифтов в бандл приложения

Скорее всего, вы уже используете пользовательский шрифт в других частях приложения. Но если нет — убедитесь, что файл шрифта включён в проект и бандл приложения. Подробнее об этом читайте ниже.

На iOS: В официальной документации Apple

На Android: В официальной документации Android