موبائل ڈیولپمنٹ میں متن اور نوع نگاری: یہ کیا ہے، کون سے اوزار اور کیسے کام کرتا ہے

مصنف: IT Sectr اشاعت: 2026-08-04 مطالعے کا وقت: 10 منٹ

جدید موبائل ایپلیکیشنز کے انٹرفیس بناتے وقت متن کے ساتھ کام کرنا ایک اہم کام ہے۔ فونٹ کے انتخاب سے لے کر حروف کے درمیان فاصلہ ایڈجسٹ کرنے تک — ہر پہلو مصنوعات کے ادراک کو متاثر کرتا ہے۔ Apple NSAttributedString دستاویزات کے مطابق، مناسب متن کی فارمیٹنگ براہ راست پڑھنے کی اہلیت اور انٹرفیس کی رسائی سے متعلق ہے۔

اہم نکات

  • NSAttributedString — فونٹ، رنگ اور فاصلہ کی خصوصیات کے ساتھ فارمیٹ شدہ متن بنانے کے لیے iOS کلاس۔
  • SpannableString — Android پر مساوی جو انفرادی متن کے ٹکڑوں کو اسٹائل کرنے کے لیے Span آبجیکٹ استعمال کرتا ہے۔
  • UIFont اور Typeface — iOS اور Android پر فونٹ کی اہم کلاسیں؛ کسٹم فونٹس Info.plist اور res/font کے ذریعے شامل کیے جاتے ہیں۔
  • کرننگ اور لیگیچر — نوع نگاری کے پیرامیٹرز جو حروف کے درمیان فاصلہ اور ایک گلائف میں ان کے انضمام کو کنٹرول کرتے ہیں۔
  • متغیر فونٹس — ایک فونٹ فائل میں متعدد اسٹائل شامل ہوتے ہیں، جس سے ایپ کا سائز کم ہوتا ہے۔

موبائل ایپس میں متن: iOS پر NSAttributedString

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 سیٹنگ پیراگراف کے درمیان جگہ کی وضاحت کرتی ہے۔

موبائل ایپس میں متن: Android پر SpannableString

SpannableString Android پر متن کی فارمیٹنگ کے لیے مرکزی آلہ ہے۔ یہ Span آبجیکٹ کے میکانزم کے ذریعے کام کرتا ہے، ہر ایک ایک پہلو کے لیے ذمہ دار ہے: StyleSpan بولڈ یا اٹالک کے لیے، ForegroundColorSpan رنگ کے لیے، URLSpan لنکس کے لیے، UnderlineSpan انڈر لائن کے لیے۔ SpannableStringBuilder NSMutableAttributedString کے مساوی ہے، جو متعدد ٹکڑوں سے متن بنانے کی اجازت دیتا ہے۔ موبائل ایپس میں فارمیٹ شدہ متن کے ساتھ لچکدار انٹرفیس بنانے کے لیے SpannableString کو سمجھنا ضروری ہے۔

Android پر Typeface اور کسٹم فونٹس

Typeface Android پر فونٹس کے ساتھ کام کرنے کے لیے کلاس ہے۔ یہ سسٹم ٹائپ فیسس Roboto اور Noto کے ساتھ ساتھ کسٹم فونٹس کو بھی سپورٹ کرتی ہے۔ Typeface.createFromResource() res/font/ سے فونٹ لوڈ کرتا ہے، Typeface.createFromAsset() اثاثہ جات فولڈر سے لوڈ کرتا ہے۔ Android 8.0+ XML میں فونٹ فیملیز کو سپورٹ کرتا ہے، متعدد فونٹ فائلوں کو ایک وسائل میں یکجا کرتا ہے۔ Android پر موبائل ایپس میں متن کے لیے کسٹم فونٹ android:fontFamily وصف کے ذریعے یا پروگرام کے ذریعے setTypeface() استعمال کرکے سیٹ کیا جاتا ہے۔

TextMeasurer اور متن کی پیمائش

TextMeasurer (API 29+) View سے منسلک ہوئے بغیر متن کی پیمائش کرنے کا ایک جدید آلہ ہے۔ یہ رینڈرنگ سے پہلے چوڑائی، اونچائی اور حرف کی پوزیشنوں کا حساب لگاتا ہے۔ پرانی API پر، ایک لائن والے متن کے لیے Paint.measureText() یا کثیر لائن والے متن کے لیے StaticLayout استعمال کیا جاتا ہے۔ TextMeasurer خاص طور پر کسٹم Views میں مفید ہے جہاں 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 پر — TextView کی letterSpacing پراپرٹی کے ذریعے۔ منفی اقدار حروف کو قریب لاتی ہیں، مثبت اقدار انہیں پھیلاتی ہیں۔ موبائل ڈیولپمنٹ میں نوع نگاری کے لیے ان پیرامیٹرز کی احتیاط سے ترتیب کی ضرورت ہوتی ہے: بڑی سرخیوں کے لیے حرف فاصلہ عام طور پر بڑھایا جاتا ہے، باڈی ٹیکسٹ کے لیے یہ معیاری رہتا ہے۔

