Ошибки Android интерфейса Twitter

    В прошлом посте, я анализировал Evernote на предмет недочетов в следовании гайдлайнам. Сегодня хочу провести анализ интерфейса Twitter.

    Action Bar


    Поиск

    В руководстве разработчика по работе с Action Bar Google вводит такое понятие как «Представление действия (Action View)». Виджет поиска — одно из таких представлений. По-умолчанию оно свернуто в иконку, но при разворачивании должна появляться иконка «вверх», нажатие на которую позволяет свернуть действие обратно (см. раздел "Поддержка сворачиваемый представлений действий"). В Twitter при открытии поиска отсутствует иконка «вверх»



    Двойной Action Bar

    Такое мы уже видили в Evernote. На экране одновременно два Action Bar при выделении текста. Может быть, разработчики это специально делают?

    Представления

    Для переключения между представлениями верхнего уровня Google предлагает воспользоваться одним из трех шаблонов интерфейса: выпадающий список в Action Bar, панель вкладок или боковое меню. Иконки в Action Bar предназначены для вызова действий.

    В Twitter мы имеем 5 представлений верхнего уровня: лента (aka «Главная»), сообщения на актуальные темы (aka «В курсе»), действия друзей (aka «Действия»), уведомления и личные сообщения. Так как пользоваться вкладками, когда их больше трех становится неудобно, разработчики сделали вызов списка личных сообщений и уведомлений как действия в Action Bar. На рисунке ниже цифрой 1 обозначены элементы управления, переключающие предсталвения, а цифрой 2 — иконки действий.


    Меню переполнения

    На устройствах с аппаратной кнопкой «меню» все равно показывается индикатор переполнения Action Bar. Прямых указаний Google что так делать нельзя я не нашел. Однако при нажатии на аппаратную кнопку меню переполнения должно показываться снизу. Twitter его показывает наверху, как и при нажатии на соответствующую иконку.

    Навигация


    Многие разработчики неправильно понимают сущность кнопки «вверх». Обычно её считают дублером кнопки «Назад», хотя это не так. В твиттере так не считают, но все равно её поведение бывает неочевидным. Активности одного уровня (например, профиль пользователя) при переходе вверх ведут в разные места:


    Долгое нажатие


    Список твитов

    В случае с Evernote мы видели обработку долгого нажатия на элементе списка в духе Android 2, он показывал всплывающее контекстное меню. Это поведение хоть и было устаревшим, но привычным. Twitter реализует свою замену контекстному меню. В нем, после долгого нажатия, твит заменяется на большую панель с несколькими кнопками. Они практически полностью дублируют кнопки на самом твите. Но, что самое ужасное, его нельзя отменить привычным нажатием кнопки назад, как это делается с контекстным меню.


    Отдельный твит

    В окне с открытым твитом, долгое нажатие перестает вызывать «меню действий», не приводит к выделению текста, а совершенно внезапно… копирует текста твита в буфер обмена. К чести проектировщиков интерфейса твиттера, приложение не делает это молча, а показывает уведомление в виде тоста внизу экрана.

    Иконки действий

    Долгое нажатие на иконке действия в Action Bar не приводит ни к чему. Название действия никак не показывается. Даже скриншотить нечего.

    Настройки


    Настройки используются пользователем не очень часто и во многих приложениях они сделаны как попало, часто даже с использованием другой темы оформления. В Twitter тема оформления настроек такая же как в остальных частях приложения. Проблема же заключается в других вещах: неполная локализация и неверные элементы управления.

    Сравните окно настройки уведомлений Twitter и автозагрузки фото в Google+:
     
    На лицо неверное использование флажка для выключения уведомлений. Вот что нам говорит Google:
    Флажки позволяют пользователю выбрать несколько опций из списка. Избегайте использования флажков для включения и выключения отдельной опции, вместо этого используйте выключатель.

    Но более странно, что флажок применили на элементе, который предполагает выбор из нескольких вариантов. При нажатии на пункт «упоминания» вместо изменения состояния флажка появится всплывающее окно с выбором одного из вариантов: «Откл.», «Специально для вас» и «От всех». Более логичным в данном случае было бы просто не рисовать иконку флажка, как это сделано в Google+ для выбора вариантов опции «Когда загружать фото»

    Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

    Интересен ли данный формат постов?

    Поделиться публикацией

    Комментарии 32

      –35
      Какова практическая составляющая Вашего поста?
      Вот честно — лично я «читатель» Хабра и большинство постов (не все конечно) я теоретически представляю как использовать в реальной работе/жизни.А Ваш?
        +35
        Можно посмотреть на чужие ошибки и не допустить их при проектировании интерфейса своего приложения.
          –3
          Можно просто следовать рекомендованной документацие во избежании ошибок. Вот сами посудите — если бы все следовали стандартам — разве было бы плохо?
            +6
            Одно дело — сухая спецификация стандарта (особенно если это — рекомендация), другое — «разбор полётов», написанный эмоционально и, к тому же, на родном языке. Автору спасибо за внимание к мелочам. Именно такие мелочи отличают качественное приложение от кустарной поделки.
          +5
          подумать над ошибками, сделанными в юзабилити клиента твиттера, при разработке своего приложения не повторить их.
            –7
            Я не спорю, что лучше учиться на чужих ошибках, но главное понимать «откуда ноги растут» — из-за нежелания ознакомиться с документацией или же от стремления сделать «не как все/изобрести свой велосипед».
          –1
          Вопрос 1.
          Как вы думаете, если бы в приложении были учтены эти ошибки и исправлены, но оно было бы не твиттером а каком-то другим мало известным аналогчным сервисом, это помогло бы ему зарабатывать больше денег или пользователей?
          Вопрос 2.
          Как вы думаете есть ли аудитория которую можно понятным образом измерить которая потеряна твиттером из за наличия этих особенностей.
          Вопрос 3.
          Если команда твиттера потратит своё время на фикс, будет ли это полезным в свете того что он могут заниматься другими, часто более важными для сервиса задачами.
          Вопрос 4.
          Будь вы руководителем проекта твиттер, вы отложили бы релиз до фикса этих вещей или нет?
          • НЛО прилетело и опубликовало эту надпись здесь
              +1
              Верно ли я вас понял, что если имеется продукт и он удовлетворяет функциональным требованиям, но немного неидеален, это повод не выпускать его а продолжать полировать?
              • НЛО прилетело и опубликовало эту надпись здесь
                +5
                Да-да. Это как готовят в столовках ВУЗовских — «да и хрен с ним, что помои — студент всё сожрёт».
                  –1
                  Т.е. надо в универское меню поместить стейки из австралийской мраморной говядины по 2-3т.р. за стейк, изысканных кальмаров и подобные блюда. Ведь меньше 1000 руб за блюдо ничего превосходного подать нельзя. Знаете, я всегда любил столовую нашего универа за то что там можно быстро и дёшево поесть, и за то что там не отравишься и сытно. И превосходный ресторан не то что нужно студенту. Всегда есть цель и нельзя быть идеальным во всём.
                    0
                    за то что там не отравишься и сытно

                    Простите, вы, должно быть из default city? Потому что в столовой государственного университета моего города не отравиться за всё время обучения удавалось только самым стойким… А также тем, кто там не ел.

                    Есть очень хороший способ узнать счастливого человека. Счастливый человек, когда ему кто-то пожалуется на тяготы жизни, начинает рассуждать в духе «лучшее — враг хорошего и идеал недостижим».

                    Я сам уже давно не студент. И надеюсь, что моя информация устарела. Но сомневаюсь.
                +1
                А вы, случаем, не менеджер проектов? Главная задача менеджера — прикрыть свой зад перед вышестоящим менеджментом. Обычно на качество продукта и пользователей им насрать… Да, все эти мелкие допилки денег не принесут, но повысят лояльность пользователей к продукту.
                  0
                  Именно что менеджер, но попавший в менеджмент из разработчиков. И будучи разработчиком я действительно был совершенно другого мнения, но когда стал смотреть на продуктовые метрики, на то что пишут пользователи, на то что и как я делаю понял что излишний перфекционизм — смерть проекта. Особенно когда ты поправил гору мелких багов и ничего не произошло, а когда ты дал пользователям новую фичу, и они больше времени пользуются продуктом, больше платят, пишут комменты кому нравится и не нравится, вот истинная метрика имхо. Тот же iPhone первый вышел без копи-паст функционала и ещё много без чего. И работал не неделю как другие телефоны а сутки. И у создателей не было варианта сделать всё и сразу. Варианты были или сделать что возможно, или не сделать. Глубину и размер забивания на мелочи необходимо научиться контролировать, и сейчас я именно это и пытаюсь сделать. Речь об управлении качеством. Не о том чтобы сделать максимум возможного (потому что аппетит придёт во время еды и продукт не будет идеален никогда). Нельзя в глобальной стратегии пугаться мелких тактических огрехов. Моё сознание переломилось тогда, когда я, как разработчик, смог вешать статистики на фичи и смотреть что происходит, получать истинную обратную связь а не вымышленную. И для меня это было как пелена с глаз. Можно долго за перфекционизмом скрывать нежелание идти вперёд.
                    0
                    В конце концов это может привести к тому, что Google вслед за Apple сделает соблюдение гайдлайнов обязательным и перестанет пускать в Play неверно написанные приложения. После чего при наличии мелких интерфейсных багов перед релизом у вас уже не будет выбора, исправлять их или нет.

                    Отдельные UI-ошибки в релизах допустимы, но копить их нельзя, потому что это чревато проблемами как раз в плане стратегии. Во-первых, есть такое понятие, как «технологическая задолженность». Во-вторых, совесть всё-таки надо иметь.

                    P. S. Вы «South Park» смотрите?
                +2
                Я сам часто начал замечать такие ошибки клиента, скрытые под под красивым интерфейсом.
                В Гугл Плэй у меня до сих пор весит отзыв с предложением: почему им бы не объединить 2 панели? Получается самая верхняя полу пустая, в итоге забирает ценное пространство.
                Программа я понимаю, должна иметь минималистический и ми-ми-мистический интерфейс, что дает большое пространство для работы.

                P.S. Когда-то я перерисовывал удобный интерфейс ПалмОС под современный лад

                  +1
                  Они пофиксили поведение, когда с поиска заходил на твит, нажимал на «назад», и возвращался на страницу, которая была перед поиском. Вот это был чудовищный бред, после которого я навсегда удалил клиент.
                    +1
                    А я вот каждый раз диву даюсь, пользуясь Google Play-ем. Скажем, ищем нужный нам софт: нажали кнопку с «лупой», пишем в поле поиска строку (варианты выпадают, но нужного часто нет зато есть такие чуднЫе, что становится интересен алгоритм «подсказки» — иное из того, что подсказывается, в Play не ищется вообще).
                    Набрали строку, получили поисковые ответы. Нажали на описании программы — попали в ее описание. В нем нажали на иконку слева вверху — попали не в результаты поиска, а на предшествовавший поиску экран. Зато, если нажать контекстную кнопку «назад» под экраном — попадем в результаты поиска. В общем, чехарда, да и только.

                    И это — «ворота», программа, которую используют все. Сделанная Гуглом. Они еще дают рекомендации по UI? )
                      0
                      Про подсказки и результаты поиска я соглашусь, а вот про кнопки Back и UP — нет. То что вы описали — это абсолютно точное поведение с точки зрения гайдов. Я согласен, что для пользователя это не всегда очевидно (почему именно так), но для этого нужно, что бы больше приложений следовали гайдам и вырабатывали привычки у пользователей.
                        0
                        Я не знаю, какие гайды в iOS, и клиентов под нее, но я никогда не думал там, куда и как нажать. Когда купил Андроид, питался вспомнить — а как было на Айос, и не мог — все настолько просто и подсознательно, что в сознании даже не остается, и тем более не раздражает. А то, что поведение с точки зрения гайдов точное, вот только пользователи тупые, непонятливые — так ведь в этом вся суть поделок под Андроид — пользователь должен подстроится, запомнить, зарубить себе на носу — тут не ты главный, парниша, тут главный гайд. А ты так, мимо проходил.
                          +3
                          Не надо передергивать, я не говорил что гайд главный.
                          Тут проблема есть, но она связана не с плохими гайдами, а тем, что им не следуют. Пример с iOS работает только потому, что за счет премодерации они гарантируют исполнения гайдов всеми разработчиками. Вам это становится очевидно именно потому, что все приложения работают одинаково. С android это, к сожалению, не так.
                          Проблема отнюдь не в плохих гайдах, а в том, что им не следуют и считают, что ими можно пренебрегать (так считают многие в комментариях).
                          Пользователь достаточно быстро привыкает к разным шаблонам, если видит их регулярно. Вы и не заметите как подстроитесь (как не заметили с iOS).
                          +1
                          Хм… а которая кнопка — это Up, которая Back? На обоих стрелочки влево нарисованы. :)

                          А если серьезно, то та из них, что слева вверху экрана, переносит обычно на уровень выше в иерархии разделов. Теперь попробуйте: зайдите в Play, поищите строку «zxyzxy», затем поищите строку «hello». Из результатов второго поиска эта кнопка вернет Вас в результы первого поиска, а вовсе не в раздел каталога «уровнем выше» — т.к. стрелка отработала не как Up, а как Back.

                          Теперь зайдите в программу настройки телефона. Нажмите в ней в любом подразделе эту же кнопку — она здесь строго работает как Up (точнее, если она есть, то она — Up).

                          Так вот вопрос: как, делая приложения, которые есть почти на каждом андройд-устройстве, можно было в двух этих приложениях, во-первых, допустить разное трактования одной и той же кнопки, во-вторых, кое-где эту кнопку вообще забыть вывести?

                          Разное действие кнопки — верный путь, что юзер к ней не подстроится. UI-требования — это очень хорошо, но их еще и отслеживать надо, и это на практике — проблема.
                            0
                            Про Google Play не смог повторить. Всегда возвращает меня в список приложений. (Первое нажатие сварачивает поле ввода поиска). А в целом вы правы, google в своих приложениях часто по разному трактует элементы (чего стоит боковое меню, пока в гайдах не прописали, везде по разному было и новый pull to refresh, который сейчас разный).
                      –2
                      Автору- спасибо за статью, но лучше озаглавить не «Ошибки Android интерфейса» а — несовпадение с рекомендациями гугла. Гугл не догма, если пользователю все понятно и удобно то и отлично.
                      Именно ошибок интерфейса как то очень мало в статье…
                        +3
                        Поскольку никакого иного стандарта, кроме как рекомендации гугла, в области интерфейса для андроида не существует, и поскольку многие программы стараются следовать этим рекомендациям, у пользователя вырабатывается ожидание поведения, прописанного в упомянутых рекомендациях. И когда программа в целом выглядит похоже и многое делает в соответствии с этими привычками, расхождения являются действительно ошибками, поскольку игнорируют ожидаемое пользователем поведение.

                        Зануда mode on
                        Ошибка — несоответствие между объектом или явлением, принятым за эталон (материальный объект, решение задачи, действие, которое привело бы к желаемому результату), и объектом/явлением, сопоставленным первому (Википедия). В данном случае эталоном являются именно рекомендации гугла.
                        0
                        Это уже немного смешно.
                        Именно в твиттере придумали многие интерфейсы, которые потом тот же Google
                        уже использовал в своих Android (при чем в разное время разные),
                        да и не только в Android (всеми любимый Pull To Refresh)

                        Да и вообще
                        Гайды Google за время жизни Android скачут то туда то сюда.
                        Это не священный грааль.
                          +2
                          Ну вот я не могу придумать ни одного интерфейсного решения, который придумал твиттер и его бы использовал Google в своих приложениях. Тот же PullToRefresh в том виде, который его придумал твиттер гугл никогда не использовал, да и я не знаю ни одного приложения на android где бы это работало хорошо. Везде проблема со скроллом возникает, даже в самом твиттере.
                          Гайды гугла особо не скачут. Они появились во внятном виде вместе с 3.0, когда появилось Holo. С тех пор кардинально гайды не менялись. Иногда они добавляют элементы, иногда меняют рекомендации к существующим (как с нажатым состоянием в KitKat), но что-то принципиально они не меняют.
                          А если учесть, что до Holo гайдов вообще не было, то можно сказать никогда не меняли.
                            +1
                            Так вот, откуда этот «Pull down to refresh» взялся…

                            А я-то, получив описание этой фичи от заказчика, недоумевал, кому это в голову пришло такое странное поведение — потянуть список вниз (!!), чтобы он обновился. Мне, как пользователю, такое бы никогда не пришло в голову
                          +1
                          Переместите, пожалуйста, статью в хаб «Разработка под Android»
                            0
                            Готово.
                              0
                              Спасибо. Но я имел в виду убрать статью из хаба «Android». Те, кому эта статья может пригодится, и так её увидят, потому что подписаны на хаб «Разработка под Android»

                          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                          Самое читаемое