2 года прошло с того момента, как разработчики Google впервые представили свою концепцию дизайна пользовательского интерфейса, получившую название Material Design. О том, как далеко зашло практическое применение этой концепции, и чем на сегодняшний день Material Design является для рядовых разработчиков, мы побеседовали с Владимиром Ивановым, не просто поклонником и последователем идеи, а человеком, который больше года на практике работает с Material Design в своем приложении.
— Добрый день! Расскажите, пожалуйста, о себе и своей работе.
— Здравствуйте! Меня зовут Владимир Иванов, уже более 6 лет я пишу приложения под Android (и не только). Ранее занимался Kaspersky Safe Browser, а на данный момент работаю в компании, которая выпускает универсальное коммуникационное приложение Fonum. Правда, мы еще достаточно молоды: у нас есть только приложение под Android, и пока оно некоторым образом отстает от популярных мессенджеров. Однако у нас есть несколько инновационных идей, за счет которых мы планируем быстро нагнать конкурентов.
В компании я руковожу разработкой мобильных приложений, в частности, под Android.
— Ваше приложение построено по принципам material design, т.е. с концепцией вы сталкиваетесь на работе?
— Да, мы изначально выбрали material design в качестве основы подхода к приложению в целом. Т.е. можно сказать, что Fonum целиком и полностью воплощает идеи material design. Я буквально живу последний год с этой концепцией, пропитался духом и буквой этого подхода.
— Почему Вы, как разработчики (имею в виду Вашу компанию), выбрали именно этот подход?
— На наш взгляд, material design сочетает в себе принципы, позволяющие сделать очень удобный интерфейс, ориентированный не только на пользователей с идеальным зрением и слухом, но и, например, на слабовидящих людей. Т.е. material design позволяет передать удобство и смысл приложения.
Сравнивая material design со всеми остальными подходами, например, с философией, которую сейчас исповедует iOS, или Metro-UI, который широко распространен среди Windows-приложений, мы решили, что material design — это лучшее, что сейчас есть на рынке.
— Помимо упомянутой Вами возможности раскрыть смысл приложения, какие еще преимущества для абстрактного разработчика есть у этой концепции?
— Для абстрактного разработчика преимуществ здесь очень много.
Во-первых, material design — это концепция, которая опирается на простую мысль, что современные технологии, в частности, современное железо и программное обеспечение, способны давать очень отзывчивый, живой и удобный интерфейс, не требуя от разработчика каких-то сильных дизайнерских навыков. Сама концепция получилась очень зрелой, она сразу дает высокий старт, даже если вы не так давно программируете и в дизайне мало, что понимаете. Иными словами, разработчик, если он понимает подход material design, принимает его и старается ему следовать, получает сразу очень высокий уровень внешнего вида своего приложения.
— Сложна ли концепция для понимания? Не препятствует ли распространению концепции обилие документации, единовременно выпущенной компанией Google по material design?
— Не думаю. Мне документация показалась хорошо структурированной и вполне доступно объясняющей суть концепции. Я не нашел сомнительных моментов — все предельно просто.
Естественно, у любого разработчика, имеющего свой багаж опыта, наступает момент, когда он просто не очень хочет принимать что-то новое (это свойственно человеческой природе). Но это скорее не проблема философии material design, а ступень в изучении. Нам, как разработчикам, нужно всегда быть открытым всему новому, т.к. такова природа нашей индустрии.
— Можно ли сказать, что концепция material design ориентирована только на приложения с простым интерфейсом (или, наоборот, только на перегруженные информацией интерфейсы)? Или заложенные в ней идеи “универсальны”?
— Я бы не сказал, что material design имеет определенную специализацию. В частности, material design, как и любая другая концепция пользовательского интерфейса, не говорит вам, как впихнуть очень много элементов на маленький экран или как органично представить мало элементов на большом экране. Это вопросы не дизайнерского подхода, а задачи, которые решают в ходе создания приложения разработчик, дизайнер и юиксер. К сожалению, универсальных решений здесь нет и быть не может.
Вместо этого material design говорит вам, как должен отреагировать экран приложения на определенный запрос пользователя.
— Насколько сильно Google настаивает на внедрении концепции в приложениях, в частности, под Android?
— Material design — вещь полностью добровольная. Google ведет себя совсем не так, как раньше делала компания Apple (политика Apple — если у вас интерфейс приложения построен не по гайдлайнам, оно не допускается в iTunes; вы можете выпрыгивать из штанов, но интерфейс придется сделать по их правилам). Разработчики Google просто выпустили концепцию и даже не сказали, что сторонние разработчики должны ей следовать. Они просто представили классную идею с документацией и примерами, а заодно кодом, который это реализует, и вспомогательными библиотеками. И, честно говоря, я очень рад, что material design увидел свет, и что мы имеем возможность им пользоваться. Это на самом деле замечательный дизайнерский комплекс.
— Насколько серьёзно концепция завоевала рынок за 2 года, прошедшие с момента ее представления?
— К сожалению, я не смогу дать количественные оценки. Но по моим ощущениям влияние material design более чем заметно.
Во-первых, сам Google переехал во всех своих приложениях под Android на material design, т.е. Google следует своему же тренду.
Во-вторых, все крупные игроки рынка Android-приложений стараются переходить на material design. Примерно половина приложений, которыми я регулярно пользуюсь на своем смартфоне, уже в той или иной степени переехали на material design.
— Переход происходит на всех платформах или только на каких-то определённых?
— Переход заметен только в приложениях под Android.
Тут нужно отделять material design, который существует в Android, и material design, как концепцию, существующую на других платформах (веб, iOS и других устройствах). Чисто технологически material design под Android внедряется очень просто, поскольку концепция поддерживается Google-ом и сообществом. Кроме того, существуют библиотеки, обеспечивающие поддержку material design на платформах ниже 5.0. Иными словами, на Android поддержка material design близка к идеальной (хотя у меня есть целый список огрехов, которые Google мог бы поправить).
С другими платформами сложнее. Если для веба появляются ресурсы, например, Material Up, на которых собраны решения и сниппеты для реализации material design на сайте, то вот под iOS обеспечить поддержку уже почти невозможно. Честно скажу, мы пытались затащить material design на наше iOS-приложение, которое сейчас находится в разработке. Но у нас ничего не получилось. Подход к приложениям, который реализовала компания Apple, не сочетается с material design. В итоге из-за сложностей с реализацией нам пришлось отказаться от очень большого количества вещей, начиная с банальной Action button и заканчивая красивой анимацией переходов.
— Т.е. по-сути глобальной унификации внешнего вида приложений за счет material design не получается?
— Пока я её не вижу. Material design сейчас — очень сильная история на Android, но о глобализации речи нет.
— Все ли реализации material design получаются удачными?
— Увы, нет. Не все разработчики адекватно оценивают и принимают дух material design. За примерами далеко ходить не надо: в последнем обновлении Android-приложения Twitter из material design реализована только action button. Больше material design в приложении нет.
Подобные примеры показывают, что люди пытаются следовать “модной фишке”, тащат из концепции 5%, не понимая смысла идеи, и думают, что они таким образом “галочку” напротив material design поставили. Но на самом деле это не так.
— Можете ли вы рассказать о самых типичных ошибках в реализации material design, допускаемых разработчиками?
— Наиболее типичная ошибка — считать, что material design заканчивается на action button. Ряд разработчиков (я думаю, их достаточно много) просто не понимают принципы концепции. Они считают, что можно ограничиться какими-то такими маленькими элементами, с внедрением которых их приложение будет в material design. Но это не правда. Material design — не про кнопочки с тенью. Эта концепция описывает весь интерфейс, пытается приблизить его к реальному миру, заставляя отдельные его элементы вести себя как в реальном мире. Кроме того, material design заточен на визуальную помощь пользователю в восприятии приложения. И анимация, и сам подход восприятия каждого слоя как некого материала — все это нацелено на улучшение и облегчение пользовательского взаимодействия с приложением.
— Много ли подобных “неудачных” примеров?
— Я знаю несколько компаний, которые считают, что такой реализацией material design можно ограничиться. Twitter — это точно не единственный пример, подобных приложений хватает.
— Вы упоминали, что даже в реализации поддержки material design под Android есть вещи, которые хотелось бы поправить. Можете назвать наиболее явные моменты?
— Речь идёт в основном о поддержке material design в Android до 5.0.
В частности, одним из принципов material design является то, что любое движение в приложении должно доставлять некоторый смысл (motion provides meaning). Самый банальный пример — это анимация переходов. Допустим, в приложении-мессенджере вы хотите анимированно показать переход из списка контактов или чатов в конкретный чат (показать, что у вас раскрывается карточка и превращается в чат). И вы используете анимацию переезда аватарки пользователя из списка контактов на заголовочный элемент чата. Анимация там отличная, но вы можете ее реализовать только для Android 5 и выше, т.к. под Android 4 это не помогут сделать никакие библиотеки совместимости.
Еще пример — эффект ripple, обеспечивающий анимированную реакцию кнопки на нажатие (расплывается волна; выглядит очень красиво и дает пользователю ощущение, что он действительно нажал на кнопку). В стандартной библиотеке совместимости этого эффекта нет, т.е. вам приходится идти на github и смотреть, что есть у инди-разработчиков, и существует ли вообще какая-то реализация под Android 4. Реализации обычно обнаруживаются, но они не идеальны и не используются самим Google, что, конечно, добавляет ложку дегтя в бочку меда material design.
— При таких сложностях есть ли смысл тянуть элементы material design в предыдущие версии системы? Может, вообще стоит отказаться от их поддержки?
— К сожалению, пока имеет, если для вас важно единообразие интерфейса.
Конечно, нам больше всего хотелось бы отказаться от Android 4 (мы поддерживаем 4.03, и там хватает своих проблем, не все из которых легко решаются). Но, к сожалению, 65% наших пользователей еще используют Android 4. А т.к. мы стараемся использовать красивый интерфейс, мы пытаемся тащить в 4-ю версию все, что только можно.
— А сам Google занимается развитием инструментария поддержки material design?
— Да, и довольно активно. Постоянно выходят апдейты на библиотеки совместимости для material design. Так что нельзя сказать, что они этим не занимаются.
— Как вы считаете, есть ли смысл переводить на material design приложение, которое сейчас построено не в рамках этой концепции и успешно продаётся?
— Это вопрос не ко мне, а к бизнесу. На него должен отвечать владелец продукта (тот, кто платит за приложение), и вряд ли ему будет нужно мое мнение. Но лично я бы так делать не стал. В первую очередь потому что, если у вас приложение не в material design, переделать его в material design будет сложно. Фактически, вам нужно будет сделать интерфейс заново. Концепция диктует определенные вещи, и ваши существующие экраны могут не лечь в схему material design. Естественно, переделка приложения — это всегда определенный риск, и я бы на него не пошел. Но я знаю успешные примеры того, как люди перестраивали свои приложения в довольно короткий срок и выигрывали от этого.
— А как, по вашему опыту, конечные пользователи как реагируют на material design?
— В рамках нашего приложения дизайн достаточно регулярно вызывает то самое “Вау”, которого мы и хотели добиться.
Вообще, на одном из предыдущих мест работы меня научили простому принципу: очень трудно продавать работающее приложение, которое выглядит отвратительно. Но достаточно легко продавать приложение, которое плохо работает, но выглядит отлично. И я могу сказать, что это правда. Т.е. дизайном вы относительно легко можете достичь позитивного отклика пользователей, даже если работает все не очень.
Таким образом, концепция, вызывающая при правильном применении положительные эмоции у конечного пользователя, пока не столь легка для имплементации. Возможно, делу поспособствуют усилия Google и сообщества по поддержке material design, или же удачным идеям придется уступать место более консервативному подходу до момента естественной смены версий Android у подавляющего большинства пользователей (когда проблемы совместимости с Android 4, описанные специалистом, уйдут на второй план). Но, несмотря на сложности, для новых приложений уже сейчас material design вполне может дать своего рода “отправную точку” при построении интерфейса.
–––––––––––––––––––––––––––––––––––
Полезные ссылки:
1. О Material Design от Google
2. Больше практических подробностей в докладе Владимира на конференции Mobius 2016 (4 июня)
3. Доклад о UX от Android GDE Wiebe Elsinga на Mobius 2016
Автор: JUG.ru Group