پیرامیٹرiOSAndroid
اسٹائلائزڈ سٹرنگNSAttributedStringSpannableString
فونٹUIFont / CTFontTypeface
حرف فاصلہNSKernAttributeNameletterSpacing
لائن فاصلہlineSpacinglineSpacingExtra
لیگیچرNSLigatureAttributeNameOpenType خصوصیات
بیضوی نشانlineBreakMode .byTruncatingTailandroid:ellipsize

لیگیچر

لیگیچر خاص گلائف ہیں جو دو یا زیادہ حروف (fi، fl، ffi) کے مجموعے کو بدل دیتے ہیں۔ iOS پر، لیگیچر NSLigatureAttributeName کے ذریعے کنٹرول کیے جاتے ہیں: 0 — غیر فعال، 1 — معیاری، 2 — تمام دستیاب۔ Android پر، لیگیچر OpenType خصوصیات کے ذریعے فونٹ کی سطح پر کنٹرول کیے جاتے ہیں۔ لیگیچر کو فعال کرنے سے متن کی ظاہری شکل بہتر ہوتی ہے، خاص طور پر سیریف ٹائپ فیسس میں۔ موبائل ڈیولپمنٹ میں نوع نگاری بنیادی طور پر سرخیوں اور لوگو کے لیے لیگیچر استعمال کرتی ہے۔

موبائل ایپس میں کسٹم فونٹس: لوڈنگ اور کنفیگریشن

کسٹم فونٹس ایپ کے لیے منفرد بصری اسٹائل بنانے کے اہم اوزاروں میں سے ایک ہیں۔ وہ برانڈ کو نمایاں کرنے اور صارف کے تجربے کو بہتر بنانے میں مدد کرتے ہیں۔ موبائل ایپس میں، کسٹم فونٹس سرخیوں، لوگو، زور دینے والے عناصر اور کارپوریٹ شناخت کے لیے استعمال ہوتے ہیں۔

متغیر فونٹس

متغیر فونٹس ایک جدید فونٹ ٹیکنالوجی ہے جہاں ایک فائل میں متعدد اسٹائل شامل ہوتے ہیں: پتلے سے انتہائی بولڈ تک، تنگ سے چوڑے تک۔ یہ کئی فونٹ فائلوں کو ایک سے بدل کر ایپ کا سائز کم کرتا ہے۔ iOS پر، متغیر فونٹس weight پیرامیٹر کے ساتھ UIFont کے ذریعے سپورٹ کیے جاتے ہیں۔ Android پر — تبدیلی کے محور wght، wdth، slnt کی وضاحت کرنے والے Typeface.Builder کے ذریعے۔ متغیر فونٹس کا استعمال موبائل ایپس میں نوع نگاری کو آسان بناتا ہے: ڈیولپر کو ہر اسٹائل کے لیے علیحدہ فائلیں لوڈ کرنے کی ضرورت نہیں ہے۔

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

NSTextAttachment اور ImageSpan

iOS پر NSTextAttachment NSAttributedString کے اندر UIImage ایمبیڈ کرنے کی اجازت دیتا ہے — تصویر بیس لائن کے ساتھ سیدھ میں آتی ہے اور متن کے ساتھ چلتی ہے۔ Android پر، مساوی SpannableString کے اندر ImageSpan ہے۔ دونوں طریقے ایموجیز کے ساتھ چیٹ، آئیکنز کے ساتھ نیوز فیڈز اور کسٹم چیک باکس والے فارمز کے لیے مفید ہیں۔ تصویر کو فونٹ کی اونچائی سے ملانے کے لیے مناسب طریقے سے اسکیل کرنا ضروری ہے تاکہ متن اور گرافکس ہم آہنگ نظر آئیں۔

متن کے اثرات، سیدھ اور بیضوی نشان

بنیادی فارمیٹنگ کے علاوہ، موبائل ایپس میں متن اضافی بصری اثرات کو سپورٹ کرتا ہے: سائے، آؤٹ لائن، اسٹرائک تھرو اور انڈر لائن۔ یہ اوزار نوع نگاری کے امکانات کو بڑھاتے ہیں لیکن پڑھنے کی اہلیت برقرار رکھنے کے لیے احتیاط سے استعمال کی ضرورت ہوتی ہے۔

متن کا سایہ اور آؤٹ لائن

iOS پر متن کا سایہ offset، blurRadius اور color کے ساتھ NSShadow کے ذریعے سیٹ کیا جاتا ہے۔ آؤٹ لائن — NSStrokeWidthAttributeName کے ذریعے: منفی اقدار آؤٹ لائن کے ساتھ بھرائی بناتی ہیں، مثبت اقدار صرف خاکہ بناتی ہیں۔ اسٹرائک تھرو — NSUnderlineStyle (.single، .thick، .double)۔ Android پر، TextView کا سایہ android:shadowRadius، android:shadowDx، android:shadowDy کے ذریعے کنفیگر کیا جاتا ہے۔ SpannableString StrikethroughSpan اور UnderlineSpan کو سپورٹ کرتی ہے۔ Android پر متن کا آؤٹ لائن OutlineSpan یا کسٹم فونٹ کے ذریعے لاگو کیا جاتا ہے۔

