Mobil İnkişafda Mətn və Tipoqrafiya: Bu Nədir, Hansı Alətlər və Necə İşləyir

Müəllif: IT Sectr Dərc olunub: 2026-08-04 Oxuma vaxtı: 10 dəq

Müasir mobil tətbiqlərin interfeyslərini yaradarkən mətn ilə işləmək əsas vəzifədir. Şrift seçimindən simvollar arasındakı məsafənin tənzimlənməsinə qədər — hər bir aspekt məhsulun qavranılmasına təsir göstərir. Apple NSAttributedString Sənədlərinə görə, düzgün mətn formatlaşdırması birbaşa oxunaqlılıq və interfeysin əlçatanlığı ilə əlaqəlidir.

Əsas Məqamlar

  • NSAttributedString — şrift, rəng və məsafə atributları ilə formatlaşdırılmış mətn yaratmaq üçün iOS sinfi.
  • SpannableString — fərdi mətn fraqmentlərini stilləşdirmək üçün Span obyektlərindən istifadə edən Android analoqu.
  • UIFont və Typeface — iOS və Android-də əsas şrift sinifləri; xüsusi şriftlər Info.plist və res/font vasitəsilə əlavə edilir.
  • Kerninq və liqaturalar — simvollar arasındakı məsafəni və onların bir glifdə birləşməsini idarə edən tipoqrafik parametrlər.
  • Dəyişən Şriftlər — bir şrift faylı çoxsaylı stillər ehtiva edir, tətbiq ölçüsünü azaldır.

Mobil Tətbiqlərdə Mətn: iOS-da NSAttributedString

NSAttributedString formatlaşdırılmış mətnlə işləmək üçün əsas iOS sinfidir. Fərdi simvollara və ya diapazonlara atributlar tətbiq etməyə imkan verir: UIFont vasitəsilə şrift, UIColor vasitəsilə rəng, kern vasitəsilə simvol məsafəsi və NSMutableParagraphStyle vasitəsilə sətir aralığı. Mobil tətbiqlərdə NSAttributedString hər yerdə istifadə olunur — UILabel-dan redaktə dəstəyi olan mürəkkəb UITextView-ə qədər.

UIFont və Şrift Konfiqurasiyası

UIFont iOS-da şriftlərlə işləmək üçün əsas sinifdir. Sistem şriftlərini, xüsusi şriftləri və Dynamic Type-ı dəstəkləyir. UIFont(name:size:) ada görə şrift yükləyir, UIFont.systemFont(ofSize:weight:) sistem şriftini yükləyir. UIFontDescriptor mövcud şrifti dəyişdirməyə imkan verir: ölçüsünü, çəkisini dəyişmək və ya transformasiya matrisi əlavə etmək. Xüsusi şriftlər üçün .ttf faylı layihəyə əlavə edilir və Info.plist-də Fonts provided by application açarı altında qeydiyyatdan keçirilir.

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 və Paraqraf Formatlaşdırması

NSMutableParagraphStyle paraqraf göstərilməsini konfiqurasiya etmək üçün ParagraphStyle-ın dəyişdirilə bilən versiyasıdır. O, düzləndirməni (alignment), sətir aralığını (lineSpacing), abzasları (headIndent, tailIndent) və kəsmə rejimini (lineBreakMode) idarə edir. ParagraphStyle mobil cihazlarda uzun mətnlərin oxunaqlılığı üçün kritikdir: düzgün lineSpacing sətirlərin birləşməsinin qarşısını alır, lineBreakMode isə sözlərin kəsilməsinin qarşısını alır. paragraphSpacing ayarı paraqraflar arasındakı boşluğu müəyyən edir.

Mobil Tətbiqlərdə Mətn: Android-də SpannableString

SpannableString Android-də mətn formatlaşdırması üçün əsas vasitədir. Hər biri bir aspektdən məsul olan Span obyektləri mexanizmi vasitəsilə işləyir: StyleSpan qalın və ya kursiv üçün, ForegroundColorSpan rəng üçün, URLSpan keçidlər üçün, UnderlineSpan altından xətt çəkmək üçün. SpannableStringBuilder NSMutableAttributedString-in analoqudur və çoxsaylı fraqmentlərdən mətn qurmağa imkan verir. Mobil tətbiqlərdə formatlaşdırılmış mətnlə çevik interfeyslər yaratmaq üçün SpannableString-i başa düşmək vacibdir.

Android-də Typeface və Xüsusi Şriftlər

Typeface Android-də şriftlərlə işləmək üçün sinifdir. O, sistem şriftləri Roboto və Noto-nu, həmçinin xüsusi şriftləri dəstəkləyir. Typeface.createFromResource() res/font/ qovluğundan şrift yükləyir, Typeface.createFromAsset() assets qovluğundan yükləyir. Android 8.0+ XML-də şrift ailələrini dəstəkləyir, çoxsaylı şrift fayllarını bir resursda birləşdirir. Android-də mobil tətbiqlərdə mətn üçün xüsusi şrift android:fontFamily atributu vasitəsilə və ya proqramlı şəkildə setTypeface() istifadə edərək təyin edilir.

