Значки загрузки обманывают всех. Почему нам это нравится?

Микк Сид avatar | 17
FavoriteLoading В закладки
loading

Каждый день мы используем смартфоны, ноутбуки, компьютеры. Чтобы выйти в интернет, напечатать текст, узнать новости и многое другое, мы запускаем массу самых разных приложений.

И терпеливо смотрим на «спиннер» загрузки, который на самом деле вообще ничего не значит.

Думаете, это анимированное колёсико как-то связано с запуском нужной нам программы? Как бы не так, лол.

Сегодня современный Progress Bar выполняет лишь одну функцию: бесконечная анимация психологически облегчает процесс ожидания, и всё. Но почему нас это устраивает?

Эволюция прогресс бара: от MS-DOS до iPhone

История гласит, что первый «процентный индикатор выполнения» был придуман и описан в своей диссертации неким Брэдом Майерсом, в далёком 1985 году.

Этот элемент интерфейса должен был сделать пользователей компьютеров менее раздражительными и повысить эффективность их работы.

В то золотое время однозадачных операционных систем (ах, MS-DOS!) «крутилка» была действительно информативной: на экране сменяли друг друга простые символы \ | / –.

Смена символов была частью цикла работы программы, так что если программа зависала, то смена символов тоже прекращалась и можно было понять, что пора жать «ресет».

Затем появились многозадачные операционные системы, в которых индикатор выполнения действительно показывал процесс загрузки или копирования, и это было хорошо.

Постепенно сформировались негласные правила этого важного элемента системы. Вот какие задачи должен выполнять хороший индикатор прогресса:

  • мгновенная обратная связь
  • ощущение времени: сколько прошло и сколько осталось
  • подтверждение того, что приложение работает

А теперь посмотрите на современный Progress bar.

Как думаете, загружается ли сейчас что-нибудь? Как долго вы готовы ждать, чтобы понять, что это всего лишь зацикленная GIFка?

А главное, ни одну из вышеперечисленных задач такой прогресс бар не выполняет.

Если крутится – значит что-то происходит, так? – НЕТ

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

Так что «спиннер» может работать даже если программа подвисла, или интернет-соединение нестабильно, или случилось что-то ещё.

Гребаный кружок будет крутиться и крутиться, создавая иллюзию, что всё в порядке. А мы смотрим на него и думаем: «какая тяжёлая прога, надо же».

Если кратко: основная проблема современных прогресс баров – отсутствие информации о прогрессе.

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

Progress Bar бесит. Но нужно дать разработчикам время всё исправить

Многие разработчики приложений всё чаще отказываются от неинформативного индикатора, придумывая другие способы показать загрузку приложения: например в Linked In используется «экран-скелет», когда сначала появляется общий макет страницы, а элементы проявляются по мере загрузки.

Информативный индикатор важный элемент любого приложения или процесса в современных гаджетах. И я искренне надеюсь, что Apple когда-нибудь тоже откажется от бесконечного «спиннера» в iOS.

И за это многие пользователи простят другие недоработки и глюки яблочной операционки.

1 Звезд2 Звезды3 Звезды4 Звезды5 Звезд (4 голосов, общий рейтинг: 4.50 из 5)
undefined
iPhones.ru
Цикличный «кружок» при запуске приложений или игр вообще ничего не значит!
Прокомментировать