بیضوی نشان اور مارکی

بیضوی نشان کنٹینر کے بہاو¿ پر بیضوی نشان کے ساتھ متن کی کٹائی ہے۔ iOS پر، یہ lineBreakMode .byTruncatingTail اور numberOfLines کے ذریعے کنفیگر کیا جاتا ہے۔ Android پر — android:ellipsize="end" اور android:maxLines کے ذریعے۔ مارکی ایک اسکرولنگ ٹیکسٹ اینیمیشن ہے جو Android پر android:ellipsize="marquee" کے ذریعے دستیاب ہے۔ iOS پر، کوئی بلٹ ان مساوی نہیں ہے — MarqueeLabel لائبریری استعمال کی جاتی ہے۔ مواد کی کٹائی سے بچنے کے لیے موبائل ایپس میں تمام ایک لائن والے متن کے لیے بیضوی نشان لازمی ہے۔

iOS پر Dynamic Type

Dynamic Type iOS میں ایک انکولی متن کا نظام ہے جو صارف کی رسائی کی ترتیبات کی بنیاد پر فونٹ کا سائز ایڈجسٹ کرتا ہے۔ کسٹم فونٹس کو اسکیل کرنے کے لیے UIFontMetrics استعمال کریں۔ Dynamic Type رسائی کے مطابق ایپس کے لیے لازمی ہے۔ Android پر، مساوی sp یونٹس اور scaledPixels ہیں، جو سسٹم کے متن کے سائز کی ترتیبات کے مطابق اسکیل ہوتے ہیں۔

اکثر پوچھے گئے سوالات

NSAttributedString کیا ہے؟

NSAttributedString ایک iOS کلاس ہے جو حرف اور رینج کی سطح پر فونٹ، رنگ اور اسٹائل کی خصوصیات کے ساتھ فارمیٹ شدہ متن بنانے کے لیے ہے۔

Android پر SpannableString کیا ہے؟

SpannableString Span آبجیکٹ (ForegroundColorSpan، StyleSpan، URLSpan، UnderlineSpan) کے ذریعے متن کو نشان زد کرنے کے لیے ایک Android کلاس ہے۔

iOS میں کسٹم فونٹ کیسے شامل کریں؟

.ttf فائل کو پروجیکٹ میں شامل کریں، اسے Info.plist میں Fonts provided by application کلید کے تحت بتائیں، پھر UIFont(name:) استعمال کریں۔

Android پر کسٹم فونٹ کیسے لوڈ کریں؟

.ttf فائل کو res/font/ میں رکھیں، ایک XML فونٹ فیملی بنائیں، اور android:fontFamily بتائیں یا Typeface.createFromAsset() استعمال کریں۔

کرننگ اور لیگیچر کیا ہیں؟

کرننگ حرف جوڑوں کے درمیان جگہ ہے۔ لیگیچر حرفوں کے مجموعوں کے لیے خاص گلائف ہیں۔ یہ NSKernAttributeName اور NSLigatureAttributeName کے ذریعے کنٹرول کیے جاتے ہیں۔

خلاصہ

  • NSAttributedString — iOS پر متن کی فارمیٹنگ کا مرکزی آلہ، جو فونٹس، رنگوں، حرف فاصلہ اور پیراگراف اسٹائل کو سپورٹ کرتا ہے۔
  • SpannableString — Span آبجیکٹ استعمال کرنے والا Android مساوی: وزن کے لیے StyleSpan، رنگ کے لیے ForegroundColorSpan، لنکس کے لیے URLSpan۔
  • UIFont اور Typeface — iOS اور Android پر فونٹ کلاسز؛ کسٹم فونٹس بالترتیب Info.plist اور res/font کے ذریعے شامل کیے جاتے ہیں۔
  • کرننگ اور ٹریکنگ — حرف فاصلہ کنٹرول کرتے ہیں؛ کرننگ انفرادی جوڑوں کے لیے، ٹریکنگ پورے متن کے لیے یکساں۔
  • لیگیچر — حرفوں کے مجموعوں کو ایک گلائف سے بدل دیتے ہیں؛ iOS پر NSLigatureAttributeName اور Android پر OpenType کے ذریعے کنٹرول کیے جاتے ہیں۔
  • متغیر فونٹس اور Dynamic Type — جدید ٹیکنالوجیز: ایک فائل میں متعدد اسٹائل اور صارف کی ترتیبات کے مطابق خودکار موافقت۔
  • موبائل ڈیولپمنٹ میں نوع نگاری پڑھنے کی اہلیت کو یقینی بنانے کے لیے فونٹس، لائن فاصلہ، لیگیچر، سائے اور بیضوی نشان شامل کرتی ہے۔

ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے

IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔

پروجیکٹ پر بحث کریں