Mobil Geliştirmede Metin ve Tipografi: Nedir, Hangi Araçlar ve Nasıl Çalışır

Yazar: IT Sectr Yayınlanma: 2026-08-04 Okuma süresi: 10 dk

Modern mobil uygulamaların arayüzlerini oluştururken metin ile çalışmak önemli bir görevdir. Yazı tipi seçiminden karakter aralığı ayarlamaya kadar her yön, ürünün algılanmasını etkiler. Apple NSAttributedString Dokümantasyonu'na göre, doğru metin biçimlendirme, okunabilirlik ve arayüz erişilebilirliği ile doğrudan ilişkilidir.

Önemli Noktalar

  • NSAttributedString — yazı tipi, renk ve aralık nitelikleriyle biçimlendirilmiş metin oluşturmak için iOS sınıfı.
  • SpannableString — tek tek metin parçalarını stilize etmek için Span nesnelerini kullanan Android benzeri.
  • UIFont ve Typeface — iOS ve Android'deki ana yazı tipi sınıfları; özel yazı tipleri Info.plist ve res/font aracılığıyla eklenir.
  • Kerning ve bitişik harfler — karakterler arasındaki boşluğu ve bunların tek bir glifte birleşmesini kontrol eden tipografik parametreler.
  • Değişken Yazı Tipleri — tek bir yazı tipi dosyası birden çok stil içerir, uygulama boyutunu azaltır.

Mobil Uygulamalarda Metin: iOS'ta NSAttributedString

NSAttributedString, biçimlendirilmiş metinle çalışmak için temel iOS sınıfıdır. Tek tek karakterlere veya aralıklara nitelikler uygulamaya izin verir: UIFont aracılığıyla yazı tipi, UIColor aracılığıyla renk, kern aracılığıyla karakter aralığı ve NSMutableParagraphStyle aracılığıyla satır aralığı. Mobil uygulamalarda NSAttributedString her yerde kullanılır — UILabel'den düzenleme destekli karmaşık UITextView'e kadar.

UIFont ve Yazı Tipi Yapılandırması

UIFont, iOS'ta yazı tipleriyle çalışmak için ana sınıftır. Sistem yazı tiplerini, özel yazı tiplerini ve Dynamic Type'ı destekler. UIFont(name:size:) ada göre bir yazı tipi yükler, UIFont.systemFont(ofSize:weight:) sistem yazı tipini yükler. UIFontDescriptor, mevcut bir yazı tipini değiştirmeye izin verir: boyut, ağırlık değiştirme veya dönüşüm matrisi ekleme. Özel yazı tipleri için .ttf dosyası projeye eklenir ve Info.plist'te Fonts provided by application anahtarı altında kaydedilir.

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 ve Paragraf Biçimlendirme

NSMutableParagraphStyle, paragraf görüntülemeyi yapılandırmak için ParagraphStyle'ın değiştirilebilir bir sürümüdür. Hizalama (alignment), satır aralığı (lineSpacing), girintiler (headIndent, tailIndent) ve kesme modunu (lineBreakMode) kontrol eder. ParagraphStyle, mobil cihazlarda uzun metinlerin okunabilirliği için kritiktir: uygun lineSpacing satırların birleşmesini önler ve lineBreakMode kelime kırpmayı önler. paragraphSpacing ayarı, paragraflar arasındaki boşluğu tanımlar.

Mobil Uygulamalarda Metin: Android'de SpannableString

SpannableString, Android'de metin biçimlendirme için ana araçtır. Her biri bir yönünden sorumlu olan Span nesneleri mekanizmasıyla çalışır: StyleSpan kalın veya italik için, ForegroundColorSpan renk için, URLSpan bağlantılar için, UnderlineSpan altı çizgi için. SpannableStringBuilder, NSMutableAttributedString'in eşdeğeridir ve birden çok parçadan metin oluşturmaya izin verir. Mobil uygulamalarda biçimlendirilmiş metinle esnek arayüzler oluşturmak için SpannableString'i anlamak önemlidir.

Android'de Typeface ve Özel Yazı Tipleri

Typeface, Android'de yazı tipleriyle çalışmak için sınıftır. Sistem yazı tipleri Roboto ve Noto'nun yanı sıra özel yazı tiplerini de destekler. Typeface.createFromResource() res/font/ konumundan bir yazı tipi yükler, Typeface.createFromAsset() varlıklar klasöründen yükler. Android 8.0+, birden çok yazı tipi dosyasını tek bir kaynakta birleştiren XML'de yazı tipi ailelerini destekler. Android'de mobil uygulamalarda metin için özel bir yazı tipi, android:fontFamily özniteliği aracılığıyla veya programlı olarak setTypeface() kullanılarak ayarlanır.

