Текст и типографика в мобильной разработке: что это, какие инструменты и как работает

Автор: IT Sectr Опубликовано: 2026-08-04 Время чтения: 10 мин

Работа с текстом — ключевая задача при создании интерфейсов современных мобильных приложений. От выбора шрифта до настройки межсимвольных интервалов — каждый аспект влияет на восприятие продукта. По данным Apple NSAttributedString Documentation, правильное форматирование текста напрямую связано с читаемостью и доступностью интерфейса.

Главное

  • NSAttributedString — класс iOS для создания форматированного текста с атрибутами шрифта, цвета и интервалов.
  • SpannableString — аналог на Android, использующий Span-объекты для стилизации отдельных фрагментов текста.
  • UIFont и Typeface — основные классы шрифтов на iOS и Android; кастомные шрифты добавляются через Info.plist и res/font.
  • Кернинг и лигатуры — типографические параметры, управляющие расстоянием между символами и их слиянием в один глиф.
  • Variable Fonts — один файл шрифта содержит множество начертаний, что сокращает размер приложения.

Текст в мобильных приложениях: NSAttributedString на iOS

NSAttributedString — фундаментальный класс iOS для работы с форматированным текстом. Он позволяет применять атрибуты к отдельным символам или диапазонам: шрифт через UIFont, цвет через UIColor, межсимвольное расстояние через kern и межстрочный интервал через NSMutableParagraphStyle. В мобильных приложениях NSAttributedString используется повсеместно — от UILabel до сложных UITextView с поддержкой редактирования.

UIFont и настройка шрифта

UIFont — основной класс для работы со шрифтами на iOS. Он поддерживает системные гарнитуры, кастомные шрифты и Dynamic Type. UIFont(name:size:) загружает шрифт по имени, UIFont.systemFont(ofSize:weight:) — системный шрифт. UIFontDescriptor позволяет модифицировать существующий шрифт: изменить размер, начертание или добавить матрицу трансформации. Для кастомных шрифтов файл .ttf добавляется в проект и регистрируется в Info.plist через ключ Fonts provided by application.

swift
let attributes: [NSAttributedString.Key: Any] = [
    .font: UIFont(name: "HelveticaNeue-Bold", size: 18) as Any,
    .foregroundColor: UIColor.darkGray as Any,
    .kern: 1.5 as Any
]
let attributedString = NSAttributedString(
    string: "Форматированный текст",
    attributes: attributes
)
label.attributedText = attributedString

NSMutableParagraphStyle и форматирование абзацев

NSMutableParagraphStyle — изменяемая версия ParagraphStyle для настройки отображения абзацев. Он управляет выравниванием (alignment), межстрочным интервалом (lineSpacing), отступами (headIndent, tailIndent) и режимом обрезки (lineBreakMode). ParagraphStyle критически важен для читаемости длинных текстов на мобильных устройствах: правильный lineSpacing предотвращает слияние строк, а lineBreakMode — обрезание слов. Настройка paragraphSpacing задаёт отступ между абзацами.

Текст в мобильных приложениях: SpannableString на Android

SpannableString — основной инструмент для форматирования текста на Android. Он работает через механизм Span-объектов, каждый из которых отвечает за один аспект: StyleSpan — жирный или курсив, ForegroundColorSpan — цвет, URLSpan — ссылка, UnderlineSpan — подчёркивание. SpannableStringBuilder — аналог NSMutableAttributedString, позволяющий строить текст из нескольких фрагментов. Понимание SpannableString необходимо для создания гибких интерфейсов с форматированным текстом в мобильных приложениях.

Typeface и кастомные шрифты на Android

Typeface — класс для работы со шрифтами на Android. Он поддерживает системные гарнитуры Roboto и Noto, а также кастомные шрифты. Typeface.createFromResource() загружает шрифт из res/font/, Typeface.createFromAsset() — из папки assets. Android 8.0+ поддерживает шрифтовые семейства в XML, объединяющие несколько файлов шрифта в один ресурс. Кастомный шрифт для текста в мобильных приложениях на Android задаётся через атрибут android:fontFamily или программный вызов setTypeface().

TextMeasurer и измерение текста

TextMeasurer (API 29+) — современный инструмент для измерения текста без привязки к View. Он вычисляет ширину, высоту и позиции символов до отрисовки. На старых API используется Paint.measureText() для однострочного текста или StaticLayout для многострочного. TextMeasurer особенно полезен в кастомных View, где текст рисуется через Canvas.drawText(). Корректное измерение предотвращает обрезание символов в интерфейсе.

kotlin
val spannable = SpannableString("Жирный текст с цветом")
spannable.setSpan(
    StyleSpan(Typeface.BOLD),
    0, 6,
    Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
)
spannable.setSpan(
    ForegroundColorSpan(Color.RED),
    14, 19,
    Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
)
textView.text = spannable

Типографика в мобильной разработке: кернинг, лигатуры и трекинг

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

Кернинг и Tracking

Кернинг — изменение расстояния между конкретными парами символов (AV, To, Wa). Tracking — равномерное межсимвольное расстояние для всего текста или его фрагмента. На iOS кернинг задаётся через NSKernAttributeName, на Android — через свойство letterSpacing у TextView. Отрицательные значения сближают символы, положительные — расширяют. Типографика в мобильной разработке требует аккуратной настройки этих параметров: для крупных заголовков межсимвольное расстояние обычно увеличивают, для основного текста оставляют стандартным.

ПараметрiOSAndroid
Стилизованная строкаNSAttributedStringSpannableString
ШрифтUIFont / CTFontTypeface
Межсимвольный интервалNSKernAttributeNameletterSpacing
Межстрочный интервалlineSpacinglineSpacingExtra
ЛигатурыNSLigatureAttributeNameOpenType фичи
ЭллипсисlineBreakMode .byTruncatingTailandroid:ellipsize

