Foydalanuvchi kiritishi mobil ilova bilan foydalanuvchi o'zaro aloqasining asosidir. Mahsulotning foydalanish qulayligi iOS-da UITextField, Android-da EditText va mobil ilovalarda klaviaturalarning to'g'ri tatbiq etilishiga bog'liq. Apple HIG ga ko'ra, foydalanuvchi kiritishini noto'g'ri boshqarish salbiy sharhlarning keng tarqalgan sababidir.
Asosiy fikrlar
Mobil ilovalarda foydalanuvchi kiritishi sensorli ekran va virtual klaviatura orqali foydalanuvchidan ilovaga ma'lumot uzatish jarayonidir. iOS-da asosiy vosita UITextField, Android-da esa EditText. Foydalanuvchi kiritishi matn maydonlari, ro'yxatdan o'tish shakllari, qidiruv so'rovlari, telefon raqamlari va tasdiqlash kodlarini o'z ichiga oladi. Foydalanuvchi kiritishini tatbiq etish sifati shakllarni to'ldirish tezligi va mobil ilova konversiyasiga ta'sir qiladi.
Mobil ishlanmada foydalanuvchi kiritishini noto'g'ri boshqarish tekshirish xatolariga, zaifliklarga va foydalanuvchi yo'qotilishiga olib keladi. Statista (2025) ga ko'ra, foydalanuvchilarning 67% ikki muvaffaqiyatsiz kiritish urinishidan keyin mobil ilovani o'chiradi. To'g'ri foydalanuvchi kiritishini tatbiq etish klaviatura turi konfiguratsiyasi, tekshirish, formatlash va avtomatik to'ldirishni o'z ichiga oladi. Mobil ishlanmada bu jihatlar ikkala platforma tomonidan standartlashtirilgan.
Mobil ilovalarda klaviatura iOS-da keyboardType va Android-da inputType orqali konfiguratsiya qilinadi. Foydalanuvchi sozlamalari avtotuzatish, avtomatik to'ldirish va xavfsiz parol kiritishni o'z ichiga oladi. iOS-da Responder Chain va Android-da fokus klaviaturani ko'rsatish va yashirishni boshqaradi. Mobil ilovalarda foydalanuvchi kiritishi uchun Keyboard Avoidance muhim — tarkib klaviatura tomonidan yashirilmasligi kerak.
iOS-da asosiy foydalanuvchi kiritishi elementlari bir qatorli matn uchun UITextField va ko'p qatorli matn uchun UITextView. Ikkalasi tahrirlashning boshlanishi, o'zgarishi va tugashini boshqarish uchun UITextFieldDelegate va UITextViewDelegate delegatlarini qo'llab-quvvatlaydi. iOS mobil ilovalarida klaviatura konfiguratsiyasi keyboardType, returnKeyType va isSecureTextEntry xususiyatlari orqali amalga oshiriladi.
textContentType xususiyati tizimga maydonda qanday ma'lumotlar kutilayotganini bildiradi — username, password, oneTimeCode, emailAddress. Bu kalit halqasidan avtomatik to'ldirishni faollashtiradi va foydalanuvchi kiritishini tezlashtiradi. Secure Text Entry maydonlari uchun .password belgilang, shunda parol boshqaruvchisi hisob ma'lumotlarini to'g'ri saqlaydi. textContentType dan foydalanish mobil ilovalarda foydalanuvchi kiritishini yaxshilaydi.
let textField = UITextField()
textField.placeholder = "Email"
textField.keyboardType = .emailAddress
textField.textContentType = .emailAddress
textField.autocorrectionType = .no
textField.becomeFirstResponder()
First Responder klaviaturadan hodisalarni qabul qiluvchi faol maydondir. becomeFirstResponder() chaqiruvi klaviaturani ko'rsatadi, resignFirstResponder() uni yashiradi. Responder Chain element hodisani boshqara oladimi yoki yo'qmi ketma-ket tekshiradi. Bir nechta maydonlar mavjud bo'lganda, klaviatura ochiq qolmasligi uchun First Responder-ni boshqarish muhim. Mobil ilovalarda foydalanuvchi kiritishi textFieldShouldReturn tomonidan ham boshqariladi — Return tugmasini bosish keyingi maydonga o'tadi.
Android-da UITextField ning analogi EditText bo'lib, inputType atributi orqali bir qatorli va ko'p qatorli rejimni qo'llab-quvvatlaydi. Material maydonlari uchun com.google.android.material kutubxonasidan TextInputLayout dan foydalaning — suzuvchi maslahat, belgi hisoblagichi va xato qo'llab-quvvatlashini qo'shadi. Android mobil ilovalarida foydalanuvchi kiritishi inputType va imeOptions orqali konfiguratsiya qilinadi.
inputType atributi klaviatura turi va kiritish rejimini belgilaydi: oddiy matn uchun text, parollar uchun textPassword, raqamlar uchun number, telefon klaviaturasi uchun phone. imeOptions Enter tugmasidagi harakatni boshqaradi — Done, Next, Search, Send. Qiymatlarni bitli OR bilan birlashtiring: text|textCapSentences. Android mobil ilovalarida klaviaturalar autofillHints orqali avtomatik to'ldirishni qo'llab-quvvatlaydi.
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() kiritish maydoni ostida xato xabarini ko'rsatadi. TextWatcher orqali oniy tekshirish va shaklni yuborishda yakuniy tekshirishni birlashtiring. Mobil ilovalarda foydalanuvchi kiritishi fokusni ham o'z ichiga oladi — requestFocus() maydonni faollashtiradi va klaviaturani ko'rsatadi. Android-da foydalanuvchi kiritishi tugagandan so'ng klaviaturani yashirish uchun clearFocus() dan foydalaning.
Mobil ilovalarda klaviatura kiritish maydonlarini yopmasligi kerak — bu asosiy UX talabidir. Keyboard Avoidance klaviatura paydo bo'lganda tarkibni siljitish texnikasidir. iOS-da klaviatura o'lchamini olish va scrollView ni siljitish uchun UIResponder.keyboardWillShowNotification dan foydalaning. Android-da manifestda adjustResize belgilang yoki CoordinatorLayout dan foydalaning. Mobil ilovalarda klaviaturalar ikki platformada turlicha konfiguratsiya qilinadi, ammo maqsad bir xil — tarkib har doim ko'rinadi.
iOS-da NotificationCenter orqali keyboardWillShowNotification va keyboardWillHideNotification bildirishnomalariga obuna bo'ling. Ishlov beruvchida userInfo dan klaviatura o'lchamini oling va UIScrollView da contentInset o'rnating. Shu bilan bir qatorda, siljishni avtomatik boshqaradigan IQKeyboardManager dan foydalaning. iOS mobil ishlanmasida foydalanuvchi kiritishi qulay UX uchun majburiy klaviatura boshqaruvini talab qiladi.
Android-da asosiy usul manifestda android:windowSoftInputMode="adjustResize" belgilashdir. Bu bayroq klaviatura paydo bo'lganda layoutni siqadi. CoordinatorLayout uchun tugmalar va maydonlarni ko'taradigan Behavior dan foydalaning. Aniq chekka nazorati uchun ViewCompat.setOnApplyWindowInsetsListener dan foydalaning. Android mobil ilovasida klaviatura OnGlobalLayoutListener tomonidan ham boshqariladi.
Foydalanuvchi kiritishini tekshirish mobil ilovalarda ma'lumotlarni qayta ishlashda majburiy qadamdir. Usiz ilova noto'g'ri ma'lumotlarni oladi, bu xatolar va zaifliklarga olib keladi. Mobil ilovalarda foydalanuvchi kiritishi ikkita yondashuvni talab qiladi: raqamlar va kodlar uchun oniy tekshirish (har bir belgida) va elektron pochta va parollar uchun yakuniy tekshirish. Input Mask telefon, sana va karta raqamini avtomatik formatlaydi.
Input Mask matn avtomatik formatlanadigan kiritish namunasini belgilaydi. Rossiya telefon raqami uchun niqob namunasi: "+7 (___) ___-__-__". iOS-da Input Mask textField(_:shouldChangeCharactersIn:replacementString:) delegati orqali tatbiq etiladi. Android-da belgi joylashuvi kuzatuvi bilan InputFilter dan foydalaning. Xalqaro raqamlar uchun Google dan libphonenumber kutubxonasidan foydalaning.
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
}
| Parametr | iOS | Android |
|---|---|---|
| Bir qatorli maydon | UITextField | EditText |
| Ko'p qatorli maydon | UITextView | EditText + textMultiLine |
| Suzuvchi maslahat | attributedPlaceholder | TextInputLayout |
| Klaviatura turi | keyboardType | inputType |
| Xavfsiz kiritish | isSecureTextEntry | textPassword |
| Avtomatik to'ldirish | textContentType | autofillHints |
| Delegat yoki Listener | UITextFieldDelegate | TextWatcher |
| Tekshirish xatosi | Maxsus UILabel | TextInputLayout.setError() |
Tez-tez beriladigan savollar
UITextField yoki UITextView da becomeFirstResponder() ni chaqiring. Yashirish uchun resignFirstResponder() dan foydalaning. Maydon ko'rinadigan va bloklanmaganligiga ishonch hosil qiling.
inputType klaviatura turini (matn, raqamlar, elektron pochta) belgilaydi. imeOptions Enter tugmasidagi harakatni (Done, Next, Search) boshqaradi. Ular mustaqil ishlaydi va ko'pincha birlashtiriladi.
textField(_:shouldChangeCharactersIn:replacementString:) delegatidan foydalaning va matnni qo'lda formatlang. Yoki "+7 ([000]) [000]-[00]-[00]" kabi namunalar bilan InputMask kutubxonasidan foydalaning.
Manifestda android:windowSoftInputMode="adjustResize" belgilang. Agar CoordinatorLayout dan foydalanayotgan bo'lsangiz, tugmalar va maydonlarni ko'tarish uchun Behavior konfiguratsiyasini tekshiring.
iOS-da textContentType = .oneTimeCode dan foydalaning. Android-da autofillHints = "smsCode" dan foydalaning. Tizim qabul qilinganda SMS dan kodni avtomatik to'ldiradi.
Xulosa
Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz
IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.