TextMeasurer ve Metin Ölçümü

TextMeasurer (API 29+), bir View'a bağlanmadan metni ölçmek için modern bir araçtır. Oluşturmadan önce genişlik, yükseklik ve karakter konumlarını hesaplar. Eski API'lerde, tek satırlı metin için Paint.measureText() veya çok satırlı metin için StaticLayout kullanılır. TextMeasurer, metnin Canvas.drawText() aracılığıyla çizildiği özel View'larda özellikle kullanışlıdır. Doğru ölçüm, arayüzde karakter kırpmasını önler.

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 Geliştirmede Tipografi: Kerning, Bitişik Harfler ve Tracking

Mobil uygulamalarda tipografi, yazı tiplerinin, karakter aralığının ve satır aralığının kapsamlı bir yapılandırmasıdır. Mobil geliştirmede doğru tipografi, metin okunabilirliğini ve arayüzün görsel algısını doğrudan etkiler. Her iki platformda da bulunan temel parametrelere bakalım.

Kerning ve Tracking

Kerning, belirli karakter çiftleri (AV, To, Wa) arasındaki boşluğun ayarlanmasıdır. Tracking, metnin tamamı veya bir kısmı için tek tip karakter aralığıdır. iOS'ta kerning NSKernAttributeName aracılığıyla, Android'de ise TextView'ın letterSpacing özelliği aracılığıyla ayarlanır. Negatif değerler karakterleri yakınlaştırır, pozitif değerler uzaklaştırır. Mobil geliştirmede tipografi, bu parametrelerin dikkatli bir şekilde ayarlanmasını gerektirir: büyük başlıklar için karakter aralığı genellikle artırılır, gövde metni için standart kalır.

ParametreiOSAndroid
Stilize DizeNSAttributedStringSpannableString
Yazı TipiUIFont / CTFontTypeface
Karakter AralığıNSKernAttributeNameletterSpacing
Satır AralığılineSpacinglineSpacingExtra
Bitişik HarflerNSLigatureAttributeNameOpenType özellikleri
Üç NoktalineBreakMode .byTruncatingTailandroid:ellipsize

Bitişik Harfler

Bitişik harfler, iki veya daha fazla karakterin birleşimini (fi, fl, ffi) değiştiren özel gliflerdir. iOS'ta bitişik harfler NSLigatureAttributeName aracılığıyla kontrol edilir: 0 — devre dışı, 1 — standart, 2 — mevcut tümü. Android'de bitişik harfler, OpenType özellikleri aracılığıyla yazı tipi düzeyinde kontrol edilir. Bitişik harfleri etkinleştirmek, özellikle serif yazı tiplerinde metnin görünümünü iyileştirir. Mobil geliştirmede tipografi, bitişik harfleri esas olarak başlıklar ve logolar için kullanır.

Mobil Uygulamalarda Özel Yazı Tipleri: Yükleme ve Yapılandırma

Özel yazı tipleri, bir uygulama için benzersiz bir görsel stil oluşturmanın ana araçlarından biridir. Markayı vurgulamaya ve kullanıcı deneyimini iyileştirmeye yardımcı olurlar. Mobil uygulamalarda özel yazı tipleri, başlıklar, logolar, vurgu öğeleri ve kurumsal kimlik için kullanılır.

Değişken Yazı Tipleri

Değişken Yazı Tipleri, tek bir dosyanın birden çok stil içerdiği modern bir yazı tipi teknolojisidir: inceden ekstra kalına, dardan genişe kadar. Bu, birden çok yazı tipi dosyasını bir taneyle değiştirerek uygulama boyutunu azaltır. iOS'ta Değişken Yazı Tipleri, weight parametresiyle UIFont aracılığıyla desteklenir. Android'de — değişkenlik eksenlerini (wght, wdth, slnt) belirten Typeface.Builder aracılığıyla. Değişken Yazı Tipleri kullanmak, mobil uygulamalarda tipografiyi basitleştirir: geliştiricinin her stil için ayrı dosyalar yüklemesi gerekmez.

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

NSTextAttachment ve ImageSpan

iOS'ta NSTextAttachment, NSAttributedString içine UIImage yerleştirmeye izin verir — görüntü taban çizgisiyle hizalanır ve metinle birlikte hareket eder. Android'de eşdeğer, SpannableString içindeki ImageSpan'dir. Her iki yaklaşım da emojili sohbet, simgeli haber akışları ve özel onay kutulu formlar için kullanışlıdır. Metin ve grafiklerin uyumlu görünmesi için görüntünün yazı tipi yüksekliğine uygun şekilde ölçeklenmesi önemlidir.

Metin Efektleri, Hizalama ve Üç Nokta

