Teks dan Tipografi dalam Pengembangan Seluler: Apa Itu, Alat Apa, dan Cara Kerjanya

Penulis: IT Sectr Diterbitkan: 2026-08-04 Waktu membaca: 10 mnt

Bekerja dengan teks adalah tugas utama saat membuat antarmuka aplikasi seluler modern. Dari pemilihan font hingga penyesuaian jarak antar karakter — setiap aspek memengaruhi persepsi produk. Menurut Dokumentasi Apple NSAttributedString, format teks yang tepat terkait langsung dengan keterbacaan dan aksesibilitas antarmuka.

Poin Penting

  • NSAttributedString — kelas iOS untuk membuat teks terformat dengan atribut font, warna, dan jarak.
  • SpannableString — padanan di Android yang menggunakan objek Span untuk menata potongan teks individual.
  • UIFont dan Typeface — kelas font utama di iOS dan Android; font kustom ditambahkan melalui Info.plist dan res/font.
  • Kerning dan ligatur — parameter tipografis yang mengontrol jarak antar karakter dan penggabungannya menjadi satu glyph.
  • Font Variabel — satu file font berisi banyak gaya, mengurangi ukuran aplikasi.

Teks dalam Aplikasi Seluler: NSAttributedString di iOS

NSAttributedString adalah kelas fundamental iOS untuk bekerja dengan teks terformat. Ini memungkinkan penerapan atribut ke karakter atau rentang individual: font melalui UIFont, warna melalui UIColor, jarak karakter melalui kern, dan jarak baris melalui NSMutableParagraphStyle. Dalam aplikasi seluler, NSAttributedString digunakan di mana-mana — dari UILabel hingga UITextView kompleks dengan dukungan pengeditan.

UIFont dan Konfigurasi Font

UIFont adalah kelas utama untuk bekerja dengan font di iOS. Ini mendukung font sistem, font kustom, dan Dynamic Type. UIFont(name:size:) memuat font berdasarkan nama, UIFont.systemFont(ofSize:weight:) memuat font sistem. UIFontDescriptor memungkinkan modifikasi font yang ada: mengubah ukuran, berat, atau menambahkan matriks transformasi. Untuk font kustom, file .ttf ditambahkan ke proyek dan didaftarkan di Info.plist di bawah kunci 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 dan Format Paragraf

NSMutableParagraphStyle adalah versi yang dapat diubah dari ParagraphStyle untuk mengonfigurasi tampilan paragraf. Ini mengontrol perataan (alignment), jarak baris (lineSpacing), indentasi (headIndent, tailIndent), dan mode pemotongan (lineBreakMode). ParagraphStyle sangat penting untuk keterbacaan teks panjang di perangkat seluler: lineSpacing yang tepat mencegah penggabungan baris, dan lineBreakMode mencegah pemotongan kata. Pengaturan paragraphSpacing menentukan jarak antar paragraf.

Teks dalam Aplikasi Seluler: SpannableString di Android

SpannableString adalah alat utama untuk format teks di Android. Ini bekerja melalui mekanisme objek Span, masing-masing bertanggung jawab atas satu aspek: StyleSpan untuk tebal atau miring, ForegroundColorSpan untuk warna, URLSpan untuk tautan, UnderlineSpan untuk garis bawah. SpannableStringBuilder adalah padanan NSMutableAttributedString, memungkinkan pembangunan teks dari beberapa fragmen. Memahami SpannableString sangat penting untuk membuat antarmuka yang fleksibel dengan teks terformat dalam aplikasi seluler.

Typeface dan Font Kustom di Android

Typeface adalah kelas untuk bekerja dengan font di Android. Ini mendukung font sistem Roboto dan Noto, serta font kustom. Typeface.createFromResource() memuat font dari res/font/, Typeface.createFromAsset() dari folder assets. Android 8.0+ mendukung keluarga font dalam XML, menggabungkan beberapa file font menjadi satu sumber daya. Font kustom untuk teks dalam aplikasi seluler di Android diatur melalui atribut android:fontFamily atau secara terprogram menggunakan setTypeface().

TextMeasurer dan Pengukuran Teks

