iOS İzin İstemleri: Kötü, İyi ve Harika Örnekler
Yedi iOS izin istemi, "daha iyi bir deneyim için gerekli" cümlesinden uygulamanın ne yaptığını, ne zaman yaptığını ve neye yaradığını söyleyen tek bir cümleye yeniden yazıldı. Apple'ın kendi örnekleri, formül ve kontrol listesi.

Bir uygulama kameranızı, mikrofonunuzu ya da Face ID'nizi istediğinde başlığı ve iki düğmeyi iOS yazar. Uygulamanın yazdığı tek satır gerekçedir ve çoğu uygulama onu çöpe atar. Aşağıda kötüden harikaya tırmanan yedi izin istemi, her basamağın ardındaki gerekçe ve bir sonrakini yazarken kullanabileceğiniz bir formül var.
Sen ne yazarsın, iOS ne yazar
Sistem uyarısının sabit bir kalıbı var. Başlığı ("Kameraya Erişmek İstiyor") ve düğmeleri iOS sağlar. Uygulama ise neden erişime ihtiyaç duyduğunu söyleyen, amaç dizesi (purpose string) denen tek bir cümle sağlar. Bu cümle uygulamanın Info.plist dosyasında bir anahtarın içinde durur (kamera için NSCameraUsageDescription, mikrofon için NSMicrophoneUsageDescription) ve Ayarlar'da Gizlilik altında tekrar gösterilir.
Kötü

Harika