TextMeasurer və Mətn Ölçmə

TextMeasurer (API 29+) View-ə bağlanmadan mətni ölçmək üçün müasir vasitədir. O, render etmədən əvvəl eni, hündürlüyü və simvol mövqelərini hesablayır. Köhnə API-lərdə tək sətirli mətn üçün Paint.measureText() və ya çox sətirli mətn üçün StaticLayout istifadə olunur. TextMeasurer xüsusilə Canvas.drawText() vasitəsilə mətnin çəkildiyi xüsusi View-lərdə faydalıdır. Düzgün ölçmə interfeysdə simvolların kəsilməsinin qarşısını alır.

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 İnkişafda Tipoqrafiya: Kerninq, Liqaturalar və Trekinq

Mobil tətbiqlərdə tipoqrafiya şriftlərin, simvol məsafəsinin və sətir aralığının hərtərəfli konfiqurasiyasıdır. Mobil inkişafda düzgün tipoqrafiya birbaşa mətnin oxunaqlılığına və interfeysin vizual qavranılmasına təsir göstərir. Hər iki platformada mövcud olan əsas parametrlərə baxaq.

Kerninq və Trekinq

Kerninq müəyyən simvol cütləri (AV, To, Wa) arasındakı məsafənin tənzimlənməsidir. Trekinq bütün mətn və ya onun bir hissəsi üçün vahid simvol məsafəsidir. iOS-da kerninq NSKernAttributeName vasitəsilə, Android-də — TextView-in letterSpacing xüsusiyyəti vasitəsilə təyin edilir. Mənfi dəyərlər simvolları yaxınlaşdırır, müsbət dəyərlər uzaqlaşdırır. Mobil inkişafda tipoqrafiya bu parametrlərin diqqətli tənzimlənməsini tələb edir: böyük başlıqlar üçün simvol məsafəsi adətən artırılır, əsas mətn üçün standart qalır.

ParametriOSAndroid
Stilləşdirilmiş SətirNSAttributedStringSpannableString
ŞriftUIFont / CTFontTypeface
Simvol MəsafəsiNSKernAttributeNameletterSpacing
Sətir AralığılineSpacinglineSpacingExtra
LiqaturalarNSLigatureAttributeNameOpenType xüsusiyyətləri
EllipsislineBreakMode .byTruncatingTailandroid:ellipsize

Liqaturalar

Liqaturalar iki və ya daha çox simvolun birləşməsini (fi, fl, ffi) əvəz edən xüsusi gliflərdir. iOS-da liqaturalar NSLigatureAttributeName vasitəsilə idarə olunur: 0 — söndürülmüş, 1 — standart, 2 — bütün mövcud. Android-də liqaturalar OpenType xüsusiyyətləri vasitəsilə şrift səviyyəsində idarə olunur. Liqaturaları aktivləşdirmək mətnin görünüşünü yaxşılaşdırır, xüsusən də serif şriftlərində. Mobil inkişafda tipoqrafiya liqaturalardan əsasən başlıqlar və loqolar üçün istifadə edir.

Mobil Tətbiqlərdə Xüsusi Şriftlər: Yükləmə və Konfiqurasiya

Xüsusi şriftlər tətbiq üçün unikal vizual stil yaratmağın əsas vasitələrindən biridir. Onlar markanı vurğulamağa və istifadəçi təcrübəsini yaxşılaşdırmağa kömək edir. Mobil tətbiqlərdə xüsusi şriftlər başlıqlar, loqolar, vurğu elementləri və korporativ şəxsiyyət üçün istifadə olunur.

Dəyişən Şriftlər

Dəyişən Şriftlər bir faylın çoxsaylı stillər ehtiva etdiyi müasir şrift texnologiyasıdır: incədən çox qalına, dardan genişə qədər. Bu, bir neçə şrift faylını bir faylla əvəz edərək tətbiq ölçüsünü azaldır. iOS-da Dəyişən Şriftlər weight parametri ilə UIFont vasitəsilə dəstəklənir. Android-də — dəyişkənlik oxlarını (wght, wdth, slnt) göstərən Typeface.Builder vasitəsilə. Dəyişən Şriftlərdən istifadə mobil tətbiqlərdə tipoqrafiyanı sadələşdirir: tərtibatçı hər bir stil üçün ayrıca fayl yükləməyə ehtiyac duymur.

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

NSTextAttachment və ImageSpan

iOS-da NSTextAttachment NSAttributedString daxilində UIImage yerləşdirməyə imkan verir — şəkil baza xətti ilə düzlənir və mətnlə birlikdə hərəkət edir. Android-də analoqu SpannableString daxilində ImageSpan-dir. Hər iki yanaşma emoji ilə söhbət, nişanlarla xəbər lentləri və xüsusi qeyd qutuları olan formalar üçün faydalıdır. Mətn və qrafiklərin ahəngdar görünməsi üçün şəklin şrift hündürlüyünə uyğun miqyaslanması vacibdir.