TextMeasurer (API 29+) adalah alat modern untuk mengukur teks tanpa terikat ke View. Ini menghitung lebar, tinggi, dan posisi karakter sebelum rendering. Di API lama, Paint.measureText() digunakan untuk teks satu baris atau StaticLayout untuk teks multi-baris. TextMeasurer sangat berguna dalam View kustom di mana teks digambar melalui Canvas.drawText(). Pengukuran yang tepat mencegah pemotongan karakter dalam antarmuka.

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

Tipografi dalam Pengembangan Seluler: Kerning, Ligatur, dan Tracking

Tipografi dalam aplikasi seluler adalah konfigurasi komprehensif font, jarak karakter, dan jarak baris. Tipografi yang tepat dalam pengembangan seluler secara langsung memengaruhi keterbacaan teks dan persepsi visual antarmuka. Mari kita lihat parameter utama yang tersedia di kedua platform.

Kerning dan Tracking

Kerning adalah penyesuaian jarak antara pasangan karakter tertentu (AV, To, Wa). Tracking adalah jarak karakter seragam untuk seluruh teks atau sebagian darinya. Di iOS, kerning diatur melalui NSKernAttributeName, di Android — melalui properti letterSpacing dari TextView. Nilai negatif mendekatkan karakter, nilai positif menjauhkannya. Tipografi dalam pengembangan seluler memerlukan penyesuaian yang cermat dari parameter ini: untuk judul besar, jarak karakter biasanya ditingkatkan, untuk teks tubuh tetap standar.

ParameteriOSAndroid
String BergayaNSAttributedStringSpannableString
FontUIFont / CTFontTypeface
Jarak KarakterNSKernAttributeNameletterSpacing
Jarak BarislineSpacinglineSpacingExtra
LigaturNSLigatureAttributeNameFitur OpenType
ElipsislineBreakMode .byTruncatingTailandroid:ellipsize

Ligatur

Ligatur adalah glyph khusus yang menggantikan kombinasi dua atau lebih karakter: fi, fl, ffi. Di iOS, ligatur dikontrol melalui NSLigatureAttributeName: 0 — dinonaktifkan, 1 — standar, 2 — semua tersedia. Di Android, ligatur dikontrol di tingkat font melalui fitur OpenType. Mengaktifkan ligatur meningkatkan tampilan teks, terutama dalam font serif. Tipografi dalam pengembangan seluler menggunakan ligatur terutama untuk judul dan logo.

Font Kustom dalam Aplikasi Seluler: Memuat dan Konfigurasi

Font kustom adalah salah satu alat utama untuk menciptakan gaya visual unik untuk aplikasi. Mereka membantu menonjolkan merek dan meningkatkan pengalaman pengguna. Dalam aplikasi seluler, font kustom digunakan untuk judul, logo, elemen aksen, dan identitas perusahaan.

Font Variabel

Font Variabel adalah teknologi font modern di mana satu file berisi banyak gaya: dari tipis hingga ekstra tebal, dari sempit hingga lebar. Ini mengurangi ukuran aplikasi dengan mengganti beberapa file font dengan satu. Di iOS, Font Variabel didukung melalui UIFont dengan parameter weight. Di Android — melalui Typeface.Builder yang menentukan sumbu variabilitas wght, wdth, slnt. Menggunakan Font Variabel menyederhanakan tipografi dalam aplikasi seluler: pengembang tidak perlu memuat file terpisah untuk setiap gaya.

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

NSTextAttachment dan ImageSpan

NSTextAttachment di iOS memungkinkan penyematan UIImage di dalam NSAttributedString — gambar sejajar dengan garis dasar dan bergerak bersama teks. Di Android, padanannya adalah ImageSpan di dalam SpannableString. Kedua pendekatan berguna untuk obrolan dengan emoji, umpan berita dengan ikon, dan formulir dengan kotak centang kustom. Penting untuk menskalakan gambar dengan benar agar sesuai dengan tinggi font sehingga teks dan grafik terlihat harmonis.

Efek Teks, Perataan, dan Elipsis

Selain format dasar, teks dalam aplikasi seluler mendukung efek visual tambahan: bayangan, garis luar, coretan, dan garis bawah. Alat-alat ini memperluas kemungkinan tipografi tetapi memerlukan penerapan yang cermat untuk menjaga keterbacaan.

