Подбирая новый урок по программированию под Android для подписчиков своего сайта, я решил рассмотреть пример добавления собственного события в системное приложение Календарь из своей программы. Из различных записей в блогах узнал, что Календарь в эмуляторе появился, начиная с Android 4.0. Так как мой телефон обновился до этой версии, то старые эмуляторы я снёс, поэтому проверить данное утверждение не могу, но вроде значка этой программы в старых эмуляторах действительно не видел.
Итак, изучив документацию и несколько примеров из интернета, я создал небольшой проект и запустил его в эмуляторе Android 4.1 (Jelly Beans).
При попытке добавить событие в календарь получил сообщение, что Календарь необходимо настроить, добавив учётную запись. Надо, так надо. Запускаю Календарь и начинаю настраивать свою учётную запись. Первый экран порадовал надписью, что настроить аккаунт очень просто.
Второй экран стал моей головной болью. Вот один из вариантов.
Я пробовал ставить и убирать галочки в разных вариантах, нажимал на кнопку Выбрать — без результата. Начал гуглить для решения проблемы — выяснил два момента — SSL использовать надо (убирать галочки нельзя), а в качестве сервера нужно использовать адрес m.google.com. Но у меня всё равно ничего не получалось, когда я нажимал на кнопку Выбрать, то сначала предлагалось установить сертификат, а при попытке установить сертификат — система ругалась, что на устройстве нет SD-карты. Прописав на эмуляторе SD-карту, я получил сообщение, что сертификата на ней не обнаружено и всё вернулось на круги своя.
Расстроившись, я решил отложить пример до лучших времён, так как предлагать урок, работающий только на реальном устройстве, не очень хотелось. Но меня не покидала мысль, что если Календарь в эмуляторе есть, значит он должен работать и всё дело в моих кривых руках. Неделю спустя я снова стал искать ответ на свой вопрос в интернете. И, о чудо, в одном зарубежном блоге автор снабдил свою запись о настройке Календаря скриншотами. Взглянув на них, я сразу понял, в чём была моя ошибка.
Как, ну как я мог догадаться, что нужно было прокрутить экран чуть вверх, чтобы увидеть кнопку Далее? Может жара на меня так повлияла, или я стал слишком стар для таких вещей, но подобное решение ввело в ступор. Вопрос к знатокам — а вы считает такой подход интуитивно-понятным? В браузере я всегда вижу полосу прокрутки, которая явно даёт понять, что существует невидимая область контента (хотя я слышал, что и в браузерах уже пытаются убрать эту полосу).
На мой скромный взгляд, данное решение в интерфейсе Календаря является серьёзным упущением со стороны дизайнера. Такую технику не составит труда использовать и в плохих сценариях. Представьте себе что на экране настроек вы ставите/убираете различные галочки, а в нижней невидимой части экрана есть еще один пункт «Установить тулбар» от Яндекса, Гугла, Mail.ru и т.д. Пользователь не будет видеть на экране эту настройку, а прокрутить экран не всякий догадается. И формально компанию обвинить нельзя, ведь они же не прятали настройку, просто она не поместилась на экран. Что думаете?
P.S. А пример после настройки Календаря прекрасно заработал на эмуляторе без единой ошибки. Чего и вам желаю.
Автор: tehnolog