Текст і типографіка в мобільній розробці: що це, які інструменти та як працює

Автор: IT Sectr Опубліковано: 2026-08-04 Час читання: 10 хв

Робота з текстом — ключове завдання при створенні інтерфейсів сучасних мобільних додатків. Від вибору шрифту до налаштування міжсимвольних інтервалів — кожен аспект впливає на сприйняття продукту. За даними Документації Apple NSAttributedString, правильне форматування тексту безпосередньо пов'язане з читабельністю та доступністю інтерфейсу.

Головне

  • 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

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

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

Кернінг та Трекінг

Кернінг — зміна відстані між конкретними парами символів (AV, To, Wa). Трекінг — рівномірна міжсимвольна відстань для всього тексту або його фрагмента. На 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 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.

Обговорити проект