Съдържание:
Технически Android 6.0 Marshmallow е от цяла седмица. (По-малко, ако преброите датата на спада на кода, предполагам.) Но той е в състояние за визуализация на програмисти от месеци и разработчиците са успели да изпращат приложения, които използват новото ниво на API (и по този начин новите разрешения) за малко време сега.
Така че, ако използвате Marshmallow на Nexus телефон (и наистина трябва да бъдете), ще започнете да стартирате новата схема на разрешения, тъй като приложенията се актуализират. Един от първите ми случаи на това беше с Twitter. (И кудо към Twitter, защото е един от най-ранните.)
Как Twitter го прави …
Помислете за тази екранна снимка, която ще видите, когато отворите Twitter за първи път. Twitter би искал да използва настоящото ми местоположение, за да персонализира моето изживяване. Добре защо не. Харесвам местоположението си и харесвам по-добри преживявания. Ще го позволя.
Тогава започва новото разрешение в Marshmallow. Искам ли да дам достъп на Twitter до нещото, за което казах, че искам да му дам достъп? Да, да. Ето защо за първи път ударих ОК.
Работата е там, че първият диалогов прозорец на Twitter всъщност няма нищо общо с действителното разрешаване на моето местоположение. Той просто задейства системния диалог. Но той е формулиран малко по-приятелски от диалога за разрешения за Android.
Обмисли:
Twitter: "Twitter би искал да използва вашето текущо местоположение, за да персонализира вашето преживяване."
Android: "Да се разреши ли на Twitter достъп до местоположението на това устройство?"
Два въпроса, подобни на разрешения, които задават един и същ въпрос, но само един всъщност позволява всичко.
Първият ми казва какво иска да прави - и по-важното защо иска да го направи. Последното е най-вече същия вид просто, но неясно разрешение - говорене, което сме дошли да се отвращаваме от Android. И това трябва да бъде, предполагам. Но там приложението, което изисква разрешението - този първи диалогов прозорец от Twitter - става още по-важно. Вместо веднага да ми даде опцията „Не разрешавай / ОК“, Twitter трябва да вземе друго изречение, за да ми каже какво следва. „Twitter би искал да използва вашето текущо местоположение, за да персонализира вашето преживяване. Ако сте готини с това, щракнете върху„ разреши “на следващия екран.“ Или нещо в този смисъл. Тогава имате по-добър контекст за заявката за разрешение и потребителят е подготвен за това, което идва - и то не е толкова повтарящо се.
Това са две твърди спирки за потребителя и това е трудно. Но това е еднократна болка точка. И си струва, струва ми се, за да ни накарат да обърнем малко повече внимание на опасните (това е техническият термин) разрешения, които приложенията може да изискват. От друга страна, иконографията и контекстът могат да означават, че няма нужда да ми казвате, че сте на път да поискате разрешение за камерата, тъй като току-що почуках иконата на камерата.
Ето как Google го казва:
При някои обстоятелства може да искате да помогнете на потребителя да разбере защо приложението ви се нуждае от разрешение. Например, ако потребителят стартира приложение за фотография, той вероятно няма да се изненада, че приложението иска разрешение за използване на камерата, но потребителят може да не разбере защо приложението иска достъп до местоположението или контактите на потребителя. Преди да поискате разрешение, трябва да помислите за предоставяне на обяснение на потребителя. Имайте предвид, че не искате да затрупвате потребителя с обяснения; ако предоставите твърде много обяснения, потребителят може да намери приложението за неудобно и да го премахне.
Как Facebook го прави …
Нека да разгледаме как Facebook - още едно приложение, което вече е актуализирано за новите разрешения.
Ааааа, рядката молба за двойно разрешение. Това получавате от Facebook, когато натиснете иконата на камерата за нова актуализация на състоянието. Добре, изневерих малко - получавате това двойно известие, ако откажете разрешението за съхранение от първия път, когато се опитва да попълни миниатюрите на това, което е в галерията ви. Но това е хубаво направено. Facebook ви казва какво иска и защо го иска.
И тогава ще трябва да повторите отново. Да, бих искал Facebook да има разрешение да поиска телефона ми да направи нещо.
Но, отново, това е първият бутон „Разреши“, с който имам проблем. Всъщност не позволява нищо друго, освен диалога на системата, да ви поиска отново същото нещо. И трябва да го направите само веднъж.
Как се осъществява Hangouts …
Ето още един пример, този път в Google Hangouts. Попадането на иконите на камерата или галерията в рамките на разговор ще задейства само диалога на системата. Няма излишна заявка пред действителната, която предоставя разрешенията. (И отново искам да твърдя, че това е добре. Когато докосна иконата на камера, получаването на заявка за разрешение за камера вече има контекст.)
Там, където мисля, че Google наистина свърши хубава работа, беше с този първи пускащ обяснител за разрешението за контакти, което изравняване е необходимо, за да може приложението изобщо да работи. Първо се казва защо има нужда от достъп до вашите контакти. Натискането на „Напред“ след това представя заявката за разрешение на системата. Това, което пише „Напред“, а не „Разреши“, е това, което наистина е важно там. Единият се влива в другия. Явно не искате да правите всяка заявка за разрешение на цял екран като това. Но за нещо достатъчно важно, което да бъде представено на първо изпълнение, това е много хубаво направено.
Преминаването към разрешения за изпълнение е голямо и важно. Но те може да са малък учебен процес.
Признавам се, че правя малко планина от молил. Трябва само да преминете през това първи път за приложение. Но разрешенията са важни. (И мисля, че преминаването към разрешения за изпълнение е добро.) Обяснението на разрешенията е добро. Дори двойното спиране може да се пренебрегне в името на това да ви накара да изглеждате, преди да скочите. Обяснете разрешението на потребителя, просто не го карайте да мислят, че вече са го разрешили веднъж, само за да го накарат да го направят стъпка по-късно в системната заявка. Просто не обичам да се повтарям е всичко.
И както винаги, вие сте свободни да отнемате разрешения, когато пожелаете. Ако го направите, приложението ще поиска вашето разрешение отново следващия път, когато се опитате да използвате тази функционалност.
Важното е, че ние като потребители имаме нещо ново да свикнем тук. Но също така правят и разработчиците на приложения.
Актуализация: За по-техническо слушане на всичко това - и между другото, потвърждение, че начинът, по който Facebook и Twitter правят нещата, не е съвсем идеален - вижте Епизод 33 от подкаста на Android Developers Backstage.