Android L. Личный опыт. Material Design и разработка. Радости и разочарования

b11e1fff76214713b9fdff798617cba6.jpgПредистория. Как только прошумела презентация грядущей версии Android под кодовым названием Android L, я ринулся просматривать материалы. Google добавил замечательные гайдлайны, наиболее полно описывающие то, как пользователь должен взаимодействовать с интерфейсом. Это была работа совершенно другого уровня, по сравнению с прошлыми потугами Google описать свою философию дизайна. По качеству описания, это уже было что-то сравнимое с Apple. Так же была выпущенна публичная бета версия Android L, чего так же ранее не случалось. Бетой, до ныне, был сам релиз, который доходил до пользователей, в лучшем случае, через несколько месяцев спустя выпуска в продакшн версии ОС.Анонс мне откровенно понравился, я решительно настроился познакомиться с данным творением поближе. Подводные камни, радости и неудачи, возникшие при знакомстве с надвигающейся 15 октября реинкарнацией Android, под катом. Краткая ретроспектива. Андроид, пережил до этого, минимум 5 значительных «мутаций».2e4a15968ed04651b7026b07620f71ae.jpgКаждая новая была несомненно лучше. Венцом этого стал новый дизайн.4592efeb44fb43548cda7d09a017d029.pngМатериалы, которые можно было бы назвать гайдлайнами, появились где-то во времена 4.0 и кардинально с тех пор не изменялись. Android L проповедует концепцию Material Design. Это действительно попытка стандартизировать все взаимодействия в различных приложениях, навязать единые подходы к построению интерфейса. Очень симпатична Floating Action Button, достаточно часто упоминавшаяся до этого на хабре.d74462de31554b28aea9d3c74ec79682.gifВ кратце, это концепция одного главного действия на конкретном экране. Что дает пользователю следовать стандартному флоу приложения, без каких либо усилий. На действии по умолчанию делается особый акцент. Например, почтовый клиент предлагает создать письмо. Кнопка эта, может «путешествовать» по различным экранам. Но ее внешний вид помогает отыскать мгновенно.Очень подробно были описаны анимации для каждого из действий. Я большой любителей всевозможных «плавностей» анимаций iOS8. Google сумел предложить то, что выглядит свежо.Живое знакомство. Вдоль насладившись пропагандойдокументацией, я покорно решил поставить бету Android L. Под раздачу попал мой Nexus 7. Заранее скажу, что процесс выпуска бета версий у гугла никакойзакрытый, и ничего похожего с регулярными бетами iOS и близко небыло. В итоге, откровенно сыроватая прошивка, заработала на моем планшете. Из встроенных приложений material design был только в калькуляторе. Такая вот дисгармония с тем что было в блестящих гайдлайнах…Мы так просто не сдаемся, подумал я. Я все же хотел проверить так ли хорош Android L как описан был в документации. И решил написать небольшое приложение для новой системы. Придумал сделать простенькую запоминалку парковки, коих в google play огромное количество, и это своего рода hello world для андроид приложений, однако дизайном они все застряли в каменном веке2011 или раньше. В любом случае, работа закипела и родилось парочку скринов. Старался все делать как рекомендовали, были там и floating action и метрики с keylines. Получилось вот так: e3a1770ae28547cf93e9fb58c9665ea0.jpgИмплементация. Дальше, я решил попробовать, все таки воплотить дизайн в код. И тут, меня ждало еще больше печали… На момент пары недель после презентации Google I/O и представленного Material Desgin, пока что нигде не было документации о том, как пользоваться новыми анимациями, появившимися в Android L, которые входили в новый SDK. К примеру анимация «reveal effect».08d954ced294482fa213e9e29064c0b6.jpgДаже на момент написания статьи в разделе анимаций достаточно скудное описание с небольшим сниппетом кода. Пришлось ходить на гитхаб и выискивать все необходимые анимашки, тени и прочие радости, которыми якобы одарил гугл разработчиков. В целом, на этом сложности и необычности проекта закончились.Закончив девелопмент, я решил поделиться творением многих ночей ковыряний git для имлементации стандартных действий из документации. И тут я сообразил что это бета, и никаких бекпортов API нет вообще, и будут они аж когда-то после релиза Android L… Снова закипела работа, теперь по выключению всех новшеств анимаций переходов и т.п. К слову сказать, даже обезображеннаяадаптированная версия выглядела довольно свежо на мой взгляд. Без всяких теней, анимаций и прочего.Итог Изначально я думал написать пост о том как здорово все теперь будет в мире Android. Однако тут все как обычно у Google. Хорошие в целом начинания, часто заканчиваются полумерами. Я так и не понял, что вендор хотел сказать этой бетой. Никаких объяснений, хороших примеров. За пару недель до релиза стали появляться оф. статьи и немного постов энтузиастов.Как должно было быть Я понимаю, если бы эта бета, была выпущенна для разработчиков, что бы с релизом, огромной кол-во приложений засияло новыми красками. А так, ни внятных документаций, ни бекпортов API до релиза, ни регулярных обновлений самой беты небыло. С точки зрения поддержки разработчиков Google еще необходимо поучиться у Apple. Они не дали времени разработчикам подготовиться и наглядно показать все новинки. Несколько писателей и программистов сделали бы очень много для экосистемы гугл. А так… Полноценно Material Design засияет только в 2015 году. Ждем! Статья получилась не полная во второй части хочу добавить примеры кода. Так как документация явно не покрывает всего.Линки: Material DesignМое семплове приложение по парковке, обозвал нехитро, Pinpark. , к второй части выложу исходники, но уже с анимациями и для Android L. Есть мысли как-то поиграться еще с iBeacons, но это уже будет отдельная статья.

© Habrahabr.ru