🙈 Комментарии 17

  1. CIA_agent avatar
    CIA_agent12 марта 2018
    16

    Микк Сид, хватит уже высасывать статьи из пальца.

    degussa8 avatar
    degussa812 марта 2018
    0

    @CIA_agent, а из чего ему высасывать их?

    Bonobo avatar
    Bonobo12 марта 2018
    2

    @CIA_agent, нет комментариев – нет зарплаты…

  2. Silmaril avatar
    Silmaril12 марта 2018
    6

    показывает ли спиннер или прогресс бар зависит от разработчика.
    К примеру запускаете приложение wifi включен но соединение отсутствует (или сервер недоступен, или соединение очень плохое). Приложение попытается загрузить данные показав индикатор загрузки. Но как вы предлагаете показать прогресс? Приложение не может знать этот прогресс чтобы показать. Спустя какоето время (timeout выставленный разработчиком) приложение может остановить анимацию и сообщить об ошибке.
    В какихто случая действительно можно показать прогресс бар, но это часто оставят на потом – так как есть более приорететные задачи.

    Max JBo avatar
    Max JBo13 марта 2018
    0

    @Silmaril, прогрессбар это линия с увеличивающимся процентом, а бичбол или пляжный мячик в маке или как то так это вроде разные UI элементы.

    прогресс бару дается определенное число например от 0 до 100 и он выводит результат например, а бичбол это просто циклическая анимация (ничего не обещающая пользователю) которая просто говорит о том, чтото происходит и все и да пользователь может устанавить timeout после этого он выведет ошибку и с прогресс баром мало использовалось

  3. pLoskutov avatar
    pLoskutov12 марта 2018
    4

    Ммм, вспоминаю как красиво дефрагментировался диск в визуальном интерфейсе под дос.
    Особенно красиво было это на XT8088 , без стекера есстесно – звук винта на 10мб при чтении и записи блоков был божественным.
    На 286 тоже было красиво.

    Под виндой тоже красиво на 486, но звук уже не тот.

  4. ILYA2606 avatar
    ILYA260612 марта 2018
    3

    Вообще-то ProgressBar-ы бывают не только Indeterminated, но и Determinated с информацией об относительном или абсолютном прогрессе. Зачастую, задача не имеет прогнозируемого времени выполнения – в таком случае, показывают спиннер или пытаются имитировать прогресс (например, анимированный прогресс до 90% за 60 секунд, а потом уже ждем завершения)

  5. Tom avatar
    Tom12 марта 2018
    3

    Ребята, давайте такие статьи перечитать разработчикам перед публикацией, не будете такой бред нести.
    Не всегда можно определить прогресс выполнения задачи в числах, тогда и появляются такие индикаторы, которые хотя бы показывают, что приложение живое и что-то происходит.
    “Увы, но за отображение современного прогресс бара зачастую отвечает отдельный код, который запускается одновременно с запуском программы, и никак с ней не связан.” – ну и ересь. Все эти индикаторы – это UI, UI всегда и везде отображается в главном и только главном потоке, виснет главный поток – умирают все индикаторы.
    Экран-скелет никаких проблем не решает, в том же facebook’е может висеть бесконечно, если проблемы с сетью.

    Tom avatar
    Tom12 марта 2018
    1

    И, да, никто никого не обманывает, как громко заявлено в названии, ибо никто никому ничего этим спиннером не обещает. Прямо разоблачение века какое-то.

    Tom avatar
    Tom12 марта 2018
    1

    И раз уж на то пошло, progress bar с процентами ту еще “правду” показывает, когда на 99% стопорится навечно.

    Я Д'артаньян, а вы п$%^@*ы avatar
    0

    @Tom, +
    мне кажется уже давно их начали использовать чисто как дизейбл экрана

    Илья avatar
    Илья12 марта 2018
    0

    @Tom, ну, в целом правдиво написано. UI в главном потоке показывает гифку со спиннером, а долгий процесс, чтобы не блокировать UI, работает в другом потоке. И уж если этот другой поток на чем-то зациклился и не заканчивается, гифка в основном потоке так и будет крутиться вечно.

    Tom avatar
    Tom13 марта 2018
    0

    @Илья, цитата, которую я привел, абсолютна неправдива. Если подвисла программа, как утверждается в статье, а не рабочий поток, никакие спиннеры обновляться не будут.

  6. Bonobo avatar
    Bonobo12 марта 2018
    0

    эта ГНИЛЬ всегда сбежит… Его здесь ничего не держит (родители, предки, Родина она одна) Беги Мак Сид ,

  7. Я Д'артаньян, а вы п$%^@*ы avatar
    0

    Даладна! Это чтоб дауны в момент обработки ничего не нажали и не сделали. Спинер называется.

  8. DonMacho avatar
    DonMacho13 марта 2018
    0

    Что вы к Сиду пристаете? У него всегда интересные статьи

  9. Gl00 avatar
    Gl0018 марта 2018
    0

    Прогресс бар по сути это индикатор завершения процесса. Разработчик ставит определенные чекпоинты при которых индикатор двигается. К примеру нужно скопировать файлы, потом их изменить, потом переименовать и переместить. Каждый шаг будет разделен на проценты, копировать 40%, изменить 20%, переименовать 10%, переместить 30%. Делается для того чтобы представлять примерное представление о завершении процесса. Когда копируешь файлы из папки в паку, система знает что нужно скопировать 500 файлов и делает расчет на сколько процентов надо заполнить прогресс бар после перемещения файла. А вот расчет времени часто колеблется в обе стороны, так как трудно предугадать реальное время из-за наличия разных факторов. Прогресс бары в виде крутящихся кружочков, песочных часов, иконки часов это индикатор для пользователя что выполняется операция, но точных расчетов её завершения нет. К примеру подключиться к wifi, тут нет этапов. 0% не подключен, а 100% подключен. Зачем при такой операции полоска загрузки? Просто нужно уведомить пользователя, что операция производится, что не нужно тыкать ещё 100 раз на эту кнопку, а нужно просто подождать. Чаще всего на такие операции ставится тайминг какой-то, если по истечении его операция не выполнена – то выводится ошибка и как правило её решение. Получилось много букв, но думаю это внесет немного ясности в эту тему.

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

Нашли орфографическую ошибку в новости?

Выделите ее мышью и нажмите Ctrl+Enter.

Как установить аватар в комментариях?

Ответ вот здесь