Mobil Rivojlanishda Matn va Tipografiya: Bu Nima, Qanday Asboblar va Qanday Ishlaydi

Muallif: IT Sectr Nashr etilgan: 2026-08-04 O'qish vaqti: 10 daq

Zamonaviy mobil ilovalarning interfeyslarini yaratishda matn bilan ishlash asosiy vazifadir. Shrift tanlashdan tortib belgilar orasidagi masofani sozlashgacha — har bir jihat mahsulotning idrok qilinishiga ta'sir qiladi. Apple NSAttributedString hujjatlariga ko'ra, to'g'ri matn formatlash bevosita o'qish qulayligi va interfeysning foydalanish imkoniyati bilan bog'liq.

Asosiy Fikrlar

  • NSAttributedString — shrift, rang va masofa atributlari bilan formatlangan matn yaratish uchun iOS sinfi.
  • SpannableString — alohida matn bo'laklarini stillash uchun Span obyektlaridan foydalanadigan Android analogi.
  • UIFont va Typeface — iOS va Android-dagi asosiy shrift sinflari; maxsus shriftlar Info.plist va res/font orqali qo'shiladi.
  • Kernig va ligaturalar — belgilar orasidagi masofani va ularning bitta glifga birlashishini boshqaradigan tipografik parametrlar.
  • O'zgaruvchan Shriftlar — bitta shrift fayli bir nechta uslublarni o'z ichiga oladi, ilova hajmini kamaytiradi.

Mobil Ilovalarda Matn: iOS-da NSAttributedString

NSAttributedString formatlangan matn bilan ishlash uchun asosiy iOS sinfidir. U alohida belgilar yoki diapazonlarga atributlarni qo'llash imkonini beradi: UIFont orqali shrift, UIColor orqali rang, kern orqali belgilar oralig'i va NSMutableParagraphStyle orqali qator oralig'i. Mobil ilovalarda NSAttributedString hamma joyda qo'llaniladi — UILabel dan tahrirlashni qo'llab-quvvatlaydigan murakkab UITextView gacha.

UIFont va Shrift Konfiguratsiyasi

UIFont iOS-da shriftlar bilan ishlash uchun asosiy sinfdir. U tizim shriftlarini, maxsus shriftlarni va Dynamic Type-ni qo'llab-quvvatlaydi. UIFont(name:size()) shriftni nomi bo'yicha yuklaydi, UIFont.systemFont(ofSize:weight()) tizim shriftini yuklaydi. UIFontDescriptor mavjud shriftni o'zgartirish imkonini beradi: hajmini, og'irligini o'zgartirish yoki transformatsiya matritsasini qo'shish. Maxsus shriftlar uchun .ttf fayli loyihaga qo'shiladi va Info.plist da Fonts provided by application kaliti ostida ro'yxatdan o'tkaziladi.

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 va Paragraf Formatlash

NSMutableParagraphStyle paragraf ko'rinishini sozlash uchun ParagraphStyle ning o'zgartiriladigan versiyasidir. U tekislash (alignment), qator oralig'i (lineSpacing), chekinishlar (headIndent, tailIndent) va kesish rejimini (lineBreakMode) boshqaradi. ParagraphStyle mobil qurilmalarda uzoq matnlarning o'qish qulayligi uchun juda muhimdir: to'g'ri lineSpacing qatorlarning birlashishini oldini oladi, lineBreakMode esa so'zlarning kesilishini oldini oladi. paragraphSpacing sozlamasi paragraflar orasidagi bo'shliqni belgilaydi.

Mobil Ilovalarda Matn: Android-da SpannableString

SpannableString Android-da matn formatlash uchun asosiy vositadir. U Span obyektlari mexanizmi orqali ishlaydi, har biri bir jihat uchun javobgardir: StyleSpan qalin yoki kursiv uchun, ForegroundColorSpan rang uchun, URLSpan havolalar uchun, UnderlineSpan tagiga chizish uchun. SpannableStringBuilder NSMutableAttributedString ning analogidir va bir nechta bo'laklardan matn qurish imkonini beradi. Mobil ilovalarda formatlangan matn bilan moslashuvchan interfeyslar yaratish uchun SpannableString ni tushunish zarur.

Android-da Typeface va Maxsus Shriftlar

Typeface Android-da shriftlar bilan ishlash uchun sinfdir. U tizim shriftlari Roboto va Noto ni, shuningdek maxsus shriftlarni qo'llab-quvvatlaydi. Typeface.createFromResource() res/font/ dan shrift yuklaydi, Typeface.createFromAsset() esa assets jildidan yuklaydi. Android 8.0+ XML da shrift oilalarini qo'llab-quvvatlaydi, bir nechta shrift fayllarini bitta resursga birlashtiradi. Android-da mobil ilovalarda matn uchun maxsus shrift android:fontFamily atributi orqali yoki dasturiy ravishda setTypeface() yordamida o'rnatiladi.

