Masukan pengguna adalah dasar interaksi pengguna dengan aplikasi seluler. Kegunaan produk tergantung pada implementasi UITextField yang benar di iOS, EditText di Android dan keyboard di aplikasi seluler. Menurut Apple HIG, penanganan masukan pengguna yang tidak tepat adalah penyebab umum ulasan negatif.
Poin Penting
Masukan pengguna di aplikasi seluler adalah proses mentransfer data dari pengguna ke aplikasi melalui layar sentuh dan keyboard virtual. Di iOS, alat utamanya adalah UITextField; di Android, adalah EditText. Masukan pengguna mencakup bidang teks, formulir pendaftaran, kueri pencarian, nomor telepon dan kode konfirmasi. Kualitas implementasi masukan pengguna mempengaruhi kecepatan pengisian formulir dan konversi aplikasi seluler.
Penanganan masukan pengguna dalam pengembangan seluler yang tidak tepat menyebabkan kesalahan validasi, kerentanan, dan kehilangan pengguna. Menurut Statista (2025), 67% pengguna menghapus aplikasi seluler setelah dua kali percobaan masukan gagal. Implementasi masukan pengguna yang benar mencakup konfigurasi jenis keyboard, validasi, pemformatan dan isi otomatis. Dalam pengembangan seluler, aspek-aspek ini distandarisasi oleh kedua platform.
Keyboard di aplikasi seluler dikonfigurasi melalui keyboardType di iOS dan inputType di Android. Pengaturan pengguna mencakup koreksi otomatis, isi otomatis dan masukan kata sandi aman. Responder Chain di iOS dan fokus di Android mengontrol tampilan dan penyembunyian keyboard. Untuk masukan pengguna di aplikasi seluler, Keyboard Avoidance sangat penting — konten tidak boleh terhalang oleh keyboard.
Di iOS, elemen utama masukan pengguna adalah UITextField untuk teks satu baris dan UITextView untuk teks multi-baris. Keduanya mendukung delegasi UITextFieldDelegate dan UITextViewDelegate untuk mengelola awal, perubahan dan akhir pengeditan. Konfigurasi keyboard di aplikasi seluler iOS dilakukan melalui properti keyboardType, returnKeyType dan isSecureTextEntry.
Properti textContentType memberi petunjuk kepada sistem data apa yang diharapkan di bidang — username, password, oneTimeCode, emailAddress. Ini mengaktifkan isi otomatis dari gantungan kunci dan mempercepat masukan pengguna. Untuk bidang dengan Secure Text Entry, tentukan .password agar pengelola kata sandi menyimpan kredensial dengan benar. Menggunakan textContentType meningkatkan masukan pengguna di aplikasi seluler.
let textField = UITextField()
textField.placeholder = "Email"
textField.keyboardType = .emailAddress
textField.textContentType = .emailAddress
textField.autocorrectionType = .no
textField.becomeFirstResponder()
First Responder adalah bidang aktif yang menerima peristiwa dari keyboard. Memanggil becomeFirstResponder() menampilkan keyboard, resignFirstResponder() menyembunyikannya. Responder Chain secara berurutan memeriksa apakah suatu elemen dapat menangani peristiwa. Ketika ada beberapa bidang, penting untuk mengelola First Responder agar keyboard tidak tetap terbuka. Masukan pengguna di aplikasi seluler juga dikelola oleh textFieldShouldReturn — menekan Return beralih ke bidang berikutnya.
Di Android, padanan UITextField adalah EditText, yang mendukung mode satu baris dan multi-baris melalui atribut inputType. Untuk bidang Material, gunakan TextInputLayout dari pustaka com.google.android.material — ini menambahkan petunjuk mengambang, penghitung karakter dan dukungan kesalahan. Masukan pengguna di aplikasi seluler Android dikonfigurasi melalui inputType dan imeOptions.
Atribut inputType menentukan jenis keyboard dan mode masukan: text untuk teks biasa, textPassword untuk kata sandi, number untuk angka, phone untuk keyboard telepon. imeOptions mengontrol tindakan pada tombol Enter — Done, Next, Search, Send. Gabungkan nilai dengan OR bitwise: text|textCapSentences. Keyboard di aplikasi seluler Android mendukung isi otomatis melalui 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() menampilkan pesan kesalahan di bawah bidang masukan. Gabungkan validasi instan melalui TextWatcher dan validasi akhir saat mengirim formulir. Masukan pengguna di aplikasi seluler juga melibatkan fokus — requestFocus() mengaktifkan bidang dan menampilkan keyboard. Gunakan clearFocus() untuk menyembunyikan keyboard ketika masukan pengguna di Android selesai.
Keyboard di aplikasi seluler tidak boleh menutupi bidang masukan — ini adalah persyaratan UX dasar. Keyboard Avoidance adalah teknik menggeser konten saat keyboard muncul. Di iOS, gunakan UIResponder.keyboardWillShowNotification untuk mendapatkan ukuran keyboard dan menggeser scrollView. Di Android, tentukan adjustResize di manifes atau gunakan CoordinatorLayout. Keyboard di aplikasi seluler dikonfigurasi berbeda di kedua platform, tetapi tujuannya sama — konten selalu terlihat.
Di iOS, berlangganan notifikasi keyboardWillShowNotification dan keyboardWillHideNotification melalui NotificationCenter. Di handler, dapatkan ukuran keyboard dari userInfo dan atur contentInset pada UIScrollView. Alternatifnya, gunakan IQKeyboardManager, yang secara otomatis menangani pergeseran. Masukan pengguna dalam pengembangan seluler iOS memerlukan penanganan keyboard wajib untuk UX yang nyaman.
Di Android, metode utamanya adalah android:windowSoftInputMode="adjustResize" di manifes. Bendera ini memampatkan tata letak saat keyboard muncul. Untuk CoordinatorLayout, gunakan Behavior yang mengangkat tombol dan bidang. Gunakan ViewCompat.setOnApplyWindowInsetsListener untuk kontrol margin yang tepat. Keyboard di aplikasi seluler Android juga dikelola oleh OnGlobalLayoutListener.
Validasi masukan pengguna adalah langkah wajib dalam pemrosesan data di aplikasi seluler. Tanpa itu, aplikasi menerima data yang salah, menyebabkan kesalahan dan kerentanan. Masukan pengguna di aplikasi seluler memerlukan dua pendekatan: validasi instan (pada setiap karakter) untuk nomor dan kode, dan validasi akhir untuk email dan kata sandi. Input Mask secara otomatis memformat telepon, tanggal dan nomor kartu.
Input Mask mendefinisikan pola masukan yang dengannya teks diformat secara otomatis. Contoh topeng untuk nomor telepon Rusia: "+7 (___) ___-__-__". Di iOS, Input Mask diimplementasikan melalui delegasi textField(_:shouldChangeCharactersIn:replacementString:). Di Android, gunakan InputFilter dengan pelacakan posisi karakter. Untuk nomor internasional, gunakan pustaka libphonenumber dari Google.
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
}
| Parameter | iOS | Android |
|---|---|---|
| Bidang satu baris | UITextField | EditText |
| Bidang multi-baris | UITextView | EditText + textMultiLine |
| Petunjuk mengambang | attributedPlaceholder | TextInputLayout |
| Jenis keyboard | keyboardType | inputType |
| Masukan aman | isSecureTextEntry | textPassword |
| Isi otomatis | textContentType | autofillHints |
| Delegasi atau Listener | UITextFieldDelegate | TextWatcher |
| Kesalahan validasi | UILabel kustom | TextInputLayout.setError() |
Pertanyaan yang Sering Diajukan
Panggil becomeFirstResponder() pada UITextField atau UITextView. Untuk menyembunyikannya, gunakan resignFirstResponder(). Pastikan bidang terlihat dan tidak diblokir.
inputType menentukan jenis keyboard (teks, angka, email). imeOptions mengontrol tindakan pada tombol Enter (Done, Next, Search). Keduanya bekerja secara independen dan sering digabungkan.
Gunakan delegasi textField(_:shouldChangeCharactersIn:replacementString:) dan format teks secara manual. Atau gunakan pustaka InputMask dengan pola seperti "+7 ([000]) [000]-[00]-[00]".
Tentukan android:windowSoftInputMode="adjustResize" di manifes. Jika menggunakan CoordinatorLayout, periksa konfigurasi Behavior untuk mengangkat tombol dan bidang.
Di iOS, gunakan textContentType = .oneTimeCode. Di Android, gunakan autofillHints = "smsCode". Sistem akan secara otomatis mengisi kode dari SMS saat diterima.
Ringkasan
Kami akan mengembangkan aplikasi seluler turnkey
IT Sectr membuat aplikasi iOS dan Android untuk startup dan bisnis sejak 2017. Kami akan memberi saran dan mengusulkan solusi terbaik.