İstifadəçi girişi mobil tətbiq ilə istifadəçi qarşılıqlı əlaqəsinin təməlidir. Məhsulun istifadəyə yararlılığı iOS-da UITextField, Android-də EditText və mobil tətbiqlərdə klaviaturaların düzgün tətbiqindən asılıdır. Apple HIG-yə görə, istifadəçi girişinin səhv idarə edilməsi mənfi rəylərin ümumi səbəbidir.
Əsas məqamlar
Mobil tətbiqlərdə istifadəçi girişi toxunma ekranı və virtual klaviatura vasitəsilə istifadəçidən tətbiqə məlumat ötürmə prosesidir. iOS-da əsas alət UITextField, Android-də isə EditText-dir. İstifadəçi girişi mətn sahələrini, qeydiyyat formalarını, axtarış sorğularını, telefon nömrələrini və təsdiqləmə kodlarını əhatə edir. İstifadəçi girişinin tətbiqinin keyfiyyəti formaların doldurulma sürətinə və mobil tətbiqin çevrilməsinə təsir edir.
Mobil inkişafda istifadəçi girişinin səhv idarə edilməsi doğrulama xətalarına, zəifliklərə və istifadəçi itkisinə səbəb olur. Statista (2025)-yə görə, istifadəçilərin 67%-i iki uğursuz giriş cəhdindən sonra mobil tətbiqi silir. Düzgün istifadəçi girişi tətbiqi klaviatura növü konfiqurasiyası, doğrulama, formatlaşdırma və avtomatik doldurmanı əhatə edir. Mobil inkişafda bu aspektlər hər iki platforma tərəfindən standartlaşdırılıb.
Mobil tətbiqlərdə klaviatura iOS-da keyboardType və Android-də inputType vasitəsilə konfiqurasiya edilir. İstifadəçi ayarları avtokorreksiya, avtomatik doldurma və təhlükəsiz şifrə daxil etməni əhatə edir. iOS-da Responder Chain və Android-də fokus klaviaturanın göstərilməsini və gizlədilməsini idarə edir. Mobil tətbiqlərdə istifadəçi girişi üçün Keyboard Avoidance kritikdir — məzmun klaviatura tərəfindən gizlədilməməlidir.
iOS-da əsas istifadəçi girişi elementləri tək sətirli mətn üçün UITextField və çox sətirli mətn üçün UITextView-dir. Hər ikisi redaktənin başlanğıcını, dəyişdirilməsini və sonunu idarə etmək üçün UITextFieldDelegate və UITextViewDelegate delegatlarını dəstəkləyir. iOS mobil tətbiqlərində klaviatura konfiqurasiyası keyboardType, returnKeyType və isSecureTextEntry xüsusiyyətləri vasitəsilə həyata keçirilir.
textContentType xüsusiyyəti sistemə sahədə hansı məlumatların gözlənildiyini işarə edir — username, password, oneTimeCode, emailAddress. Bu açar qarmaqdan avtomatik doldurmanı aktivləşdirir və istifadəçi girişini sürətləndirir. Secure Text Entry olan sahələr üçün .password təyin edin ki, şifrə meneceri etimadnamələri düzgün saxlasın. textContentType istifadəsi mobil tətbiqlərdə istifadəçi girişini yaxşılaşdırır.
let textField = UITextField()
textField.placeholder = "Email"
textField.keyboardType = .emailAddress
textField.textContentType = .emailAddress
textField.autocorrectionType = .no
textField.becomeFirstResponder()
First Responder klaviaturadan hadisələri qəbul edən aktiv sahədir. becomeFirstResponder() çağırışı klaviaturanı göstərir, resignFirstResponder() gizlədir. Responder Chain ardıcıl olaraq elementin hadisəni idarə edə biləcəyini yoxlayır. Bir neçə sahə olduqda, klaviaturanın açıq qalmaması üçün First Responder-i idarə etmək vacibdir. Mobil tətbiqlərdə istifadəçi girişi həmçinin textFieldShouldReturn tərəfindən idarə olunur — Return düyməsini basmaq növbəti sahəyə keçir.
Android-də UITextField-in analoqu EditText-dir, inputType atributu vasitəsilə tək sətirli və çox sətirli rejimi dəstəkləyir. Material sahələri üçün com.google.android.material kitabxanasından TextInputLayout istifadə edin — üzən ipucu, simvol sayğacı və xəta dəstəyi əlavə edir. Android mobil tətbiqlərində istifadəçi girişi inputType və imeOptions vasitəsilə konfiqurasiya edilir.
inputType atributu klaviatura növünü və giriş rejimini müəyyən edir: normal mətn üçün text, şifrələr üçün textPassword, rəqəmlər üçün number, telefon klaviaturası üçün phone. imeOptions Enter düyməsindəki hərəkəti idarə edir — Done, Next, Search, Send. Qiymətləri bitvi OR ilə birləşdirin: text|textCapSentences. Android mobil tətbiqlərində klaviaturalar autofillHints vasitəsilə avtomatik doldurmanı dəstəkləyir.
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() giriş sahəsinin altında xəta mesajı göstərir. TextWatcher vasitəsilə ani doğrulama və formanı göndərərkən yekun doğrulamanı birləşdirin. Mobil tətbiqlərdə istifadəçi girişi həmçinin fokus daxildir — requestFocus() sahəni aktivləşdirir və klaviaturanı göstərir. Android-də istifadəçi girişi tamamlandıqda klaviaturanı gizlətmək üçün clearFocus() istifadə edin.
Mobil tətbiqlərdə klaviatura giriş sahələrini örtməməlidir — bu əsas UX tələbidir. Keyboard Avoidance klaviatura görünəndə məzmunu yerdəyişmə texnikasıdır. iOS-da klaviatura ölçüsünü əldə etmək və scrollView-i yerdəyişmək üçün UIResponder.keyboardWillShowNotification istifadə edin. Android-də manifestdə adjustResize təyin edin və ya CoordinatorLayout istifadə edin. Mobil tətbiqlərdə klaviaturalar iki platformada fərqli şəkildə konfiqurasiya edilir, lakin məqsəd eynidir — məzmun həmişə görünür.
iOS-da NotificationCenter vasitəsilə keyboardWillShowNotification və keyboardWillHideNotification bildirişlərinə abunə olun. İşləyicidə userInfo-dan klaviatura ölçüsünü əldə edin və UIScrollView-də contentInset təyin edin. Alternativ olaraq, yerdəyişməni avtomatik idarə edən IQKeyboardManager istifadə edin. iOS mobil inkişafında istifadəçi girişi rahat UX üçün məcburi klaviatura idarəetməsi tələb edir.
Android-də əsas üsul manifestdə android:windowSoftInputMode="adjustResize" təyin etməkdir. Bu bayraq klaviatura görünəndə layout-u sıxışdırır. CoordinatorLayout üçün düymələri və sahələri qaldıran Behavior istifadə edin. Dəqiq boşluq nəzarəti üçün ViewCompat.setOnApplyWindowInsetsListener istifadə edin. Android mobil tətbiqində klaviatura həmçinin OnGlobalLayoutListener tərəfindən idarə olunur.
İstifadəçi girişinin doğrulanması mobil tətbiqlərdə məlumat emalında məcburi addımdır. Olmadan tətbiq səhv məlumat alır, bu da xətalara və zəifliklərə səbəb olur. Mobil tətbiqlərdə istifadəçi girişi iki yanaşma tələb edir: nömrələr və kodlar üçün ani doğrulama (hər simvolda) və e-poçt və şifrələr üçün yekun doğrulama. Input Mask avtomatik olaraq telefon, tarix və kart nömrəsini formatlaşdırır.
Input Mask mətnin avtomatik formatlaşdırıldığı giriş nümunəsini müəyyən edir. Rus telefon nömrəsi üçün maska nümunəsi: "+7 (___) ___-__-__". iOS-da Input Mask textField(_:shouldChangeCharactersIn:replacementString:) delegatı vasitəsilə tətbiq edilir. Android-də simvol mövqeyi izləmə ilə InputFilter istifadə edin. Beynəlxalq nömrələr üçün Google-dan libphonenumber kitabxanasını istifadə edin.
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 |
|---|---|---|
| Tək sətirli sahə | UITextField | EditText |
| Çox sətirli sahə | UITextView | EditText + textMultiLine |
| Üzən ipucu | attributedPlaceholder | TextInputLayout |
| Klaviatura növü | keyboardType | inputType |
| Təhlükəsiz giriş | isSecureTextEntry | textPassword |
| Avtomatik doldurma | textContentType | autofillHints |
| Delegat və ya Listener | UITextFieldDelegate | TextWatcher |
| Doğrulama xətası | Xüsusi UILabel | TextInputLayout.setError() |
Tez-tez verilən suallar
UITextField və ya UITextView-də becomeFirstResponder() çağırın. Gizlətmək üçün resignFirstResponder() istifadə edin. Sahənin görünən və bloklanmamış olduğundan əmin olun.
inputType klaviatura növünü (mətn, rəqəmlər, e-poçt) müəyyən edir. imeOptions Enter düyməsindəki hərəkəti (Done, Next, Search) idarə edir. Onlar müstəqil işləyir və tez-tez birləşdirilir.
textField(_:shouldChangeCharactersIn:replacementString:) delegatından istifadə edin və mətni əl ilə formatlaşdırın. Və ya "+7 ([000]) [000]-[00]-[00]" kimi nümunələrlə InputMask kitabxanasından istifadə edin.
Manifestdə android:windowSoftInputMode="adjustResize" təyin edin. CoordinatorLayout istifadə edirsinizsə, düymələri və sahələri qaldırmaq üçün Behavior konfiqurasiyasını yoxlayın.
iOS-da textContentType = .oneTimeCode istifadə edin. Android-də autofillHints = "smsCode" istifadə edin. Sistem qəbul edildikdə SMS-dən kodu avtomatik dolduracaq.
Xülasə
Açar təslim mobil tətbiq hazırlayacağıq
IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.