Mətn Effektləri, Düzləndirmə və Ellipsis

Əsas formatlaşdırma ilə yanaşı, mobil tətbiqlərdə mətn əlavə vizual effektləri dəstəkləyir: kölgələr, konturlar, üstündən xətt çəkmə və altından xətt çəkmə. Bu vasitələr tipoqrafiyanın imkanlarını genişləndirir, lakin oxunaqlılığı qorumaq üçün diqqətli tətbiq tələb edir.

Mətn Kölgəsi və Konturu

iOS-da mətn kölgəsi offset, blurRadius və color ilə NSShadow vasitəsilə təyin edilir. Kontur — NSStrokeWidthAttributeName vasitəsilə: mənfi dəyərlər konturla doldurma yaradır, müsbət dəyərlər yalnız kontur yaradır. Üstündən xətt çəkmə — NSUnderlineStyle (.single, .thick, .double). Android-də TextView kölgəsi android:shadowRadius, android:shadowDx, android:shadowDy vasitəsilə konfiqurasiya edilir. SpannableString StrikethroughSpan və UnderlineSpan-ı dəstəkləyir. Android-də mətn konturu OutlineSpan və ya xüsusi şrift vasitəsilə həyata keçirilir.

Ellipsis və Marquee

Ellipsis konteyner daşdıqda mətnin üç nöqtə ilə kəsilməsidir. iOS-da lineBreakMode .byTruncatingTail və numberOfLines vasitəsilə konfiqurasiya edilir. Android-də — android:ellipsize="end" və android:maxLines vasitəsilə. Marquee Android-də android:ellipsize="marquee" vasitəsilə mövcud olan sürüşən mətn animasiyasıdır. iOS-da daxili analoq yoxdur — MarqueeLabel kitabxanası istifadə olunur. Məzmunun kəsilməsinin qarşısını almaq üçün mobil tətbiqlərdə bütün tək sətirli mətnlər üçün ellipsis məcburidir.

iOS-da Dynamic Type

Dynamic Type istifadəçinin Əlçatanlıq parametrlərinə əsasən şrift ölçüsünü tənzimləyən iOS-da adaptiv mətn sistemidir. Xüsusi şriftləri miqyaslamaq üçün UIFontMetrics istifadə edin. Dynamic Type əlçatanlığa uyğun tətbiqlər üçün məcburidir. Android-də analoq sp vahidləri və scaledPixels-dir, onlar sistem mətn ölçüsü parametrlərinə uyğun miqyaslanır.

Tez-tez Verilən Suallar

NSAttributedString nədir?

NSAttributedString simvol və diapazon səviyyəsində şrift, rəng və stil atributları ilə formatlaşdırılmış mətn yaratmaq üçün iOS sinfidir.

Android-də SpannableString nədir?

SpannableString Span obyektləri (ForegroundColorSpan, StyleSpan, URLSpan, UnderlineSpan) vasitəsilə mətn işarələməsi üçün Android sinfidir.

iOS-a xüsusi şrift necə əlavə etmək olar?

.ttf faylını layihəyə əlavə edin, Info.plist-də Fonts provided by application açarı altında göstərin, sonra UIFont(name:) istifadə edin.

Android-də xüsusi şrift necə yükləmək olar?

.ttf faylını res/font/ qovluğuna yerləşdirin, XML şrift ailəsi yaradın və android:fontFamily göstərin və ya Typeface.createFromAsset() istifadə edin.

Kerninq və liqaturalar nədir?

Kerninq simvol cütləri arasındakı boşluqdur. Liqaturalar hərf birləşmələri üçün xüsusi gliflərdir. Onlar NSKernAttributeName və NSLigatureAttributeName vasitəsilə idarə olunur.

Xülasə

  • NSAttributedString — iOS-da şriftləri, rəngləri, simvol məsafəsini və paraqraf stillərini dəstəkləyən əsas mətn formatlaşdırma vasitəsi.
  • SpannableString — Span obyektlərindən istifadə edən Android analoqu: StyleSpan (çəki), ForegroundColorSpan (rəng), URLSpan (keçidlər).
  • UIFont və Typeface — iOS və Android-də şrift sinifləri; xüsusi şriftlər müvafiq olaraq Info.plist və res/font vasitəsilə əlavə edilir.
  • Kerninq və Trekinq — simvol məsafəsini idarə edir; kerninq fərdi cütlər üçün, trekinq bütün mətn üçün bərabər şəkildə.
  • Liqaturalar — simvol birləşmələrini tək gliflərlə əvəz edir; iOS-da NSLigatureAttributeName və Android-də OpenType vasitəsilə idarə olunur.
  • Dəyişən Şriftlər və Dynamic Type — müasir texnologiyalar: çoxsaylı stillər üçün bir fayl və istifadəçi parametrlərinə avtomatik uyğunlaşma.
  • Mobil inkişafda tipoqrafiya oxunaqlılığı təmin etmək üçün şriftləri, sətir aralığını, liqaturaları, kölgələri və ellipsisi əhatə edir.

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et