Kirish ruxsatlari va maxfiylik — mobil ishlanmaning eng muhim va tez o'zgaruvchan sohalaridan biridir. Apple Developer Guidelines (2025) ma'lumotlariga ko'ra, 2021-yilda ATT (App Tracking Transparency) joriy etilganidan beri, foydalanuvchilarning kuzatishga rozilik darajasi taxminan 20% ni tashkil qiladi. Keling, iOS va Android-dagi ruxsat modellarini, maxfiylik talablarini (ATT, Privacy Manifest, GDPR) va ularni amalga oshirish bo'yicha amaliy maslahatlarni ko'rib chiqaylik.
Asosiy fikrlar
Ruxsat modellari iOS va Android-da umumiy fikrga ega: foydalanuvchi nozik ma'lumotlarga (kamera, mikrofon, joylashuv, kontaktlar) kirishga rozilik berishi kerak. Biroq, amalga oshirish sezilarli darajada farq qiladi. Android foydalanish paytida (runtime) ruxsat so'raydi, iOS Info.plist da maqsad tavsifini talab qiladi va birinchi kirishda so'raydi. Mobil ilovada kirish ruxsatlarini to'g'ri amalga oshirish xavfsizlik va ishonchning asosidir.
Android 6.0 (API 23) dan oldin, barcha ruxsatlar o'rnatish vaqtida so'ralardi — foydalanuvchi yo hammasini qabul qilar yoki ilovani o'rnatmas edi. Android 6.0 bilan Runtime Permissions paydo bo'ldi: ilova birinchi ehtiyoj paytida ruxsat so'raydi va foydalanuvchi rad etishi mumkin. iOS iOS 8.0 dan beri shunga o'xshash yondashuvdan foydalanadi. Mobil ishlanmada kirish ruxsatlarining evolyutsiyasini tushunish intuitiv UX dizayn qilishga yordam beradi.
IT Sectr da biz «minimal ruxsatlar» tamoyiliga amal qilamiz: faqat haqiqatan kerak bo'lgan narsani va faqat kerak bo'lganda so'raymiz. Bu foydalanuvchi ishonchini oshiradi: Google (2025) ma'lumotlariga ko'ra, birinchi ishga tushirishda 5 dan ortiq ruxsat so'raydigan ilovalar ro'yxatdan o'tish konversiya darajasi 30% past bo'ladi. Mobil ilovalardagi bu kirish ruxsati modeli amaliyotimiz bilan tasdiqlanadi.
| Parametr | iOS | Android |
|---|---|---|
| Mexanizm | Resursga birinchi kirishda so'rov | Birinchi kirishda so'rov (Runtime Permission) |
| Maqsad tavsifi | Info.plist (Privacy — Usage Description) | shouldShowRequestPermissionRationale (ixtiyoriy) |
| Ruxsatni bekor qilish | Sozlamalar → Maxfiylik | Sozlamalar → Ilovalar → Ruxsatlar |
| Guruhlash | Yo'q (har bir ruxsat alohida) | Permission Groups (masalan, STORAGE) |
| Reklama ID | IDFA (ATT talab qilinadi) | GAID / AAID (Google Play Services) |
| Maxfiylik | Privacy Manifest (2024 dan) | Data Safety Section (Google Play) |
Jadval 4. iOS va Android ruxsat modellarini taqqoslash. Asosiy farq: iOS Info.plist da har bir ruxsatdan foydalanish maqsadining aniq matn tavsifini talab qiladi. Android foydalanuvchiga ruxsat nima uchun kerakligini tushuntirish uchun shouldShowRequestPermissionRationale ni taklif qiladi. Platformalar o'rtasidagi kirish huquqlaridagi farqlarni tushunish to'g'ri modelni tanlashga yordam beradi.
Normal Permissions — foydalanuvchi maxfiyligiga tahdid solmaydigan ruxsatlar. Ular o'rnatish vaqtida avtomatik ravishda beriladi: INTERNET, ACCESS_NETWORK_STATE, VIBRATE, BLUETOOTH. Dasturchi ularni kodda so'rashi shart emas. Kirish ruxsatlarining bu tasnifi maxfiylik xavfi darajasiga mos keladi.
Dangerous Permissions — shaxsiy ma'lumotlarga kirishni talab qiladigan ruxsatlar: CAMERA, RECORD_AUDIO, ACCESS_FINE_LOCATION, READ_CONTACTS, READ_CALENDAR, READ_EXTERNAL_STORAGE. Ular runtime so'rovini talab qiladi. Permission Group — bog'liq ruxsatlar guruhi: agar foydalanuvchi CAMERA ga ruxsat bergan bo'lsa, video yozish ruxsati (RECORD_AUDIO? yo'q, bu alohida guruh) — yo'q, CAMERA va RECORD_AUDIO turli guruhlarda.
Runtime Permission — Android da ActivityCompat.requestPermissions() chaqirish yoki iOS da CLLocationManager.requestWhenInUseAuthorization() orqali so'rash. Foydalanuvchi javob berishi mumkin: Grant (ruxsat berish), Deny (rad etish) yoki «Boshqa so'rama» (Android da ikki rad etishdan keyin). Mobil ilovada kirish ruxsatlarini sozlash foydalanuvchi xatti-harakatini hisobga olishni talab qiladi.
Runtime Permission Android da har foydalanishdan oldin joriy holatni tekshirishni talab qiladi. shouldShowRequestPermissionRationale() usuli, agar foydalanuvchi allaqachon rad etgan bo'lsa, true qaytaradi — bu tushuntirish bilan dialogni ko'rsatish uchun signaldir. iOS da ekvivalenti holatni tekshirishdir: .notDetermined, .denied, .authorized, .restricted. Mobil ilova maxfiyligi ruxsat holatini doimiy kuzatishni talab qiladi.
// Kotlin — kamera uchun runtime ruxsat so'rovi
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 kodlarni skanerlash uchun kamera kirishi kerak")
}
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()
}
}
}
Bu kod to'g'ri naqshni ko'rsatadi: holatni tekshirish → tushuntirishni ko'rsatish (agar kerak bo'lsa) → ruxsat so'rash → natijani boshqarish. shouldShowRequestPermissionRationale muhim usuldir: agar foydalanuvchi allaqachon rad etgan bo'lsa, ruxsat nima uchun kerakligini tushuntiruvchi dialogni ko'rsating. Busiz, foydalanuvchi kirishni butunlay rad etishi mumkin.
ATT (App Tracking Transparency) — kuzatish uchun foydalanuvchining aniq roziligini talab qiluvchi Apple freymvorki (iOS 14.5+). Roziliksiz, IDFA (Reklamachilar uchun identifikator) nol qaytaradi. Flurry (2025) ma'lumotlariga ko'ra, ATT qabul qilish darajasi mintaqa va ilova turiga qarab 15–25% ni tashkil qiladi. Mobil ilovada kirish ruxsatlarini boshqarish to'g'ri freymvorkni tanlash bilan boshlanadi.
Privacy Manifest — dasturchi ilova qanday ma'lumot turlarini va qanday maqsadlarda to'plashini deklaratsiya qiladigan majburiy fayl (2024 yildan yangi ilovalar uchun, 2025 dan yangilanishlar uchun). Apple ko'rib chiqish paytida Privacy Manifestning ilovaning haqiqiy xatti-harakatiga muvofiqligini tekshiradi. Mobil ilovada maxfiylik hujjatlashtirilgan bo'lishi kerak.
ATT Info.plist kaliti NSUserTrackingUsageDescription ni kuzatish nima uchun kerakligi tavsifi bilan qo'shishni va ATTrackingManager.requestTrackingAuthorization() chaqirishni talab qiladi. Muhim: GDPR roziligini ko'rsatishdan oldin ATT so'ralishi kerakmi? Yo'q, ATT alohida Apple so'rovidir. Yevropa Ittifoqida avval GDPR bannerini, keyin ATT ni ko'rsating. iOS da mobil ilovada kirish ruxsatlari majburiy ATT sozlamasini talab qiladi.
IDFA reklama atributsiyasi va shaxsiylashtirish uchun ishlatiladi. Android da ekvivalenti GAID (Google Advertising ID) yoki AAID (Amazon Advertising ID). Android 13+ dan boshlab GAID ga kirish uchun runtime ruxsati (com.google.android.gms.permission.AD_ID) mavjud. Mobil ilova maxfiyligi reklama identifikatorlari ustidan nazoratni talab qiladi.
GDPR (Ma'lumotlarni himoya qilishning umumiy qoidalari) — 2018 yil may oyidan kuchga kirgan Yevropa Ittifoqi qoidasi. Talab qiladi: shaxsiy ma'lumotlarni to'plash uchun aniq rozilik, kirish ruxsatlarini boshqarish huquqi, ma'lumotlarni o'chirish huquqi (unutish huquqi), ma'lumotlar buzilishi haqida xabarlar va yirik kompaniyalar uchun DPO (Ma'lumotlarni himoya qilish xodimi) tayinlash. Qoida, shuningdek, mobil ilovalarda shaffof kirish ruxsati modelini belgilaydi.
Mobil ilovalar uchun GDPR degani: birinchi ishga tushirishda rozilik bannerini ko'rsatish (qanday ma'lumotlar qanday maqsadlarda to'planishining aniq tavsifi bilan), majburiy bo'lmagan ruxsatlardan bosh tortish imkoniyati va sozlamalarda «Hisobni o'chirish» tugmasi. Mashhur GDPR vositalari: OneTrust, Google ning Rozilik boshqarish platformasi (CMP), Usercentrics. Mobil ilovada maxfiylikni ta'minlash CMP integratsiyasini talab qiladi.
IT Sectr da biz GDPR roziligini onboardings bosqichida joriy qilamiz: foydalanuvchi aniq tavsifni ko'radi, qaysi ma'lumotlarni to'plashga ruxsat berishni tanlaydi va sozlamalarda tanlovini o'zgartirishi mumkin. Bu nafaqat huquqiy talab, balki ishonch omilidir: shaffof ilovalar ushlab qolish darajasi 20% yuqori (IT Sectr ma'lumotlari, 2024). Mobil ilova maxfiyligi va kirish ruxsatlarini boshqarish foydalanuvchilarni ushlab qolishning asosiy omillaridir.
Rozilik bo'lishi kerak: ixtiyoriy (yo'q yo'q degani), aniq («hamma narsa uchun» rozilik to'planishi mumkin emas), xabardor (foydalanuvchi nimaga rozilik berayotganini biladi) va shubhasiz (faol harakat talab qilinadi — belgi qutisi, tugma). Oldindan belgilangan qutilar GDPR tomonidan taqiqlangan. Buzilish uchun jarimalar — global aylanmaning 4% i yoki 20 million yevrogacha. Mobil ilovada kirish ruxsatlarini to'g'ri sozlash jarimalardan qochishga yordam beradi.
IT Sectr tajribasiga asoslanib — ruxsatlar va maxfiylik bilan ishlash bo'yicha bir nechta amaliy tavsiyalar. Ruxsatlarni kontekstda so'rang: tizim dialogidan oldin ruxsat nima uchun kerakligini tushuntiruvchi ekranni ko'rsating. Masalan, kamerani so'rashdan oldin ko'rsating: «QR kodlarni skanerlash uchun kamera kirishi kerak» — bu rozilik ehtimolini 40% ga oshiradi. Mobil ilovalarda kirish ruxsatlari foydalanish kontekstida so'ralishi kerak.
Birinchi ishga tushirishda barcha ruxsatlarni so'ramang. Kontekstli ruxsat so'rovi (foydalanish paytida so'rash) onboardings paytida so'rashdan 60% yuqori konversiyani beradi. Rad etishni xushmuomalalik bilan boshqaring: agar foydalanuvchi rad etsa, funksionallikni bloklamang, balki muqobil taklif qiling (masalan, joylashuv o'rniga manzilni qo'lda kiritish). Mobil ilova maxfiyligi bu yondashuvdan foyda oladi.
iOS uchun Privacy Manifest ni qo'shishni unutmang (2025 dan barcha ilovalar uchun majburiy). Android uchun Google Play Console da Data Safety Section ni belgilang. Barcha ruxsatlar holatini mahalliy saqlang va tizim sozlamalari bilan sinxronlang. Muvofiqlikni muntazam tekshirib turing — qonunchilik tez o'zgaradi. Mobil ilovaning kirish ruxsati modeli va maxfiyligi doimiy auditni talab qiladi.
Tez-tez so'raladigan savollar
ATT foydalanuvchini kuzatish uchun aniq so'rovni talab qiluvchi Apple freymvorki (iOS 14.5+). Roziliksiz, IDFA nol qaytaradi. ATT so'rovi kuzatish maqsadining aniq tavsifini o'z ichiga olishi kerak. Qabul qilish darajasi ilovaga qarab 15–25% ni tashkil qiladi. iOS da mobil ilovada kirish ruxsatlari kuzatish maqsadining aniq tavsifini talab qiladi.
Normal Permissions o'rnatish vaqtida avtomatik beriladi — so'rov talab qilinmaydi (INTERNET, VIBRATE). Dangerous Permissions runtime so'rovini talab qiladi (CAMERA, LOCATION, MICROPHONE) — foydalanuvchi istalgan vaqtda rad etishi mumkin. Normal maxfiylikka ta'sir qilmaydi; Dangerous shaxsiy ma'lumotlarga kirishni beradi.
GDPR talab qiladi: ma'lumot to'plash uchun aniq rozilik, hisob va ma'lumotlarni o'chirish imkoniyati, buzilish xabarlari. Ilovalar uchun: birinchi ishga tushirishda rozilik banneri, ma'lumot to'plash maqsadlarining aniq tavsifi, sozlamalarda «Hisobni o'chirish» tugmasi, kirish ruxsatlarini boshqarish bilan birga. Jarima — aylanmaning 4% igacha.
IDFA (Reklamachilar uchun identifikator) iOS da qurilmaning noyob reklama identifikatoridir. U reklama nishonlash va o'rnatish atributsiyasi uchun ishlatiladi. iOS 14.5 dan boshlab, IDFA ga kirish uchun ATT orqali rozilik talab qilinadi. Android da ekvivalenti GAID (Google Advertising ID). Mobil ilova maxfiyligi reklama identifikatorlari ustidan nazoratni talab qiladi.
Xulosa
Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz
IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.