TextMeasurer va Matn O'lchash

TextMeasurer (API 29+) View ga bog'lanmagan holda matnni o'lchash uchun zamonaviy vositadir. U renderlashdan oldin kenglik, balandlik va belgi pozitsiyalarini hisoblaydi. Eski API larda bir qatorli matn uchun Paint.measureText() yoki ko'p qatorli matn uchun StaticLayout ishlatiladi. TextMeasurer, ayniqsa, Canvas.drawText() orqali matn chiziladigan maxsus View larda foydalidir. To'g'ri o'lchash interfeysda belgilarning kesilishini oldini oladi.

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

Mobil Rivojlanishda Tipografiya: Kernig, Ligaturalar va Treking

Mobil ilovalarda tipografiya shriftlar, belgilar oralig'i va qator oralig'ining keng qamrovli sozlamasidir. Mobil rivojlanishda to'g'ri tipografiya bevosita matnning o'qish qulayligi va interfeysning vizual idrokiga ta'sir qiladi. Keling, ikkala platformada mavjud bo'lgan asosiy parametrlarni ko'rib chiqaylik.

Kernig va Treking

Kernig ma'lum belgilar juftliklari (AV, To, Wa) orasidagi masofani sozlashdir. Treking butun matn yoki uning bir qismi uchun bir xil belgilar oralig'idir. iOS da kernig NSKernAttributeName orqali, Android da esa TextView ning letterSpacing xususiyati orqali o'rnatiladi. Salbiy qiymatlar belgilarni yaqinlashtiradi, ijobiy qiymatlar esa ularni uzoqlashtiradi. Mobil rivojlanishda tipografiya ushbu parametrlarni ehtiyotkorlik bilan sozlashni talab qiladi: katta sarlavhalar uchun belgilar oralig'i odatda oshiriladi, asosiy matn uchun standart qoladi.

ParametriOSAndroid
Stilizatsiyalangan SatrNSAttributedStringSpannableString
ShriftUIFont / CTFontTypeface
Belgilar Oralig'iNSKernAttributeNameletterSpacing
Qator Oralig'ilineSpacinglineSpacingExtra
LigaturalarNSLigatureAttributeNameOpenType xususiyatlari
EllipsislineBreakMode .byTruncatingTailandroid:ellipsize

Ligaturalar

Ligaturalar ikki yoki undan ortiq belgilar birikmasini (fi, fl, ffi) almashtiradigan maxsus glifladir. iOS da ligaturalar NSLigatureAttributeName orqali boshqariladi: 0 — o'chirilgan, 1 — standart, 2 — barcha mavjud. Android da ligaturalar OpenType xususiyatlari orqali shrift darajasida boshqariladi. Ligaturalarni yoqish matnning ko'rinishini yaxshilaydi, ayniqsa serif shriftlarida. Mobil rivojlanishda tipografiya ligaturalardan asosan sarlavhalar va logotiplar uchun foydalanadi.

Mobil Ilovalarda Maxsus Shriftlar: Yuklash va Konfiguratsiya

Maxsus shriftlar ilova uchun noyob vizual uslub yaratishning asosiy vositalaridan biridir. Ular brendni ta'kidlash va foydalanuvchi tajribasini yaxshilashga yordam beradi. Mobil ilovalarda maxsus shriftlar sarlavhalar, logotiplar, urg'u elementlari va korporativ identifikatsiya uchun ishlatiladi.

O'zgaruvchan Shriftlar

O'zgaruvchan Shriftlar bir fayl bir nechta uslublarni o'z ichiga olgan zamonaviy shrift texnologiyasidir: yupqadan o'ta qalingacha, tordan kenggacha. Bu bir nechta shrift fayllarini bitta fayl bilan almashtirish orqali ilova hajmini kamaytiradi. iOS da O'zgaruvchan Shriftlar weight parametri bilan UIFont orqali qo'llab-quvvatlanadi. Android da — o'zgaruvchanlik o'qlarini (wght, wdth, slnt) ko'rsatadigan Typeface.Builder orqali. O'zgaruvchan Shriftlardan foydalanish mobil ilovalarda tipografiyani soddalashtiradi: dasturchi har bir uslub uchun alohida fayllarni yuklashi shart emas.

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

NSTextAttachment va ImageSpan

iOS da NSTextAttachment NSAttributedString ichiga UIImage joylashtirish imkonini beradi — tasvir tayanch chizig'i bo'ylab tekislanadi va matn bilan birga harakatlanadi. Android da analog SpannableString ichidagi ImageSpan dir. Ikkala yondashuv ham emoji bilan chat, ikonkalar bilan yangiliklar lentalari va maxsus belgilash qutilari bilan shakllar uchun foydalidir. Matn va grafika uyg'un ko'rinishi uchun tasvirni shrift balandligiga mos ravishda to'g'ri masshtablash muhimdir.

