صارف کا ان پٹ موبائل ایپلیکیشن کے ساتھ صارف کے تعامل کی بنیاد ہے۔ پروڈکٹ کے استعمال میں آسانی کا انحصار iOS پر UITextField، Android پر EditText اور موبائل ایپلیکیشنز میں کی بورڈز کے درست نفاذ پر ہے۔ Apple HIG کے مطابق، صارف کے ان پٹ کا غلط ہینڈلنگ منفی جائزوں کی ایک عام وجہ ہے۔
اہم نکات
موبائل ایپلیکیشنز میں صارف کا ان پٹ ٹچ اسکرین اور ورچوئل کی بورڈ کے ذریعے صارف سے ایپلیکیشن میں ڈیٹا منتقل کرنے کا عمل ہے۔ iOS پر، بنیادی ٹول UITextField ہے؛ Android پر، یہ EditText ہے۔ صارف کے ان پٹ میں ٹیکسٹ فیلڈز، رجسٹریشن فارمز، سرچ سوالات، فون نمبر اور تصدیقی کوڈ شامل ہیں۔ صارف کے ان پٹ کے نفاذ کا معیار فارم بھرنے کی رفتار اور موبائل ایپ کی تبدیلی کو متاثر کرتا ہے۔
موبائل ڈیولپمنٹ میں صارف کے ان پٹ کا غلط ہینڈلنگ توثیقی غلطیوں، کمزوریوں اور صارف کے نقصان کا باعث بنتا ہے۔ Statista (2025) کے مطابق، 67% صارفین دو ناکام ان پٹ کوششوں کے بعد موبائل ایپ کو حذف کر دیتے ہیں۔ صحیح صارف کے ان پٹ کے نفاذ میں کی بورڈ کی قسم کی تشکیل، توثیق، فارمیٹنگ اور خودکار پُر کرنا شامل ہے۔ موبائل ڈیولپمنٹ میں، یہ پہلو دونوں پلیٹ فارمز کے ذریعے معیاری بنائے گئے ہیں۔
موبائل ایپلیکیشنز میں کی بورڈ iOS پر keyboardType اور Android پر inputType کے ذریعے ترتیب دیا جاتا ہے۔ صارف کی ترتیبات میں خودکار تصحیح، خودکار پُر کرنا اور محفوظ پاس ورڈ انٹری شامل ہیں۔ iOS پر Responder Chain اور Android پر فوکس کی بورڈ کے ظاہر اور چھپانے کو کنٹرول کرتے ہیں۔ موبائل ایپلیکیشنز میں صارف کے ان پٹ کے لیے، Keyboard Avoidance اہم ہے — مواد کی بورڈ سے چھپا نہیں ہونا چاہیے۔
iOS پر، اہم صارف کے ان پٹ عناصر سنگل لائن ٹیکسٹ کے لیے UITextField اور ملٹی لائن ٹیکسٹ کے لیے UITextView ہیں۔ دونوں ترمیم کے شروع، تبدیلی اور اختتام کو منظم کرنے کے لیے UITextFieldDelegate اور UITextViewDelegate ڈیلیگیٹس کو سپورٹ کرتے ہیں۔ iOS موبائل ایپس میں کی بورڈ کی تشکیل keyboardType، returnKeyType اور isSecureTextEntry خصوصیات کے ذریعے کی جاتی ہے۔
textContentType خاصیت سسٹم کو اشارہ کرتی ہے کہ فیلڈ میں کون سا ڈیٹا متوقع ہے — username، password، oneTimeCode، emailAddress۔ یہ کیچین سے خودکار پُر کرنے کو فعال کرتا ہے اور صارف کے ان پٹ کو تیز کرتا ہے۔ Secure Text Entry والے فیلڈز کے لیے، .password بتائیں تاکہ پاس ورڈ مینیجر اسناد کو صحیح طریقے سے محفوظ کرے۔ textContentType کا استعمال موبائل ایپلیکیشنز میں صارف کے ان پٹ کو بہتر بناتا ہے۔
let textField = UITextField()
textField.placeholder = "Email"
textField.keyboardType = .emailAddress
textField.textContentType = .emailAddress
textField.autocorrectionType = .no
textField.becomeFirstResponder()
First Responder فعال فیلڈ ہے جو کی بورڈ سے واقعات حاصل کرتا ہے۔ becomeFirstResponder() کال کرنے سے کی بورڈ ظاہر ہوتا ہے، resignFirstResponder() اسے چھپاتا ہے۔ Responder Chain ترتیب وار چیک کرتی ہے کہ آیا کوئی عنصر کسی واقعہ کو ہینڈل کر سکتا ہے۔ جب متعدد فیلڈز ہوں، تو First Responder کو منظم کرنا ضروری ہے تاکہ کی بورڈ کھلا نہ رہے۔ موبائل ایپلیکیشنز میں صارف کا ان پٹ textFieldShouldReturn کے ذریعے بھی منظم کیا جاتا ہے — Return دبانے سے اگلے فیلڈ پر سوئچ ہوتا ہے۔
Android پر، UITextField کا مشابہ EditText ہے، جو inputType وصف کے ذریعے سنگل لائن اور ملٹی لائن موڈ کو سپورٹ کرتا ہے۔ Material فیلڈز کے لیے، com.google.android.material لائبریری سے TextInputLayout استعمال کریں — یہ فلوٹنگ ہنٹ، کریکٹر کاؤنٹر اور خرابی کی سپورٹ شامل کرتا ہے۔ Android موبائل ایپس میں صارف کا ان پٹ inputType اور imeOptions کے ذریعے ترتیب دیا جاتا ہے۔
inputType وصف کی بورڈ کی قسم اور ان پٹ موڈ کا تعین کرتا ہے: عام ٹیکسٹ کے لیے text، پاس ورڈز کے لیے textPassword، ہندسوں کے لیے number، فون کی پیڈ کے لیے phone۔ imeOptions انٹر بٹن پر عمل کو کنٹرول کرتا ہے — Done، Next, Search, Send۔ اقدار کو بٹ وائز OR کے ساتھ ملائیں: text|textCapSentences۔ Android موبائل ایپلیکیشنز میں کی بورڈز autofillHints کے ذریعے خودکار پُر کرنے کو سپورٹ کرتے ہیں۔
val editText = EditText(this)
editText.inputType = InputType.TYPE_CLASS_PHONE
editText.imeOptions = EditorInfo.IME_ACTION_DONE
editText.autofillHints = "phone"
val layout = TextInputLayout(this)
layout.hint = "Номер телефона"
layout.addView(editText)
TextInputLayout.setError() ان پٹ فیلڈ کے نیچے ایک خرابی کا پیغام دکھاتا ہے۔ TextWatcher کے ذریعے فوری توثیق اور فارم جمع کروانے پر حتمی توثیق کو یکجا کریں۔ موبائل ایپلیکیشنز میں صارف کے ان پٹ میں فوکس بھی شامل ہے — requestFocus() فیلڈ کو فعال کرتا ہے اور کی بورڈ دکھاتا ہے۔ Android پر صارف کے ان پٹ کے مکمل ہونے پر کی بورڈ چھپانے کے لیے clearFocus() استعمال کریں۔
موبائل ایپلیکیشنز میں کی بورڈ کو ان پٹ فیلڈز کو نہیں ھپانا چاہیے — یہ ایک بنیادی UX ضرورت ہے۔ Keyboard Avoidance کی بورڈ ظاہر ہونے پر مواد کو منتقل کرنے کی تکنیک ہے۔ iOS پر، کی بورڈ کا سائز حاصل کرنے اور scrollView کو منتقل کرنے کے لیے UIResponder.keyboardWillShowNotification استعمال کریں۔ Android پر، مینی فیسٹ میں adjustResize بتائیں یا CoordinatorLayout استعمال کریں۔ موبائل ایپلیکیشنز میں کی بورڈز دو پلیٹ فارمز پر مختلف طریقے سے ترتیب دیے جاتے ہیں، لیکن مقصد ایک ہی ہے — مواد ہمیشہ نظر آتا ہے۔
iOS پر، NotificationCenter کے ذریعے keyboardWillShowNotification اور keyboardWillHideNotification اطلاعات کو سبسکرائب کریں۔ ہینڈلر میں، userInfo سے کی بورڈ کا سائز حاصل کریں اور UIScrollView پر contentInset سیٹ کریں۔ متبادل طور پر، IQKeyboardManager استعمال کریں، جو خود بخود منتقلی کو ہینڈل کرتا ہے۔ iOS موبائل ڈیولپمنٹ میں صارف کے ان پٹ کے لیے آرام دہ UX کے لیے لازمی کی بورڈ ہینڈلنگ کی ضرورت ہے۔
Android پر، اہم طریقہ مینی فیسٹ میں android:windowSoftInputMode="adjustResize" بتانا ہے۔ یہ پرچم کی بورڈ ظاہر ہونے پر لے آؤٹ کو سکیڑتا ہے۔ CoordinatorLayout کے لیے، Behavior استعمال کریں جو بٹن اور فیلڈز کو اٹھاتا ہے۔ عین انسیٹ کنٹرول کے لیے ViewCompat.setOnApplyWindowInsetsListener استعمال کریں۔ Android موبائل ایپ میں کی بورڈ OnGlobalLayoutListener کے ذریعے بھی منظم کیا جاتا ہے۔
صارف کے ان پٹ کی توثیق موبائل ایپلیکیشنز میں ڈیٹا پروسیسنگ کا ایک لازمی مرحلہ ہے۔ اس کے بغیر، ایپ غلط ڈیٹا حاصل کرتی ہے، جو غلطیوں اور کمزوریوں کا باعث بنتا ہے۔ موبائل ایپلیکیشنز میں صارف کے ان پٹ کے لیے دو طریقوں کی ضرورت ہے: نمبروں اور کوڈز کے لیے فوری توثیق (ہر حرف پر)، اور ای میل اور پاس ورڈ کے لیے حتمی توثیق۔ Input Mask خود بخود فون، تاریخ اور کارڈ نمبر کو فارمیٹ کرتا ہے۔
Input Mask ایک ان پٹ پیٹرن کی وضاحت کرتا ہے جس کے مطابق ٹیکسٹ خود بخود فارمیٹ ہوتا ہے۔ روسی فون نمبر کے لیے ماسک کی مثال: "+7 (___) ___-__-__"۔ iOS پر، Input Mask ڈیلیگیٹ textField(_:shouldChangeCharactersIn:replacementString:) کے ذریعے نافذ کیا جاتا ہے۔ Android پر، کریکٹر پوزیشن ٹریکنگ کے ساتھ InputFilter استعمال کریں۔ بین الاقوامی نمبروں کے لیے، Google کی libphonenumber لائبریری استعمال کریں۔
func textField(
_ textField: UITextField,
shouldChangeCharactersIn range: NSRange,
replacementString string: String
) -> Bool {
guard let text = textField.text else { return true }
let masked = applyPhoneMask(text, mask: "+7 (***) ***-**-**")
textField.text = masked
return false
}
| پیرامیٹر | iOS | Android |
|---|---|---|
| سنگل لائن فیلڈ | UITextField | EditText |
| ملٹی لائن فیلڈ | UITextView | EditText + textMultiLine |
| فلوٹنگ ہنٹ | attributedPlaceholder | TextInputLayout |
| کی بورڈ کی قسم | keyboardType | inputType |
| محفوظ ان پٹ | isSecureTextEntry | textPassword |
| خودکار پُر کرنا | textContentType | autofillHints |
| ڈیلیگیٹ یا Listener | UITextFieldDelegate | TextWatcher |
| توثیقی خرابی | کسٹم UILabel | TextInputLayout.setError() |
اکثر پوچھے گئے سوالات
UITextField یا UITextView پر becomeFirstResponder() کال کریں۔ اسے چھپانے کے لیے resignFirstResponder() استعمال کریں۔ یقینی بنائیں کہ فیلڈ نظر آرہا ہے اور مسدود نہیں ہے۔
inputType کی بورڈ کی قسم (ٹیکسٹ، ہندسے، ای میل) کا تعین کرتا ہے۔ imeOptions انٹر بٹن پر عمل (Done, Next, Search) کو کنٹرول کرتا ہے۔ یہ آزادانہ طور پر کام کرتے ہیں اور اکثر یکجا کیے جاتے ہیں۔
ڈیلیگیٹ textField(_:shouldChangeCharactersIn:replacementString:) استعمال کریں اور دستی طور پر ٹیکسٹ فارمیٹ کریں۔ یا "+7 ([000]) [000]-[00]-[00]" جیسے پیٹرن کے ساتھ InputMask لائبریری استعمال کریں۔
مینی فیسٹ میں android:windowSoftInputMode="adjustResize" بتائیں۔ اگر CoordinatorLayout استعمال کر رہے ہیں، تو بٹن اور فیلڈز اٹھانے کے لیے Behavior کنفیگریشن چیک کریں۔
iOS پر textContentType = .oneTimeCode استعمال کریں۔ Android پر autofillHints = "smsCode" استعمال کریں۔ سسٹم وصول ہونے پر SMS سے خود بخود کوڈ پُر کر دے گا۔
خلاصہ
ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے
IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