Kullanıcı girişi, bir mobil uygulamayla kullanıcı etkileşiminin temelidir. Ürünün kullanılabilirliği, iOS'ta UITextField, Android'de EditText ve mobil uygulamalarda klavyelerin doğru uygulanmasına bağlıdır. Apple HIG'ye göre, kullanıcı girişinin yanlış işlenmesi olumsuz yorumların yaygın bir nedenidir.
Önemli Noktalar
Mobil uygulamalarda kullanıcı girişi, dokunmatik ekran ve sanal klavye aracılığıyla kullanıcıdan uygulamaya veri aktarma sürecidir. iOS'ta ana araç UITextField; Android'de ise EditText'tir. Kullanıcı girişi, metin alanları, kayıt formları, arama sorguları, telefon numaraları ve onay kodlarını kapsar. Kullanıcı girişi uygulamasının kalitesi, form doldurma hızını ve mobil uygulama dönüşümünü etkiler.
Mobil geliştirmede kullanıcı girişinin yanlış işlenmesi, doğrulama hatalarına, güvenlik açıklarına ve kullanıcı kaybına yol açar. Statista'ya (2025) göre, kullanıcıların %67'si iki başarısız giriş denemesinden sonra mobil uygulamayı siler. Doğru kullanıcı girişi uygulaması, klavye türü yapılandırması, doğrulama, biçimlendirme ve otomatik doldurmayı içerir. Mobil geliştirmede, bu yönler her iki platform tarafından standartlaştırılmıştır.
Mobil uygulamalarda klavye, iOS'ta keyboardType ve Android'de inputType aracılığıyla yapılandırılır. Kullanıcı ayarları, otomatik düzeltme, otomatik doldurma ve güvenli şifre girişini içerir. iOS'ta Responder Chain ve Android'de odak, klavye gösterimini ve gizlemeyi kontrol eder. Mobil uygulamalarda kullanıcı girişi için Keyboard Avoidance kritiktir — içerik klavye tarafından gizlenmemelidir.
iOS'ta ana kullanıcı girişi öğeleri, tek satırlı metin için UITextField ve çok satırlı metin için UITextView'dir. Her ikisi de düzenlemenin başlangıcını, değişikliğini ve sonunu yönetmek için UITextFieldDelegate ve UITextViewDelegate delegate'lerini destekler. iOS mobil uygulamalarında klavye yapılandırması, keyboardType, returnKeyType ve isSecureTextEntry özellikleri aracılığıyla yapılır.
textContentType özelliği, alanda hangi verilerin beklendiğini sisteme bildirir — username, password, oneTimeCode, emailAddress. Bu, anahtarlıktan otomatik doldurmayı etkinleştirir ve kullanıcı girişini hızlandırır. Secure Text Entry alanları için .password belirtin, böylece şifre yöneticisi kimlik bilgilerini doğru şekilde kaydeder. textContentType kullanımı, mobil uygulamalarda kullanıcı girişini iyileştirir.
let textField = UITextField()
textField.placeholder = "Email"
textField.keyboardType = .emailAddress
textField.textContentType = .emailAddress
textField.autocorrectionType = .no
textField.becomeFirstResponder()
First Responder, klavyeden olayları alan aktif alandır. becomeFirstResponder() çağrısı klavyeyi gösterir, resignFirstResponder() gizler. Responder Chain, bir öğenin bir olayı işleyip işleyemeyeceğini sırayla kontrol eder. Birden çok alan olduğunda, klavyenin açık kalmaması için First Responder'ı yönetmek önemlidir. Mobil uygulamalarda kullanıcı girişi ayrıca textFieldShouldReturn tarafından da yönetilir — Return tuşuna basmak sonraki alana geçer.
Android'de UITextField'in benzeri EditText'tir ve inputType özelliği aracılığıyla tek satırlı ve çok satırlı modu destekler. Material alanları için com.google.android.material kütüphanesinden TextInputLayout kullanın — kayan ipucu, karakter sayacı ve hata desteği ekler. Android mobil uygulamalarında kullanıcı girişi, inputType ve imeOptions aracılığıyla yapılandırılır.
inputType özelliği, klavye türünü ve giriş modunu belirler: normal metin için text, şifreler için textPassword, rakamlar için number, telefon tuş takımı için phone. imeOptions, Enter düğmesindeki eylemi kontrol eder — Done, Next, Search, Send. Değerleri bitsel VEYA ile birleştirin: text|textCapSentences. Android mobil uygulamalarında klavyeler, autofillHints aracılığıyla otomatik doldurmayı destekler.
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ş alanının altında bir hata mesajı gösterir. TextWatcher aracılığıyla anlık doğrulama ve form gönderiminde son doğrulamayı birleştirin. Mobil uygulamalarda kullanıcı girişi ayrıca odak içerir — requestFocus() bir alanı etkinleştirir ve klavyeyi gösterir. Android'de kullanıcı girişi tamamlandığında klavyeyi gizlemek için clearFocus() kullanın.
Mobil uygulamalarda klavye giriş alanlarını örtmemelidir — bu temel bir UX gereksinimidir. Keyboard Avoidance, klavye göründüğünde içeriği kaydırma tekniğidir. iOS'ta, klavye boyutunu almak ve scrollView'i kaydırmak için UIResponder.keyboardWillShowNotification kullanın. Android'de, manifestte adjustResize belirtin veya CoordinatorLayout kullanın. Mobil uygulamalarda klavyeler iki platformda farklı şekilde yapılandırılır, ancak amaç aynıdır — içerik her zaman görünür.
iOS'ta, NotificationCenter aracılığıyla keyboardWillShowNotification ve keyboardWillHideNotification bildirimlerine abone olun. İşleyicide, userInfo'dan klavye boyutunu alın ve UIScrollView'da contentInset ayarlayın. Alternatif olarak, kaydırmayı otomatik olarak işleyen IQKeyboardManager'ı kullanın. iOS mobil geliştirmede kullanıcı girişi, rahat bir UX için zorunlu klavye işleme gerektirir.
Android'de ana yöntem, manifestte android:windowSoftInputMode="adjustResize" belirtmektir. Bu işaret, klavye göründüğünde düzeni sıkıştırır. CoordinatorLayout için, düğmeleri ve alanları yükselten Behavior kullanın. Hassas kenar boşluğu kontrolü için ViewCompat.setOnApplyWindowInsetsListener kullanın. Android mobil uygulamada klavye ayrıca OnGlobalLayoutListener tarafından da yönetilir.
Kullanıcı girişi doğrulaması, mobil uygulamalarda veri işlemede zorunlu bir adımdır. Doğrulama olmadan uygulama yanlış veri alır, bu da hatalara ve güvenlik açıklarına yol açar. Mobil uygulamalarda kullanıcı girişi iki yaklaşım gerektirir: sayılar ve kodlar için anlık doğrulama (her karakterde) ve e-posta ve şifreler için son doğrulama. Input Mask, telefon, tarih ve kart numarasını otomatik olarak biçimlendirir.
Input Mask, metnin otomatik olarak biçimlendirildiği bir giriş deseni tanımlar. Rus telefon numarası için maske örneği: "+7 (___) ___-__-__". iOS'ta Input Mask, textField(_:shouldChangeCharactersIn:replacementString:) delegate'i aracılığıyla uygulanır. Android'de, karakter konumu izleme ile InputFilter kullanın. Uluslararası numaralar için Google'dan libphonenumber kütüphanesini kullanın.
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
}
| Parametre | iOS | Android |
|---|---|---|
| Tek satırlı alan | UITextField | EditText |
| Çok satırlı alan | UITextView | EditText + textMultiLine |
| Kayan ipucu | attributedPlaceholder | TextInputLayout |
| Klavye türü | keyboardType | inputType |
| Güvenli giriş | isSecureTextEntry | textPassword |
| Otomatik doldurma | textContentType | autofillHints |
| Delegate veya Listener | UITextFieldDelegate | TextWatcher |
| Doğrulama hatası | Özel UILabel | TextInputLayout.setError() |
Sıkça Sorulan Sorular
UITextField veya UITextView üzerinde becomeFirstResponder() çağırın. Gizlemek için resignFirstResponder() kullanın. Alanın görünür ve engellenmemiş olduğundan emin olun.
inputType klavye türünü (metin, rakam, e-posta) belirler. imeOptions, Enter düğmesindeki eylemi (Done, Next, Search) kontrol eder. Bağımsız çalışırlar ve sıklıkla birleştirilirler.
textField(_:shouldChangeCharactersIn:replacementString:) delegate'ini kullanın ve metni manuel olarak biçimlendirin. Veya "+7 ([000]) [000]-[00]-[00]" gibi desenlerle InputMask kütüphanesini kullanın.
Manifestte android:windowSoftInputMode="adjustResize" belirtin. CoordinatorLayout kullanıyorsanız, düğmeleri ve alanları yükseltmek için Behavior yapılandırmasını kontrol edin.
iOS'ta textContentType = .oneTimeCode kullanın. Android'de autofillHints = "smsCode" kullanın. Sistem, alındığında SMS'ten kodu otomatik olarak dolduracaktır.
Özet
Anahtar teslim bir mobil uygulama geliştireceğiz
IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.