Matn Effektlari, Tekislash va Ellipsis

Asosiy formatlashdan tashqari, mobil ilovalarda matn qo'shimcha vizual effektlarni qo'llab-quvvatlaydi: soyalar, konturlar, chizilgan va tagiga chizilgan. Ushbu vositalar tipografiya imkoniyatlarini kengaytiradi, ammo o'qish qulayligini saqlash uchun ehtiyotkorlik bilan qo'llashni talab qiladi.

Matn Soyasi va Konturi

iOS da matn soyasi offset, blurRadius va color bilan NSShadow orqali o'rnatiladi. Kontur — NSStrokeWidthAttributeName orqali: salbiy qiymatlar kontur bilan to'ldirishni yaratadi, ijobiy qiymatlar faqat konturni yaratadi. Chizilgan — NSUnderlineStyle (.single, .thick, .double). Android da TextView soyasi android:shadowRadius, android:shadowDx, android:shadowDy orqali sozlanadi. SpannableString StrikethroughSpan va UnderlineSpan ni qo'llab-quvvatlaydi. Android da matn konturi OutlineSpan yoki maxsus shrift orqali amalga oshiriladi.

Ellipsis va Marquee

Ellipsis konteyner to'lib ketganda matnni uch nuqta bilan kesishdir. iOS da lineBreakMode .byTruncatingTail va numberOfLines orqali sozlanadi. Android da — android:ellipsize="end" va android:maxLines orqali. Marquee Android da android:ellipsize="marquee" orqali mavjud bo'lgan aylanma matn animatsiyasidir. iOS da o'rnatilgan analog yo'q — MarqueeLabel kutubxonasi ishlatiladi. Tarkibning kesilishini oldini olish uchun mobil ilovalardagi barcha bir qatorli matnlar uchun ellipsis majburiydir.

iOS da Dynamic Type

Dynamic Type foydalanuvchining Foydalanish imkoniyati sozlamalariga asoslanib shrift hajmini sozlaydigan iOS da moslashuvchan matn tizimidir. Maxsus shriftlarni masshtablash uchun UIFontMetrics dan foydalaning. Dynamic Type foydalanish imkoniyatiga mos ilovalar uchun majburiydir. Android da analog sp birliklari va scaledPixels dir, ular tizim matn hajmi sozlamalariga muvofiq masshtablanadi.

Ko'p So'raladigan Savollar

NSAttributedString nima?

NSAttributedString belgi va diapazon darajasida shrift, rang va uslub atributlari bilan formatlangan matn yaratish uchun iOS sinfidir.

Android da SpannableString nima?

SpannableString Span obyektlari (ForegroundColorSpan, StyleSpan, URLSpan, UnderlineSpan) orqali matn belgilash uchun Android sinfidir.

iOS ga maxsus shriftni qanday qo'shish mumkin?

.ttf faylini loyihaga qo'shing, uni Info.plist da Fonts provided by application kaliti ostida belgilang, so'ngra UIFont(name:) dan foydalaning.

Android da maxsus shriftni qanday yuklash mumkin?

.ttf faylini res/font/ ga joylashtiring, XML shrift oilasini yarating va android:fontFamily belgilang yoki Typeface.createFromAsset() dan foydalaning.

Kernig va ligaturalar nima?

Kernig belgi juftliklari orasidagi bo'shliqdir. Ligaturalar harf birikmalari uchun maxsus glifladir. Ular NSKernAttributeName va NSLigatureAttributeName orqali boshqariladi.

Xulosa

  • NSAttributedString — iOS da shriftlar, ranglar, belgilar oralig'i va paragraf uslublarini qo'llab-quvvatlaydigan asosiy matn formatlash vositasi.
  • SpannableString — Span obyektlaridan foydalanadigan Android analogi: StyleSpan (og'irlik), ForegroundColorSpan (rang), URLSpan (havolalar).
  • UIFont va Typeface — iOS va Android dagi shrift sinflari; maxsus shriftlar mos ravishda Info.plist va res/font orqali qo'shiladi.
  • Kernig va Treking — belgilar oralig'ini boshqaradi; kernig alohida juftliklar uchun, treking butun matn uchun bir xil.
  • Ligaturalar — belgilar birikmalarini bitta glif bilan almashtiradi; iOS da NSLigatureAttributeName va Android da OpenType orqali boshqariladi.
  • O'zgaruvchan Shriftlar va Dynamic Type — zamonaviy texnologiyalar: bir nechta uslublar uchun bitta fayl va foydalanuvchi sozlamalariga avtomatik moslashish.
  • Mobil rivojlanishda tipografiya o'qish qulayligini ta'minlash uchun shriftlar, qator oralig'i, ligaturalar, soyalar va ellipsisni o'z ichiga oladi.

Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz

IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.

Loyihani muhokama qilish