Лигатуры

Лигатуры — специальные глифы, заменяющие сочетания двух и более символов: fi, fl, ffi. На iOS лигатуры управляются через NSLigatureAttributeName: 0 — отключены, 1 — стандартные, 2 — все доступные. На Android лигатуры контролируются на уровне шрифта через OpenType-фичи. Включение лигатур улучшает внешний вид текста, особенно в гарнитурах с засечками. Типографика в мобильной разработке использует лигатуры преимущественно для заголовков и логотипов.

Кастомные шрифты в мобильных приложениях: загрузка и настройка

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

Variable Fonts

Variable Fonts — современная технология шрифтов, где один файл содержит множество начертаний: от тонкого до сверхжирного, от узкого до широкого. Это сокращает размер приложения, заменяя несколько файлов шрифта одним. На iOS Variable Fonts поддерживаются через UIFont с параметром weight. На Android — через Typeface.Builder с указанием осей вариативности wght, wdth, slnt. Использование Variable Fonts упрощает типографику в мобильных приложениях: разработчику не нужно загружать отдельные файлы для каждого начертания.

swift
let customFont = UIFont(name: "CustomFont-Regular", size: 16)
let scaledFont = UIFontMetrics.default
    .scaledFont(for: customFont)
label.font = scaledFont
label.adjustsFontForContentSizeCategory(true)

NSTextAttachment и ImageSpan

NSTextAttachment на iOS позволяет встраивать UIImage внутрь NSAttributedString — изображение выравнивается по baseline и переносится вместе с текстом. На Android аналогом является ImageSpan внутри SpannableString. Оба подхода полезны для чатов со смайликами, новостных лент с иконками и форм с кастомными чекбоксами. Важно правильно масштабировать изображение под высоту шрифта, чтобы текст и графика выглядели гармонично.

Эффекты текста, выравнивание и эллипсис

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

Тень и обводка текста

Тень текста на iOS задаётся через NSShadow: offset, blurRadius и color. Обводка — через NSStrokeWidthAttributeName: отрицательные значения создают заливку с обводкой, положительные — только контур. Зачёркивание — NSUnderlineStyle (.single, .thick, .double). На Android тень TextView настраивается через android:shadowRadius, android:shadowDx, android:shadowDy. SpannableString поддерживает StrikethroughSpan и UnderlineSpan. Обводка текста на Android реализуется через OutlineSpan или кастомный шрифт.

Эллипсис и Marquee

Эллипсис — обрезка текста с многоточием при переполнении контейнера. На iOS настраивается через lineBreakMode .byTruncatingTail и numberOfLines. На Android — через android:ellipsize="end" и android:maxLines. Marquee (бегущая строка) — анимация прокрутки текста, доступная на Android через android:ellipsize="marquee". На iOS аналога нет — используется библиотека MarqueeLabel. Эллипсис обязателен для всех однострочных текстов в мобильных приложениях, чтобы избежать обрезания контента.

Dynamic Type на iOS

Dynamic Type — система адаптивного текста в iOS, подстраивающая размер шрифта под настройки Accessibility пользователя. Используйте UIFontMetrics для масштабирования кастомных шрифтов. Dynamic Type обязателен для Accessibility-compliant приложений. На Android аналог — единицы sp и scaledPixels, масштабируемые под системные настройки размера текста.

Часто задаваемые вопросы

Что такое NSAttributedString?

NSAttributedString — класс iOS для создания форматированного текста с атрибутами шрифта, цвета и стилей на уровне символов и диапазонов.

Что такое SpannableString на Android?

SpannableString — класс Android для разметки текста через Span-объекты: ForegroundColorSpan, StyleSpan, URLSpan, UnderlineSpan.

Как добавить кастомный шрифт в iOS?

Добавьте файл .ttf в проект, укажите его в Info.plist в ключе Fonts provided by application, затем используйте UIFont(name:).

Как загрузить кастомный шрифт на Android?

Поместите .ttf файл в res/font/, создайте XML-семейство шрифтов и укажите android:fontFamily или используйте Typeface.createFromAsset().

Что такое кернинг и лигатуры?

Кернинг — расстояние между парами символов. Лигатуры — специальные глифы для сочетаний букв. Управляются через NSKernAttributeName и NSLigatureAttributeName.

Итоги

  • NSAttributedString — основной инструмент форматирования текста на iOS, поддерживающий шрифты, цвета, межсимвольные интервалы и стили абзацев.
  • SpannableString — аналог на Android, использующий Span-объекты: StyleSpan для начертания, ForegroundColorSpan для цвета, URLSpan для ссылок.
  • UIFont и Typeface — классы шрифтов на iOS и Android; кастомные шрифты добавляются через Info.plist и res/font соответственно.
  • Кернинг и трекинг — управляют межсимвольным расстоянием; кернинг для отдельных пар, трекинг — для всего текста равномерно.
  • Лигатуры — заменяют сочетания символов на единые глифы; управляются через NSLigatureAttributeName на iOS и OpenType на Android.
  • Variable Fonts и Dynamic Type — современные технологии: один файл для множества начертаний и автоматическая адаптация под настройки пользователя.
  • Типографика в мобильной разработке охватывает шрифты, межстрочные интервалы, лигатуры, тени и эллипсис для обеспечения читаемости.

Мы разработаем мобильное приложение под ключ

IT Sectr создаёт приложения для iOS и Android для стартапов и бизнеса с 2017 года. Мы проконсультируем вас и предложим наилучшее решение.

Обсудить проект