Temel biçimlendirmenin yanı sıra, mobil uygulamalarda metin ek görsel efektleri destekler: gölgeler, anahat, üstü çizili ve altı çizili. Bu araçlar tipografinin olanaklarını genişletir ancak okunabilirliği korumak için dikkatli uygulama gerektirir.

Metin Gölgesi ve Anahattı

iOS'ta metin gölgesi, offset, blurRadius ve color ile NSShadow aracılığıyla ayarlanır. Anahat — NSStrokeWidthAttributeName aracılığıyla: negatif değerler anahatla doldurma oluşturur, pozitif değerler yalnızca anahattı oluşturur. Üstü çizili — NSUnderlineStyle (.single, .thick, .double). Android'de TextView gölgesi, android:shadowRadius, android:shadowDx, android:shadowDy aracılığıyla yapılandırılır. SpannableString, StrikethroughSpan ve UnderlineSpan'ı destekler. Android'de metin anahattı, OutlineSpan veya özel bir yazı tipi aracılığıyla uygulanır.

Üç Nokta ve Marquee

Üç nokta, kapsayıcı taştığında metnin üç noktayla kesilmesidir. iOS'ta lineBreakMode .byTruncatingTail ve numberOfLines aracılığıyla yapılandırılır. Android'de — android:ellipsize="end" ve android:maxLines aracılığıyla. Marquee, Android'de android:ellipsize="marquee" aracılığıyla kullanılabilen kayan metin animasyonudur. iOS'ta yerleşik bir eşdeğer yoktur — MarqueeLabel kitaplığı kullanılır. İçerik kırpmasını önlemek için mobil uygulamalardaki tüm tek satırlı metinler için üç nokta zorunludur.

iOS'ta Dynamic Type

Dynamic Type, kullanıcının Erişilebilirlik ayarlarına göre yazı tipi boyutunu ayarlayan iOS'ta uyarlanabilir bir metin sistemidir. Özel yazı tiplerini ölçeklemek için UIFontMetrics kullanın. Dynamic Type, erişilebilirlik uyumlu uygulamalar için zorunludur. Android'de eşdeğer, sistem metin boyutu ayarlarına göre ölçeklenen sp birimleri ve scaledPixels'tır.

Sıkça Sorulan Sorular

NSAttributedString nedir?

NSAttributedString, karakter ve aralık düzeyinde yazı tipi, renk ve stil nitelikleriyle biçimlendirilmiş metin oluşturmak için bir iOS sınıfıdır.

Android'de SpannableString nedir?

SpannableString, Span nesneleri (ForegroundColorSpan, StyleSpan, URLSpan, UnderlineSpan) aracılığıyla metin işaretlemesi için bir Android sınıfıdır.

iOS'a özel yazı tipi nasıl eklenir?

.ttf dosyasını projeye ekleyin, Info.plist'te Fonts provided by application anahtarı altında belirtin ve UIFont(name:) kullanın.

Android'de özel yazı tipi nasıl yüklenir?

.ttf dosyasını res/font/ konumuna yerleştirin, bir XML yazı tipi ailesi oluşturun ve android:fontFamily belirtin veya Typeface.createFromAsset() kullanın.

Kerning ve bitişik harfler nedir?

Kerning, karakter çiftleri arasındaki boşluktur. Bitişik harfler, harf kombinasyonları için özel gliflerdir. NSKernAttributeName ve NSLigatureAttributeName aracılığıyla kontrol edilirler.

Özet

  • NSAttributedString — iOS'ta yazı tiplerini, renkleri, karakter aralığını ve paragraf stillerini destekleyen ana metin biçimlendirme aracı.
  • SpannableString — Span nesnelerini kullanan Android eşdeğeri: StyleSpan (ağırlık), ForegroundColorSpan (renk), URLSpan (bağlantılar).
  • UIFont ve Typeface — iOS ve Android'de yazı tipi sınıfları; özel yazı tipleri sırasıyla Info.plist ve res/font aracılığıyla eklenir.
  • Kerning ve Tracking — karakter aralığını kontrol eder; kerning bireysel çiftler için, tracking metnin tamamı için eşit şekilde.
  • Bitişik harfler — karakter kombinasyonlarını tek gliflerle değiştirir; iOS'ta NSLigatureAttributeName ve Android'de OpenType aracılığıyla kontrol edilir.
  • Değişken Yazı Tipleri ve Dynamic Type — modern teknolojiler: birden çok stil için tek dosya ve kullanıcı ayarlarına otomatik uyum.
  • Mobil geliştirmede tipografi, okunabilirliği sağlamak için yazı tiplerini, satır aralığını, bitişik harfleri, gölgeleri ve üç noktayı içerir.

Anahtar teslim bir mobil uygulama geliştireceğiz

IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.

Projeyi tartış