İki uyarının da başlığı ve düğmeleri aynı. Yalnızca tek cümle değişti. Kötü olan, insanlara az önce çevirmeleri istenen bir anahtarla ne yapacaklarını söylüyor. Harika olan ise Tara'ya dokunduklarında ne olacağını anlatıyor; böylece "bir muhasebe uygulaması neden kameramı istiyor?" sorusu sorulmadan cevaplanmış oluyor.
Apple'ın bu cümle için rehberi kısa: kısa, eksiksiz, açık, net ve anlaşılması kolay bir cümle; cümle düzeninde (sentence case), etken çatıda ve noktayla biten. Aşağıdaki her harika satır buna uyuyor.
Basamak basamak
| Basamak | Satır ne yapıyor | Neyi hâlâ dışarıda bırakıyor |
|---|---|---|
| Kötü | Emir verir ya da erişimin "gerekli" olduğunu söyler | Özelliğin ne yaptığını, ne zaman olduğunu, neye yaradığını |
| İyi | Erişimin ne için olduğunu söyler | Ne zaman olacağını ve faydayı |
| Harika | Uygulamanın ne yaptığını, ne zaman yaptığını ve neye yaradığını söyler | Kişinin karar vermek için ihtiyaç duyduğu hiçbir şeyi |
1. Kamera
Kötü
Kamera erişimini aç.
Gerekçesiz bir emir. Uyarının kendi başlığını tekrar ediyor.İyi
Fişleri taramak için kamerayı kullanıyoruz.
İşi adlandırıyor. İnsanlar yine de kameranın ne zaman açılacağını bilmiyor.Harika
Tara'ya dokunduğunda toplamı biz okuruz, sen hiç yazmazsın.
Erişimi bir ana (Tara'ya dokunmak) ve bir faydaya (yazmak yok) bağlıyor. Kamera asla sürpriz şekilde açılmıyor.
Tidybooks uydurma bir uygulama. Apple, erişim gerektiren özelliği kullanırken izin istemeyi öneriyor; yani bu istemi göstermenin en iyi anı ilk açılış değil, Tara'ya ilk dokunuş.
2. Mikrofon
Burada kötü ve harika satırlar, gizlilik rehberlerinden kelimesi kelimesine Apple'a ait.
Apple'ın kötü örneği

Apple'ın harika örneği

Kötü
Daha iyi bir deneyim için mikrofon erişimi gereklidir.
Edilgen ve belirsiz. "Daha iyi bir deneyim" her şey olabilir, "gereklidir" ise talep gibi duyuluyor.İyi
Horlamayı algılamak için dinliyoruz.
Etken ve ne için olduğunu söylüyor. Ne zaman olduğunu ya da gece boyunca olduğunu söylemiyor.Harika
Uygulama, horlama seslerini algılamak için gece boyunca kayıt yapar.
Etken; nasıl (kayıt yapar), ne zaman (gece boyunca) ve neden (horlamayı algılamak için) olduğunu söylüyor. Bunu okuyan kişi neyi kabul ettiğini tam olarak biliyor.
Nightly uydurma bir uygulama. Ders fiillerde: "gereklidir" kimin ne yaptığını gizler, "gece boyunca kayıt yapar" ise açıkça söyler. Kayıt konusunda dürüst olmak, insanları İzin Ver'e dokunduran şeydir.
3. Bluetooth
Kötü
Bluetooth gereklidir.
Bir gerekçe değil, bir olgu beyanı. Kim için gerekli, ne için?İyi
Kilidini açmak için Bluetooth kullanıyoruz.
Cihazı ve işi adlandırıyor.Harika
Kapıya yaklaştıkça kapını açarız, anahtara hiç ihtiyacın kalmaz.
Anı (kapıya yaklaşırken) ve getiriyi (anahtar yok) söylüyor. Bluetooth kelimesi zaten sistem başlığında var.
Doorkey Home uydurma bir uygulama. Harika satırın başlığı tekrar etmediğine dikkat edin. iOS zaten "Bluetooth Kullanmak İstiyor" diyor, bu yüzden cümle kelimelerini gerekçeye harcıyor.
4. Face ID
Kötü
Face ID'yi etkinleştir.
Gerekçesiz bir emir kipi, Apple'ın "Mikrofon erişimini aç." örneğiyle aynı kalıp.İyi
Daha hızlı giriş yapmak için Face ID kullan.
Faydayı veriyor. Face ID'nin aslında neyi koruduğu konusunda hâlâ sessiz.Harika
Face ID, uygulamayı açılışta kilitten çıkarır, paranı yalnızca sen görürsün.
Ne zaman (açılışta) ve neyi koruduğunu (paran) söylüyor. Uygulamanın kilidini açmanın ötesinde hiçbir şey iddia etmiyor, çünkü Face ID uygulamaya yalnızca eşleşmenin geçip geçmediğini söyler.
Northbank uydurma bir bankacılık uygulaması. Güvenlik metnini özelliğin gerçekten yaptığıyla sınırlı tutun. Kontrolün sunduğundan fazlasını vaat eden bir satır, sıkıcı bir satırdan daha kötüdür.
5. Fotoğraflar
Kötü
Fotoğraf erişimi gereklidir.
Bluetooth'taki aynı "gereklidir" sorunu, üstüne tehdit gibi duyuluyor.İyi
Düzenlemelerini kitaplığına kaydediyoruz.
Fotoğrafa ne olacağını söylüyor.Harika
Dışa Aktar'a dokunduğunda fotoğrafı kaydederiz, böylece paylaşabilirsin.
Kaydetmeyi Dışa Aktar dokunuşuna bağlıyor ve gerekçeyi (paylaşabilmek) veriyor.
Filmstrip uydurma bir fotoğraf düzenleyici. iOS'un burada yazdığı başlık "Fotoğraflarına Eklemek İstiyor", yani dar kapsamlı, yalnızca yazma iznidir. Cümle de bunu yansıtmalı: kaydeder, göz atmaz.
İki tane daha, sıfırdan yazıldı
Aynı kurallar, yukarıdaki beşin kapsamadığı durumlar için de geçerli. Bu ikisi bizim kendi örneklerimiz, uygulamalar uydurma.
Kötü
Daha iyi bir deneyim için konum gereklidir.
Mikrofon örneğindeki aynı boş laf, farklı bir izinle.İyi
Restoranları bulmak için konumunu kullanıyoruz.
Erişimin ne için olduğunu söylüyor.Harika
Uygulamayı açtığında kapına teslimat yapan restoranları gösteririz.
Ne zaman (açılışta) ve sonucu (yalnızca sana teslimat yapan yerler) söylüyor.
Kötü
Rehberine erişime izin ver.
Uygulama tanıdığın herkesi okumak istiyormuş gibi duyulan bir komut.İyi
Arkadaşları bulmak için rehberini kullanıyoruz.
Kullanımı adlandırıyor, ama "arkadaş bulmak" bir listeyi yüklemek anlamına gelebilir.Harika
Arkadaş Ekle'ye dokunduğunda rehberinden kişiler öneririz, böylece hesabı bölüşebilirsin.
Erişimi dokunuşa ve işe bağlıyor. Önerilerin istendiğinde göründüğü beklentisini kuruyor.
Formül: ne yapıyor, ne zaman, neye yarıyor
Yukarıdaki her harika satır, tek cümlede aynı üç parçaya oturuyor:
[What it does.] [When it happens.] [Why it helps.]
| İstem | Ne yapıyor | Ne zaman | Neye yarıyor |
|---|---|---|---|
| Kamera | Toplamı okuruz | Tara'ya dokunduğunda | Hiç yazmazsın |
| Mikrofon | Uygulama kayıt yapar | Gece boyunca | Horlama seslerini algılamak için |
| Bluetooth | Kapını açarız | Yaklaştıkça | Anahtara ihtiyacın kalmaz |
| Face ID | Face ID uygulamayı açar | Açılışta | Paranı yalnızca sen görürsün |
| Fotoğraflar | Fotoğrafı kaydederiz | Dışa Aktar'a dokunduğunda | Paylaşabilirsin |
"Ne zaman" kısmı, ekiplerin ilk bıraktığı parçadır ve erişimi güvenli hissettiren de odur; çünkü uygulamanın kişinin seçmediği bir anda harekete geçmeyeceğini vaat eder.
Bir sonraki istemin için kontrol listesi
- Tek cümle, etken çatı, noktayla biter. Apple'ın kendi çıtası bu.
- Gerekçeyi söyle, izni asla. iOS zaten "Kameraya Eriş" yazdı.
- Anı adlandır. Bir dokunuş, günün bir saati, bir özelliğin ilk açılışı.
- Özellik ihtiyaç duyduğunda iste. İlk açılışta değil, özellik ilk açılış değilse.
- "Gerekli", "zorunlu" ya da "daha iyi deneyim" yok. Talep gibi duyuluyorlar ve hiçbir şey söylemiyorlar.
- Yalnızca özelliğin yaptığını vaat et. Sadece uygulamanın kilidini açıyorsa, bunu söyle.
- Ayarlar'da da oku. Aynı dizge Gizlilik altında, bağlamdan kopuk görünür.
SSS
iOS'ta amaç dizesi (purpose string) nedir?
Bir uygulamanın kamera ya da mikrofon gibi özel bir şeye neden erişmek istediğini açıklamak için sağladığı tek cümledir. Uygulamanın Info.plist dosyasında NSCameraUsageDescription gibi anahtarların altında durur ve sistem uyarısında ve Ayarlar'da Gizlilik altında gösterilir.
İyi bir izin mesajı nasıl yazılır?
Özelliğin ne yaptığını, ne zaman olduğunu ve neye yaradığını söyleyen, noktayla biten kısa, etken tek bir cümle yazın. "Tara'ya dokunduğunda toplamı biz okuruz, sen hiç yazmazsın." bu kalıba bir örnektir.
Kötü izin istemi örnekleri nelerdir?
Gerekçesiz, belirsiz ya da edilgen satırlar: "Daha iyi bir deneyim için mikrofon erişimi gereklidir.", "Kamera erişimini aç.", "Bluetooth gereklidir." ve "Face ID'yi etkinleştir." Her biri insanlara uygulamanın ne istediğini söyler, nedenini asla.
iOS izin uyarısının başlığını ve düğmelerini kim yazar?
iOS yazar. Başlığı ve düğmeleri o yazar, dolayısıyla kontrol ettiğiniz tek metin amaç dizesidir. Bu yüzden tek cümlenin gerekçenin tamamını taşıması gerekir.
Bir uygulama izni ne zaman istemeli?
Bir kişi izin gerektiren özelliği kullandığında isteyin, öncesinde değil. Apple'ın rehberi, erişimi yalnızca uygulamanın buna açıkça ihtiyacı olduğunda istemek; yani kamera istemi Tara'ya ilk dokunuşta gelmeli.
Kaynaklar
- Privacy: Requesting permission, Apple Human Interface Guidelines. İki mikrofon dizesinin, "kısa, eksiksiz cümle" rehberinin ve bağlam içinde sorma tavsiyesinin kaynağı.
- Requesting authorization to capture and save media, Apple AVFoundation dokümantasyonu.
- Writing, Apple Human Interface Guidelines.
- Yukarıda kullanılan Info.plist anahtarları:
NSCameraUsageDescription,NSMicrophoneUsageDescription,NSBluetoothAlwaysUsageDescription,NSFaceIDUsageDescription,NSPhotoLibraryAddUsageDescription, Apple'ın Information Property List referansında. - Örneklerdeki uygulamalar (Tidybooks, Nightly, Doorkey Home, Northbank, Filmstrip ve sıfırdan yazılan iki uygulama) uydurmadır. Yalnızca mikrofon dizeleri Apple'a aittir.
- İlk olarak UX Brainy üzerinde bir karusel olarak yayımlandı.
Want every permission, onboarding and empty state written and designed as one system? Our team designs app UI with the words in it from the first draft.
Get Started