Bayangan dan Garis Luar Teks

Bayangan teks di iOS diatur melalui NSShadow dengan offset, blurRadius, dan color. Garis luar — melalui NSStrokeWidthAttributeName: nilai negatif membuat isian dengan garis luar, nilai positif hanya membuat kontur. Coretan — NSUnderlineStyle (.single, .thick, .double). Di Android, bayangan TextView dikonfigurasi melalui android:shadowRadius, android:shadowDx, android:shadowDy. SpannableString mendukung StrikethroughSpan dan UnderlineSpan. Garis luar teks di Android diimplementasikan melalui OutlineSpan atau font kustom.

Elipsis dan Marquee

Elipsis adalah pemotongan teks dengan elipsis ketika wadah meluap. Di iOS, dikonfigurasi melalui lineBreakMode .byTruncatingTail dan numberOfLines. Di Android — melalui android:ellipsize="end" dan android:maxLines. Marquee adalah animasi teks bergulir yang tersedia di Android melalui android:ellipsize="marquee". Di iOS, tidak ada padanan bawaan — pustaka MarqueeLabel digunakan. Elipsis wajib untuk semua teks satu baris dalam aplikasi seluler untuk menghindari pemotongan konten.

Dynamic Type di iOS

Dynamic Type adalah sistem teks adaptif di iOS yang menyesuaikan ukuran font berdasarkan pengaturan Aksesibilitas pengguna. Gunakan UIFontMetrics untuk menskalakan font kustom. Dynamic Type wajib untuk aplikasi yang sesuai dengan Aksesibilitas. Di Android, padanannya adalah unit sp dan scaledPixels, yang berskala sesuai dengan pengaturan ukuran teks sistem.

Pertanyaan yang Sering Diajukan

Apa itu NSAttributedString?

NSAttributedString adalah kelas iOS untuk membuat teks terformat dengan atribut font, warna, dan gaya di tingkat karakter dan rentang.

Apa itu SpannableString di Android?

SpannableString adalah kelas Android untuk markup teks melalui objek Span: ForegroundColorSpan, StyleSpan, URLSpan, UnderlineSpan.

Bagaimana cara menambahkan font kustom di iOS?

Tambahkan file .ttf ke proyek, tentukan di Info.plist di bawah kunci Fonts provided by application, lalu gunakan UIFont(name:).

Bagaimana cara memuat font kustom di Android?

Tempatkan file .ttf di res/font/, buat keluarga font XML, dan tentukan android:fontFamily atau gunakan Typeface.createFromAsset().

Apa itu kerning dan ligatur?

Kerning adalah jarak antara pasangan karakter. Ligatur adalah glyph khusus untuk kombinasi huruf. Keduanya dikontrol melalui NSKernAttributeName dan NSLigatureAttributeName.

Ringkasan

  • NSAttributedString — alat format teks utama di iOS, mendukung font, warna, jarak karakter, dan gaya paragraf.
  • SpannableString — padanan Android menggunakan objek Span: StyleSpan untuk berat, ForegroundColorSpan untuk warna, URLSpan untuk tautan.
  • UIFont dan Typeface — kelas font di iOS dan Android; font kustom ditambahkan melalui Info.plist dan res/font masing-masing.
  • Kerning dan Tracking — mengontrol jarak karakter; kerning untuk pasangan individu, tracking seragam untuk seluruh teks.
  • Ligatur — menggantikan kombinasi karakter dengan glyph tunggal; dikontrol melalui NSLigatureAttributeName di iOS dan OpenType di Android.
  • Font Variabel dan Dynamic Type — teknologi modern: satu file untuk banyak gaya dan adaptasi otomatis ke pengaturan pengguna.
  • Tipografi dalam pengembangan seluler mencakup font, jarak baris, ligatur, bayangan, dan elipsis untuk memastikan keterbacaan.

Kami akan mengembangkan aplikasi seluler turnkey

IT Sectr membuat aplikasi iOS dan Android untuk startup dan bisnis sejak 2017. Kami akan memberi saran dan mengusulkan solusi terbaik.

Diskusikan proyek