ব্যবহারকারীর ইনপুট মোবাইল অ্যাপ্লিকেশনের সাথে ব্যবহারকারীর মিথস্ক্রিয়ার ভিত্তি। পণ্যের ব্যবহারযোগ্যতা 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 অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।