অ্যাক্সেস অনুমতি এবং গোপনীয়তা — মোবাইল ডেভেলপমেন্টের সবচেয়ে গুরুত্বপূর্ণ এবং দ্রুত পরিবর্তনশীল ক্ষেত্রগুলির মধ্যে একটি। Apple Developer Guidelines (2025) অনুযায়ী, 2021 সালে ATT (App Tracking Transparency) চালু হওয়ার পর থেকে, ট্র্যাকিংয়ের জন্য ব্যবহারকারীর সম্মতির হার প্রায় 20%। আসুন iOS এবং Android-এ অনুমতি মডেল, গোপনীয়তার প্রয়োজনীয়তা (ATT, Privacy Manifest, GDPR) এবং তাদের বাস্তবায়নের ব্যবহারিক টিপস দেখি।
মূল পয়েন্ট
অনুমতি মডেল iOS এবং Android-এ একটি সাধারণ ধারণা ভাগ করে: ব্যবহারকারীকে সংবেদনশীল ডেটা (ক্যামেরা, মাইক্রোফোন, অবস্থান, পরিচিতি) অ্যাক্সেসের জন্য সম্মতি দিতে হবে। তবে বাস্তবায়ন উল্লেখযোগ্যভাবে ভিন্ন। Android ব্যবহারের সময় (runtime) অনুমতি চায়, iOS-এর Info.plist-এ উদ্দেশ্য বর্ণনা করা প্রয়োজন এবং প্রথম অ্যাক্সেসে অনুরোধ করে। মোবাইল অ্যাপ্লিকেশনে অ্যাক্সেস অনুমতির সঠিক বাস্তবায়ন নিরাপত্তা এবং বিশ্বাসের ভিত্তি।
Android 6.0 (API 23) এর আগে, সমস্ত অনুমতি ইনস্টলের সময় চাওয়া হত — ব্যবহারকারী সব গ্রহণ করেন বা অ্যাপ্লিকেশন ইনস্টল করেন না。Android 6.0 এর সাথে Runtime Permissions চালু হয়: অ্যাপ্লিকেশন প্রথম প্রয়োজনের সময় অনুমতি চায়, এবং ব্যবহারকারী অস্বীকার করতে পারেন। iOS iOS 8.0 থেকে একই পদ্ধতি ব্যবহার করে। মোবাইল ডেভেলপমেন্টে অ্যাক্সেস অনুমতির বিবর্তন বোঝা সহজ UX ডিজাইন করতে সাহায্য করে।
IT Sectr-এ আমরা «সর্বনিম্ন অনুমতি» নীতি অনুসরণ করি: আমরা শুধুমাত্র সত্যিই প্রয়োজনীয় জিনিস চাই, এবং শুধুমাত্র যখন প্রয়োজন। এটি ব্যবহারকারীর বিশ্বাস বাড়ায়: Google (2025) অনুযায়ী, প্রথম লঞ্চে ৫টির বেশি অনুমতি চাওয়া অ্যাপগুলির নিবন্ধন রূপান্তর হার 30% কম। মোবাইল অ্যাপে এই অ্যাক্সেস অনুমতি মডেল আমাদের অনুশীলন দ্বারা নিশ্চিত।
| প্যারামিটার | iOS | Android |
|---|---|---|
| পদ্ধতি | প্রথম অ্যাক্সেসে অনুরোধ | প্রথম অ্যাক্সেসে অনুরোধ (Runtime Permission) |
| উদ্দেশ্যের বিবরণ | Info.plist (Privacy — Usage Description) | shouldShowRequestPermissionRationale (ঐচ্ছিক) |
| অনুমতি প্রত্যাহার | সেটিংস → গোপনীয়তা | সেটিংস → অ্যাপ → অনুমতি |
| গ্রুপিং | না (প্রতিটি অনুমতি আলাদা) | Permission Groups (যেমন STORAGE) |
| বিজ্ঞাপন ID | IDFA (ATT প্রয়োজন) | GAID / AAID (Google Play Services) |
| গোপনীয়তা | Privacy Manifest (2024 থেকে) | Data Safety Section (Google Play) |
টেবিল 4. iOS এবং Android অনুমতি মডেলের তুলনা। প্রধান পার্থক্য: iOS-এর Info.plist-এ প্রতিটি অনুমতি ব্যবহারের উদ্দেশ্যের স্পষ্ট পাঠ্য বিবরণ প্রয়োজন। Android ব্যবহারকারীকে বোঝানোর জন্য shouldShowRequestPermissionRationale প্রদান করে যে অনুমতি কেন প্রয়োজন। প্ল্যাটফর্মগুলির মধ্যে অ্যাক্সেস অধিকারের পার্থক্য বোঝা সঠিক মডেল বেছে নিতে সাহায্য করে।
Normal Permissions — এমন অনুমতি যা ব্যবহারকারীর গোপনীয়তার জন্য হুমকি নয়। এগুলি ইনস্টলের সময় স্বয়ংক্রিয়ভাবে দেওয়া হয়: INTERNET, ACCESS_NETWORK_STATE, VIBRATE, BLUETOOTH। ডেভেলপারকে কোডে এগুলি অনুরোধ করার প্রয়োজন নেই। এই অ্যাক্সেস অনুমতি শ্রেণীবিভাগ গোপনীয়তা ঝুঁকি স্তরের সাথে মিলে যায়।
Dangerous Permissions — এমন অনুমতি যার জন্য ব্যক্তিগত ডেটা অ্যাক্সেস প্রয়োজন: CAMERA, RECORD_AUDIO, ACCESS_FINE_LOCATION, READ_CONTACTS, READ_CALENDAR, READ_EXTERNAL_STORAGE। এগুলির জন্য রানটাইম অনুরোধ প্রয়োজন। Permission Group — সম্পর্কিত অনুমতির গ্রুপ: যদি ব্যবহারকারী CAMERA অনুমতি দেয়, ভিডিও রেকর্ড করার অনুমতি (RECORD_AUDIO? না, এটি আলাদা গ্রুপ) — না, CAMERA এবং RECORD_AUDIO বিভিন্ন গ্রুপে রয়েছে।
Runtime Permission — Android-এ ActivityCompat.requestPermissions() কল করা বা iOS-এ CLLocationManager.requestWhenInUseAuthorization()-এর মাধ্যমে অনুরোধ করা। ব্যবহারকারী উত্তর দিতে পারেন: Grant (অনুমতি দিন), Deny (অস্বীকার করুন) বা «আবার জিজ্ঞাসা করবেন না» (Android-এ দুইবার অস্বীকারের পরে)। মোবাইল অ্যাপ্লিকেশনে অ্যাক্সেস অনুমতি কনফিগার করার জন্য ব্যবহারকারীর আচরণ বিবেচনা করা প্রয়োজন।
Runtime Permission Android-এ প্রতিটি ব্যবহারের আগে বর্তমান অবস্থা পরীক্ষা করা প্রয়োজন। shouldShowRequestPermissionRationale() পদ্ধতি true ফেরত দেয় যদি ব্যবহারকারী ইতিমধ্যে অস্বীকার করে থাকে — এটি ব্যাখ্যা সহ একটি ডায়ালগ দেখানোর সংকেত। iOS-এ, সমতুল্য অবস্থা পরীক্ষা: .notDetermined, .denied, .authorized, .restricted। মোবাইল অ্যাপ গোপনীয়তার জন্য অনুমতি অবস্থার ক্রমাগত পর্যবেক্ষণ প্রয়োজন।
// Kotlin — ক্যামেরার জন্য রানটাইম অনুমতি অনুরোধ
class CameraActivity : AppCompatActivity() {
companion object {
private const val CAMERA_PERMISSION_CODE = 100
}
private fun requestCameraPermission() {
when {
ContextCompat.checkSelfPermission(
this, Manifest.permission.CAMERA
) == PackageManager.PERMISSION_GRANTED -> {
openCamera()
}
shouldShowRequestPermissionRationale(Manifest.permission.CAMERA) -> {
showRationaleDialog("QR কোড স্ক্যান করার জন্য ক্যামেরা অ্যাক্সেস প্রয়োজন")
}
else -> {
requestPermissions(
arrayOf(Manifest.permission.CAMERA),
CAMERA_PERMISSION_CODE
)
}
}
}
override fun onRequestPermissionsResult(
requestCode: Int,
permissions: Array<String>,
grantResults: IntArray
) {
if (requestCode == CAMERA_PERMISSION_CODE &&
grantResults.firstOrNull() == PackageManager.PERMISSION_GRANTED
) {
openCamera()
}
}
}
এই কোডটি সঠিক প্যাটার্ন দেখায়: অবস্থা পরীক্ষা করুন → ব্যাখ্যা দেখান (যদি প্রয়োজন হয়) → অনুমতি অনুরোধ করুন → ফলাফল হ্যান্ডেল করুন। shouldShowRequestPermissionRationale একটি গুরুত্বপূর্ণ পদ্ধতি: যদি ব্যবহারকারী ইতিমধ্যে অস্বীকার করে থাকেন, তবে ব্যাখ্যা সহ একটি ডায়ালগ দেখান কেন অনুমতি প্রয়োজন। এটি ছাড়া, ব্যবহারকারী স্থায়ীভাবে অ্যাক্সেস অস্বীকার করতে পারেন।
ATT (App Tracking Transparency) — একটি Apple ফ্রেমওয়ার্ক (iOS 14.5+) যার জন্য ট্র্যাকিংয়ের জন্য স্পষ্ট ব্যবহারকারী সম্মতি প্রয়োজন। সম্মতি ছাড়া, IDFA (বিজ্ঞাপনদাতাদের জন্য শনাক্তকারী) শূন্য ফেরত দেয়। Flurry (2025) অনুযায়ী, ATT স্বীকৃতি হার অঞ্চল এবং অ্যাপ的类型 অনুযায়ী 15–25%। মোবাইল অ্যাপ্লিকেশনে অ্যাক্সেস অনুমতি ব্যবস্থাপনা সঠিক ফ্রেমওয়ার্ক বেছে নেওয়ার মাধ্যমে শুরু হয়।
Privacy Manifest — একটি বাধ্যতামূলক ফাইল (2024 থেকে নতুন অ্যাপের জন্য, 2025 থেকে আপডেটের জন্য) যাতে ডেভেলপার ঘোষণা করে যে অ্যাপ্লিকেশন কী ধরণের ডেটা সংগ্রহ করে এবং কী উদ্দেশ্যে। Apple পর্যালোচনার সময় Privacy Manifest-এর অ্যাপের প্রকৃত আচরণের সাথে সামঞ্জস্য পরীক্ষা করে। মোবাইল অ্যাপ্লিকেশনে গোপনীয়তা নথিভুক্ত করা আবশ্যক।
ATT-তে Info.plist কী NSUserTrackingUsageDescription ট্র্যাকিং কেন প্রয়োজন তার বিবরণ সহ যোগ করা এবং ATTrackingManager.requestTrackingAuthorization() কল করা প্রয়োজন। গুরুত্বপূর্ণ: GDPR সম্মতি দেখানোর আগে কি ATT অনুরোধ করা উচিত? না, ATT একটি আলাদা Apple অনুরোধ। EU-তে, প্রথমে GDPR ব্যানার দেখান, তারপর ATT। iOS-এ মোবাইল অ্যাপ্লিকেশনে অ্যাক্সেস অনুমতির জন্য বাধ্যতামূলক ATT কনফিগারেশন প্রয়োজন।
IDFA বিজ্ঞাপন অ্যাট্রিবিউশন এবং ব্যক্তিগতকরণের জন্য ব্যবহৃত হয়। Android-এ, সমতুল্য হল GAID (Google Advertising ID) বা AAID (Amazon Advertising ID)। Android 13+ থেকে, GAID অ্যাক্সেসের জন্য একটি রানটাইম অনুমতি (com.google.android.gms.permission.AD_ID) রয়েছে। মোবাইল অ্যাপ গোপনীয়তার জন্য বিজ্ঞাপন শনাক্তকারীদের উপর নিয়ন্ত্রণ প্রয়োজন।
GDPR (সাধারণ ডেটা সুরক্ষা নিয়মাবলী) — মে 2018 থেকে কার্যকর EU নিয়মাবলী। এটির জন্য প্রয়োজন: ব্যক্তিগত ডেটা সংগ্রহের জন্য স্পষ্ট সম্মতি, অ্যাক্সেস অনুমতি ব্যবস্থাপনার অধিকার, ডেটা মুছে ফেলার অধিকার (ভুলে যাওয়ার অধিকার), ডেটা লঙ্ঘনের বিজ্ঞপ্তি এবং বড় কোম্পানির জন্য DPO (ডেটা সুরক্ষা আধিকারিক) নিয়োগ। নিয়মাবলী মোবাইল অ্যাপে স্বচ্ছ অ্যাক্সেস অনুমতি মডেলও নির্ধারণ করে।
মোবাইল অ্যাপের জন্য, GDPR-এর অর্থ: প্রথম লঞ্চে সম্মতি ব্যানার দেখানো (কী ডেটা সংগ্রহ করা হয় এবং কী উদ্দেশ্যে তার স্পষ্ট বিবরণ সহ), অপ্রয়োজনীয় অনুমতি প্রত্যাখ্যানের ক্ষমতা, সেটিংসে «অ্যাকাউন্ট মুছুন» বাটন। জনপ্রিয় GDPR টুল: OneTrust, Google-এর সম্মতি ব্যবস্থাপনা প্ল্যাটফর্ম (CMP), Usercentrics। মোবাইল অ্যাপ্লিকেশনে গোপনীয়তা নিশ্চিত করতে CMP ইন্টিগ্রেশন প্রয়োজন।
IT Sectr-এ আমরা অনবোর্ডিং পর্যায়ে GDPR সম্মতি বাস্তবায়ন করি: ব্যবহারকারী স্পষ্ট বিবরণ দেখেন, কোন ডেটা সংগ্রহ করার অনুমতি দেবেন তা চয়ন করেন এবং সেটিংসে তাদের পছন্দ পরিবর্তন করতে পারেন। এটি কেবল আইনি প্রয়োজনীয়তা নয় বরং বিশ্বাসের কারণ: স্বচ্ছ অ্যাপগুলির ধারণ হার 20% বেশি (IT Sectr ডেটা, 2024)। মোবাইল অ্যাপ গোপনীয়তা এবং অ্যাক্সেস অনুমতি ব্যবস্থাপনা ব্যবহারকারী ধারণের মূল কারণ।
সম্মতি হতে হবে: স্বেচ্ছামূলক (না মানে না), নির্দিষ্ট («সবকিছুর» জন্য সম্মতি সংগ্রহ করা যাবে না), অবহিত (ব্যবহারকারী জানেন তিনি কীসের জন্য সম্মতি দিচ্ছেন) এবং দ্ব্যর্থহীন (সক্রিয় পদক্ষেপ প্রয়োজন — চেকবক্স, বাটন)। পূর্বনির্ধারিত চেকবক্স GDPR দ্বারা নিষিদ্ধ। লঙ্ঘনের জন্য জরিমানা — বিশ্বব্যাপী আয়ের ৪% বা ২০ মিলিয়ন ইউরো পর্যন্ত। মোবাইল অ্যাপ্লিকেশনে অ্যাক্সেস অনুমতির সঠিক কনফিগারেশন জরিমানা এড়াতে সহায়তা করে।
IT Sectr-এর অভিজ্ঞতার ভিত্তিতে — অনুমতি এবং গোপনীয়তা নিয়ে কাজ করার জন্য বেশ কিছু ব্যবহারিক সুপারিশ। প্রসঙ্গে অনুমতি চান: সিস্টেম ডায়ালগের আগে একটি স্ক্রিন দেখান যা ব্যাখ্যা করে কেন অনুমতি প্রয়োজন। উদাহরণস্বরূপ, ক্যামেরা চাওয়ার আগে দেখান: «QR কোড স্ক্যান করার জন্য আমাদের ক্যামেরা অ্যাক্সেস দরকার» — এটি সম্মতির সম্ভাবনা 40% বাড়ায়। মোবাইল অ্যাপে অ্যাক্সেস অনুমতি ব্যবহারের প্রসঙ্গে চাওয়া উচিত।
প্রথম লঞ্চে সমস্ত অনুমতি চাইবেন না। প্রাসঙ্গিক অনুমতি অনুরোধ (ব্যবহারের সময় অনুরোধ) অনবোর্ডিংয়ের সময় অনুরোধের চেয়ে 60% বেশি রূপান্তর দেয়। অস্বীকৃতি সৌজন্যের সাথে হ্যান্ডেল করুন: যদি ব্যবহারকারী অস্বীকার করেন, কার্যকারিতা ব্লক করবেন না, বরং একটি বিকল্প অফার করুন (যেমন, অবস্থানের পরিবর্তে ম্যানুয়াল ঠিকানা প্রবেশ)। মোবাইল অ্যাপ গোপনীয়তা এই পদ্ধতি থেকে উপকৃত হয়।
iOS-এর জন্য, Privacy Manifest যোগ করতে ভুলবেন না (2025 থেকে সমস্ত অ্যাপের জন্য বাধ্যতামূলক)। Android-এর জন্য, Google Play Console-এ Data Safety Section নির্দিষ্ট করুন। সমস্ত অনুমতির অবস্থান স্থানীয়ভাবে সংরক্ষণ করুন এবং সিস্টেম সেটিংসের সাথে সিঙ্ক করুন। নিয়মিতভাবে সামঞ্জস্য পরীক্ষা করুন — আইন দ্রুত পরিবর্তিত হয়। মোবাইল অ্যাপের অ্যাক্সেস অনুমতি মডেল এবং গোপনীয়তার জন্য ক্রমাগত অডিট প্রয়োজন।
প্রায়শই জিজ্ঞাসিত প্রশ্ন
ATT একটি Apple ফ্রেমওয়ার্ক (iOS 14.5+) যার জন্য ব্যবহারকারীকে ট্র্যাক করার স্পষ্ট অনুরোধ প্রয়োজন। সম্মতি ছাড়া, IDFA শূন্য ফেরত দেয়। ATT অনুরোধে ট্র্যাকিং উদ্দেশ্যের স্পষ্ট বিবরণ থাকতে হবে। স্বীকৃতি হার অ্যাপের ভিত্তিতে 15–25%। iOS-এ মোবাইল অ্যাপ্লিকেশনে অ্যাক্সেস অনুমতির জন্য ট্র্যাকিং উদ্দেশ্যের স্পষ্ট বিবরণ প্রয়োজন।
Normal Permissions ইনস্টলের সময় স্বয়ংক্রিয়ভাবে দেওয়া হয় — কোনো অনুরোধ প্রয়োজন নেই (INTERNET, VIBRATE)। Dangerous Permissions-এর জন্য রানটাইম অনুরোধ প্রয়োজন (CAMERA, LOCATION, MICROPHONE) — ব্যবহারকারী যেকোনো সময় অস্বীকার করতে পারেন। Normal গোপনীয়তাকে প্রভাবিত করে না; Dangerous ব্যক্তিগত ডেটায় অ্যাক্সেস দেয়।
GDPR-এর জন্য প্রয়োজন: ডেটা সংগ্রহের জন্য স্পষ্ট সম্মতি, অ্যাকাউন্ট এবং ডেটা মুছে ফেলার ক্ষমতা, লঙ্ঘনের বিজ্ঞপ্তি। অ্যাপের জন্য: প্রথম লঞ্চে সম্মতি ব্যানার, ডেটা সংগ্রহের উদ্দেশ্যের স্পষ্ট বিবরণ, সেটিংসে «অ্যাকাউন্ট মুছুন» বাটন, অ্যাক্সেস অনুমতি ব্যবস্থাপনা সহ। জরিমানা — আয়ের ৪% পর্যন্ত।
IDFA (বিজ্ঞাপনদাতাদের জন্য শনাক্তকারী) iOS-এ ডিভাইসের একটি অনন্য বিজ্ঞাপন শনাক্তকারী। এটি বিজ্ঞাপন টার্গেটিং এবং ইনস্টল অ্যাট্রিবিউশনের জন্য ব্যবহৃত হয়। iOS 14.5 থেকে, IDFA অ্যাক্সেসের জন্য ATT-এর মাধ্যমে সম্মতি প্রয়োজন। Android-এ, সমতুল্য হল GAID (Google Advertising ID)। মোবাইল অ্যাপ গোপনীয়তার জন্য বিজ্ঞাপন শনাক্তকারীদের উপর নিয়ন্ত্রণ প্রয়োজন।
সারসংক্ষেপ
আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব
IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।