что такое тема в андроиде
Темы на Android: как они работают и как их устанавливать
Кастомизация – это одна из забытых особенностей Android. Забытых – потому что сегодня, как мне кажется, изменением внешнего вида операционной системы занимаются только гики и пользователи iOS, которые дорвались до такой возможности с выходом iOS 14. Другое дело, что в представлении большинства кастомизация представляет собой нечто вроде перепрошивки или накатывания сторонней оболочки поверх предустановленной по умолчанию. Но это глубочайшее заблуждение.
Самый простой способ кастомизировать Android — сменить тему
Оболочки многих Android-смартфонов поддерживают темы, или, как их ещё называют, скины. Они позволяют изменить оформление интерфейса ОС, подогнав его под конкретные события в вашей жизни или просто освежив его безотносительно каких-либо факторов. Достаточно просто выбрать интересующую вас тему, скачать её себе на смартфон и провести несложные манипуляции по установке. Несмотря на то что мой Honor View 20 из коробки содержит специальный каталог с темами, я разберу два способа установки тем: удобный и, скажем так, полуудобный.
Как сменить тему на Android
Для начала разберёмся с тем, как действует удобная установка тем. На самом деле смартфонов, которые предлагают каталог тем из коробки, довольно много. Поэтому не думаю, что вам придётся скачивать их где-то на стороне.
У Huawei есть свой каталог с темами для Android
Темы могут изменять внешний вид не всех иконок приложений, которые у вас установлены
Все темы, которые вы скачиваете из официального каталога, установленного на ваш смартфон, сохраняются в приложении «Темы» в разделе вашего профиля. То есть вы можете скачать разом несколько новых тем, а потом последовательно примерять их, когда появится время.
Не знаю, как у вас, но большинство тем от Huawei платные. В среднем они стоят по 8-30 рублей, но встречаются и более дорогие. Бывают такие, которые оцениваются в 70, 150 и даже 200 рублей. Если вы не уверены, что готовы платить за них такие деньги, вы можете попробовать тему бесплатно. Для этого достаточно нажать на кнопку «Попробовать бесплатно» и тема применится к вашему интерфейсу на 5 минут, по истечении которых она отключится, если вы её не оплатите.
Как установить новый лаунчер
Лаунчеры — это слишком сложный способ кастомизации. По крайней мере, в сравнении с темами
Если ваш смартфон по умолчанию не предусматривает специального каталога с темами, скачать его на стороне просто так не получится. Несмотря на то что в Google Play целая тьма приложений с темами, на самом деле это обман. Даже не представляю, почему Google их не поудаляет. Ведь вместо тем там рекламируются либо сторонние приложения, либо предлагается возможность сменить обои, но не сам интерфейс ОС. А вот чтобы изменить оформление Android, вам потребуется отдельный лаунчер, который уже можно скачать в Google Play без каких-либо проблем.
Как быстро перебросить файлы с Android на Mac или Windows. Мой любимый способ
По сути, лаунчер – это кастомная тема на максималках. Дело в том, что его установка изменяет не только оформление интерфейса, но и иногда добавляет некоторые новые функции. Например, после установки Poco Launcher у меня появилась кнопка быстрой очистки оперативной памяти, которой раньше не было.
Как изменить вид иконок на Android
Весь процесс выглядит примерно так:
Темы могут быть доступны в сторонних лайнерах для Android
Правда, учитывайте, что после установки лаунчера вам придётся раздать довольно много разрешений, открыв ему доступ к взаимодействию с интерфейсом, приложениями и системными инструментами.
Стоит ли оно того? На мой взгляд, абсолютно нет. Несмотря на то что я вообще довольно осторожен в вопросах кастомизации, прибегая к ней только в самых крайних ситуациях, работать с темами из штатного каталога мне понравилось. А вот запариваться с установкой лаунчеров и подготовкой их к нормальному использованию – нет. Поэтому, если ваш смартфон не предлагает каталог с темами, не парьтесь, вы не многое теряете. Но уж если предлагает, обязательно попробуйте: возможно, вам понравится.
Новости, статьи и анонсы публикаций
Свободное общение и обсуждение материалов
Китайские смартфоны в последнее время переживают пик своей популярности. Ушли времена, когда в Китае делали гаджеты с корявым переводом, слабой производительностью и автономностью. Наступила по-настоящему новая эра. Нынче смартфоны от той же Xiaomi без проблем могут тягаться по мощности с новеньким Pixel, а с точки зрения автономности или скорости срабатывания отпечатка превосходить его в несколько раз. Сегодня предлагаю детально разобраться во всех нюансах китайских устройств, обсудить их отличительные особенности и окончательно понять для себя, чем мы жертвуем покупая такой телефон.
Instagram уже давно перекочевал из простого приложения по обмену фотографиями в средство для заработка денег. Многие крупные блогеры имеют контракты со знаменитыми компаниями и занимаются их раскруткой. После просмотра контента от знаменитостей волей-неволей задумываешься о том, чтобы не ударить в грязь лицом. Качество снимков должно быть если не на таком же уровне, то хотя бы стремящимся к ним. Специально для того, чтобы ваши снимки казались еще лучше, а качество сториз не вызывало реакции «вырвиглаз», мы сделали для вас подборку лучших приложений для работы с контентом в Инстаграм.
Вы знаете, что такое двухфакторная аутентификация? Скорее всего, да. Особенно, если пользуетесь сервисами Google. Компания очень активно продвигает дополнительный уровень защиты учётных записей, пытаясь исключить таким образом их кражу. Главное её достижение – это реализация удобного способа верификации пользователя. Для авторизации можно ввести не только код из SMS, но и воспользоваться другими способами. Например, получить пуш-уведомление и подтвердить вход нажатием на кнопку «Да». Но, по мнению Google, этого явно недостаточно для удобства пользователей.
Многие на Андроид пользуются темами и темы довольно популярны. То что вам кажется, что это не нужно — это мнение угнетенных эплом людей, которым запрещено выражать индивидуальность. Хорошо хоть там некоторое убогое подобие минимальной кастомизации дали людям и многим нравится.
Являюсь владельцем LG G6, в котором предусмотрена функция тем с завода. Выбор не сказать, чтобы сильно обширный, но достойных бесплатных вариантов предостаточно. Так же прекрасно устанавливаются сторонние темы от того же пикселя и кастомные. Всё делается без каких-либо танцев с бубном нажатием одной кнопки. Не скажу, что меняю их каждый день, но для разнообразия периодически это делаю. И дурацкое желание купить новый телефон сразу же пропадает =)
Почему люди так любят темную тему для смартфона
Все чаще и чаще мы слышим вопросы о том, когда в том или ином приложении появится темная тема. На фоне этого статьи о ее появлении собирают большое количество просмотров, которое подтверждает интерес людей к данной теме. Одно время даже гулял мем про темную тему, который то ли высмеивал интерес публики к ней, то ли наоборот подтверждал, что она нужна. Вопрос в том, почему ТТ, как ее сокращенно называют, так глубоко проникла в умы пользователей по всему миру, словно коронавирус, от которого все уже успели немного подустать. Если вы тоже задавались вопросом, когда что-то получит тему, или хотели бы, чтобы разговоров о ней было поменьше, нам есть, что обсудить.
Многие хотят, чтобы так.
В чем секрет популярности темной темы
Найти точного ответа на этот вопрос у меня не получилось. Я очень хотел найти мнения психологов, маркетологов, дизайнеров, да кого угодно, хоть НЛПшников, будь они неладны, но внятного мнения так и не увидел. Пришлось ходить по форумам, комментариям и нашему Telegram-чату и собирать мнения простых людей. В итоге, вот до чего я дошел в своем поиске.
Темная тема на OLED дисплее
В первую очередь, все говорят, что темная тема хороша на OLED-экранах, которых в последнее время становится все больше. Тут я могу только полностью согласиться. Это действительно смотрится эффектно. Особенно в полной темноте, когда буквы на экране буквально парят в воздухе. В остальных случаях разница не настолько заметна. Просто ты лучше видишь, что у тебя четкий черный цвет.
Настроили бы смартфон так? Или белый фон лучше?
Темная тема бережет глаза
Считается, что экран с темной темой не просто хорошо выглядит, но и бережет глаза, если пользоваться им в темноте. Как раз из-за того, что в глаза не бьет белый поток света, как из прожектора. Тут немного спорно, так как многие все равно утверждают, что их глаза даже при использовании темной темы устают от экрана в темноте. Кроме этого пока никто не смог нормально опровергнуть информацию о том, что OLED-экраны в принципе вреднее для глаз, чем IPS из-за бОльшего мерцания.
Пока меньшим из зол для глаз при использовании смартфона в темноте является выбор ночного режима с приглушенным синим спектром на IPS-экране. А еще лучше просто не пользоваться в экранами в темноте. Даже телевизор и компьютер сильно портят зрение, когда бьют из темноты ярким встречным потоком. Когда в помещении светло, глаз сам адаптируется к яркому освещения и не так сильно напрягается. С этим можно спорить, но со временем действительно начинаешь это чувствовать. Если кто-то говорит, что у него такого нет, надо просто немного подождать — появится.
Темная тема выглядит стильно
Кроме описанных выше преимуществ по мнению пользователей, есть еще одно. Оно заключается в том, что темная тема выделяет его владельца на фоне остальных. Хотя в последнее время ситуация немного изменилась, но многим все равно нравится, как выглядит черная картинка на экране смартфона. Есть в этом что-то современное и прорывное. Так думают многие.
В целом это действительно выглядит стильно.
Темная тема более информативная
Столкнулся я и с мнением, что темная тема, если она хорошо прорисована, является более информативной. Сторонники этого мнения утверждают, что это эволюционное развитие интерфейса, которое позволяет считывать информацию быстрее и правильнее. Возможно, в этом что-то есть, но на счет развития не очень согласен. Темная тема у меня была еще на КПК HP iPaq 4700 около пятнадцати лет назад. Тогда никто не говорил, что это тренд будущего. Просто люди читали книги с темной подложкой, если им это нравилось. Сейчас мало что изменилось, кроме трендов и увлечений.
С другой стороны, нет ничего плохого в том, что дизайнеры пробуют и придумывают что-то, что нравится людям. Хотя, я больше склонен к тому, чтобы дизайнеры сами предлагали инновации, а не слушали толпу, которая зачастую сама не знает, что хочет. В итоге может получиться, как в анекдоте про глухонемого деда, который поймал золотую рыбку и теперь у него есть гитара, грудь и лыжные палки.
Так может получиться, когда дизайнеры и разработчики идут на поводу у пользователей.
Когда появится темная тема для всех приложений?
Проблема распространения темной темы в том, что недостаточно просто сделать белый фон черным, а черные буквы белыми. Для полной адаптации надо проделать большую работу. Потребуется не только работа дизайнера, но и программиста. Они должны будут придумать и реализовать новый дизайн и работу элементов. Все должно быть видно и в некоторых случаях приложения придется буквально написать заново.
Не игнорируйте наш новостной канал в Telegram. Там очень много всего интересного.
Многие крупные продукты уже сделали это, но некоторые полулюбительские приложения точно еще долго будут адаптироваться или просто выпускать интерфейс, от которого будет рябить в глазах и болеть голова. Я лично встречал такие примеры. При этом, если приложения еще как-то позволяют адаптироваться, то некоторые сайты, которые поддерживают темную тему, это настоящая боль. Даже мой не особо требовательный дизайнер внутри стучит отверткой по батарее и просит выключить это уродство.
Темная тема не всегда смотрится хорошо.
Есть примеры приложений, которые хорошо работают с темной темой, но адаптированы как-то не полностью. Например, приложения YouTube и Яндекс.Карты на iOS при запуске выдают заставку белого цвета и только потом открывают темный интерфейс. Такой колорит мне вообще непонятен.
Какими будут интерфейсы будущего
Ни для кого не секрет, что все идет к повсеместному внедрению AR в нашу жизнь. В чем-то это действительно будет удобно, например, при использовании очков для получения дополнительной информации, но где-то проще будет пользоваться по старинке. В любом случае, в то, что со временем интерфейсы станут прозрачными, в целом верится.
Проблема в том, что даже при прозрачном интерфейсе надо будет делать подложку под буквы для того, чтобы они лучше читались. Вот и вопрос, какой она будет. Мне кажется, что, скорее всего, она будет полупрозрачной, а ее оттенок будет адаптивным и станет подстраиваться под окружающие объекты. Если подложки не будет, то в некоторых случаях считывание информации будет тем еще челенджем.
Давайте обсудим в комментариях, как вы относитесь к темной теме. Важно мнение каждого человека. Чем их будет больше, тем лучше. Очень хочется хотя бы в паре слов узнать мнения за и против темной темы. А пока поучаствуйте в опросе ниже.
Темы на телефон андроид: возможности и особенности оформления
Операционная система Android успешно используется для многочисленных смартфонов. Каждый пользователь вправе не только отметить высокий уровень функциональности, но и оценить прекрасный дизайн. Для этого предлагаются разнообразные оболочки, темы и обои. Богатство предложений может быть по достоинству оценено каждым, кто хочет насладиться красотой и интуитивно понятным интерфейсом мобильного телефона.
Возможности изменения дизайна Android
Какие возможности изменения дизайна смартфона существуют в настоящее время?
Неудивительно, что предложения могут быть по достоинству оценены многими людьми. Возможность отметить превосходное исполнение дизайна должна быть непременно использована обладателем мобильного телефона для того, чтобы устройство радовало еще больше!
Как изменить тему?
После успешного выбора темы на телефон андроид следует позаботиться об ее успешной замене.
Самый легкий способ предусматривает использование Google Play, в который можно войти через смартфон. В поисковой строке следует ввести слово «Тема» и выбрать подходящий вариант. Установка приложения с использованием определенного устройства и учетной записи в Google Play станет основным шагом к дальнейшему преображению дизайна смартфона.
В последнее время темы Android все чаще предлагаются по платной схеме. Однако финансовые вложения полностью оправдываются качественной реализацией интерфейса!
Темы оформления в Android – нужны или нет?
Артем Лутфуллин
Когда я вижу в какой-нибудь оболочке под Android темы оформления, в голове сразу возникают теплые воспоминания о Symbian и Nokia. Смартфон Nokia 6600 на Series 60, сайт «димонвидео», а потом и deviantart, многочасовый ежедневный поиск классных тем, их установка и дальнейшая радость, насколько сильно можно изменить рабочее пространство своего устройства внешне, бесплатно и без помощи посторонних людей. Славные были времена. Но темы оформления под Series 60, насколько я помню, не особо поддерживались самой Nokia, а основным источником свежих тем было огромное сообщество, с Android ситуация пока другая. Именно о том, нужны ли темы оформления в стандартном Android (4.4 или L, например) – я хочу с вами поговорить, а также узнать ваше мнение в комментариях.
В Android любой версии нет тем оформления на уровне настроек системы, как это было в той же Symbian много лет назад. Здесь нельзя зайти в некий пункт меню и выбрать одну из пяти доступных тем, а если ни одна не подошла, случайно обнаружить кнопочку «загрузить еще» или «темы онлайн», допустим. Сейчас темы оформления вообще не в почете, если смотреть на это со стороны чистых ОС – Android, Windows Phone, iOS – их нет нигде.
Читатель с опытом резонно возразит, что отсутствию тем оформления в каждой из «операционок» есть свои причины. В iOS тем нет, потому что такова политика Apple – дать пользователю максимально завершенный и лаконичный продукт с финальным, выверенным до мелочей дизайном, а возможность смены тем оформления никаких не подпадает под эту идеологию. В Windows Phone тем нет, потому что эта система по своей основной идее копирует iOS, соответственно. А в Android темы оформления есть, их тысячи, отметит этот же читатель, ведь достаточно зайти в Google Play, скачать одну из оболочек и уже для нее накачать сотни тем. К слову, примерно то же самое можно сделать и в iOS, предварительно «джейлбрейкнув» аппарат.
Тема оформления для «джейлбрейкнутой» iOS (Apple iPhone)
Но при таком ходе мыслей не учитывается одна простая деталь – сложность «джейлбрейка» и даже установки оболочки из Google Play для массового пользователя. Да, для многих из вас, уважаемые читатели, это покажется глупым и странным, но это так, сегодня в мире все больше людей, использующих Android (и уж тем более iOS с Windows Phone) как обыкновенную звонилку и телефон «для эсэмэсок». Рынок смартфонов замещает рынок обычных мобильных телефонов и число пользователей, для которых связка слов «Google-аккаунт и Google Play» является чем-то темным и непонятным – все больше.
Какая польза от тем оформления, раз мы здесь их так дотошно пытаемся обсудить? По большому счету это просто визуальная смена рабочего пространства смартфона и ничего больше. Весь вопрос в отношении каждого конкретного человека к этому «визуальному». Лично для меня очень важно, чтобы на смартфоне, что я использую, были красивые, подходящие под стиль ОС картинки рабочего стола и блокировки, чтобы ярлыки программ были расположены в определенном порядке, и, в идеале, значки ярлыков были также выполнены примерно в едином стиле. В этом отношении хороши прошивки MIUI (Xiaomi) и Flyme (Meizu) на базе Android, где темы оформления есть изначально и доступны в огромном количестве, особенно в MIUI. Причем, самое классное даже не то, что тем много, а возможность их комбинирования и совмещения – значки из одной темы, визуальный стиль меню и шрифты – из второй, картинки из третьей и так далее.
MIUI на Xiaomi Mi3
Flyme на Meizu MX3
Второй вариант познакомиться с темами оформления в Android, как я писал выше, это установка одной из десятков оболочек из Google Play. Ставится оболочка, а уже в ней выбираются доступные темы, их также сотни. Есть и третий способ, установка кастомной прошивки, CyanogenMod, как вариант, темы оформления для нее можно качать прямо из Google Play. А что если темы станут доступны в настройках в чистой ОС Android? Купил человек смартфон, зашел в настройки ради любопытства или, например, чтобы яркость экрана отрегулировать, и увидел отдельную строку «ТЕМЫ ОФОРМЛЕНИЯ». Заглянул туда, а внутри не три жалких темы, похожи друг на друга, а сотни! И тогда, если человек любознателен и ему это интересно, он начнет «тыкать» в разные темы, ставить их, сравнивать визуальные стили и прочее, прочее. Таким образом человек станет на шаг ближе к так называемым «опытным пользователям» и, кто знает, может уже спустя полгода-год пользования смартфоном выйдет на совершенно новый уровень познаний в этой среде.
В HTC Sense (на картинке HTC One M8) были темы оформления, а затем стили, но в итоге компания посчитала, что выбранный стандартным визуальный стиль оптимальный и оставила его. По мне, он и правда хорошо, но если бы сюда еще тем оформления добавить, эх…
Звучит немного наивно и странно, но подумайте сами, чем сейчас ОС Android может завлечь пользователя к изучению? Разве что магазином приложений, но часто такое изучение сопряжено с тратой денег и установкой барахла, а это вредно. Темы оформления – совсем другое, они однотипны с точки зрения системы и не «засорят» ее, а большинство тем для оболочек, как правило, бесплатны. При этом установка свежей темы, которая нравится человеку, это фактически визуальное обновление смартфона, просто не внешнее, а внутреннее.
Именно по этим причинам, как мне кажется, в Android нужны темы оформления, причем не в виде вариаций, доступных в загружаемых из Google Play оболочках или кастомных прошивках, а как отдельный самостоятельный сервис, стандартный для системы.
Темы и стили в Android-приложениях
Каждому Android-разработчику так или иначе приходилось работать со стилями. Кто-то чувствует себя с ними уверенно, у кого-то есть только поверхностные знания, которые зачастую не позволяют самостоятельно решить поставленную задачу.
В преддверии выхода темной темы было решено освежить в памяти всю информацию, касающуюся тем и стилей в Android-приложениях.
О чем пойдет речь:
Начнем с основ
По своей структуре темы и стили имеют общее строение:
Все достаточно просто. Но в чем же разница между темой и стилем?
Единственное отличие заключается в том, как мы их используем.
Тема — это набор параметров, которые применяются ко всему приложению, Activity или View-компоненту. Она содержит базовые цвета приложения, стили для отрисовки всех компонентов приложения и различные настройки.
Для того чтобы стиль стал настоящей темой, необходимо отнаследоваться (о наследовании мы поговорим чуть позже) от дефолтной реализации темы.
Стиль
Стиль — это набор параметров для стилизации одного View-компонента.
Атрибут
Атрибутом принято называть ключ стиля или темы. Это маленькие кирпичики из которых все строится:
Все эти ключи являются стандартными атрибутами.
Мы можем создавать свои атрибуты:
Атрибут myFavoriteColor будет указывать на цвет или ссылку на ресурс цвета.
В формате мы можем указать вполне стандартные значения:
По своей природе атрибут является интерфейсом. Его необходимо реализовать в теме:
Теперь мы можем на него ссылаться. Общая структура обращения выглядит так:
Ну и, наконец, давайте поменяем, например, цвет текста у поля:
Благодаря атрибутам мы можем добавлять какие-угодно абстракции, которые будут изменяться внутри темы.
Наследование тем и стилей
Как и в ООП, мы можем перенимать функционал существующей реализации. Сделать это можно двумя способами:
При явном наследовании мы указываем родителя с помощью ключевого слова parent :
При неявном наследовании мы используем dot-notation для указания родителя:
Никакой разницы в работе этих подходов нет.
Очень часто мы можем встретить подобные стили:
Может показаться, что стиль создан путем двойного наследования. На самом деле это не так. Множественное наследование запрещено. В таком определении явное наследование всегда выигрывает.
ThemeOverlay
ThemeOverlay — это специальные «легковесные» темы, которые позволяют переопределить атрибуты основной темы для View-компонента.
За примером далеко ходить не будем, а возьмем кейс из нашего приложения. Дизайнеры решили, что нам нужно сделать стандартное поле для ввода логина, которое будет иметь отличный от основного стиля цвет.
С основной темой поле ввода выглядит так:
Выглядит отлично, но дизайнеры настаивают на том, чтобы поле было в коричневом стиле.
Окей, как мы можем решить такую задачу?
Да, мы можем переопределить стиль и вручную поменять основные цвета вьюшки, но для этого нужно будет писать много кода, да и есть шанс, что мы про что-нибудь забудем.
Написать свою вьюшку по гайдлайнам и с кастомными параметрами?
Хороший вариант, так мы сможем удовлетворить любые хотелки дизайнеров и заодно прокачать скилл, но все это трудозатратно и может привести к нежелательным багам.
Переопределить основной цвет в теме?
Мы выяснили, что для нужного нам вида достаточно поменять colorPrimary в теме. Рабочий вариант, но так мы затронем внешний вид остальных компонентов, а нам это не нужно.
Правильное решение — это использовать ThemeOverlay.
Создаем ThemeOverlay и переопределяем основной цвет темы:
Далее указываем его с помощью специального тега android:theme в наш TextInputLayout :
Все работает так, как нам и нужно.
Конечно же возникает вопрос — как это работает под капотом?
Аналогичным образом мы можем самостоятельно переопределить любой параметр темы в приложении.
Последовательность применения тем и стилей ко View-компоненту
Главный приоритет имеет файл разметки. Если в нем определен параметр, то далее все аналогичные параметры будут игнорироваться.
Следующий приоритет имеет стиль View:
Далее используются предопределенные стили для компонента:
Если параметры не были найдены, то используются атрибуты темы:
В общем-то это все, что нужно знать для того чтобы начать работу с темами. Теперь кратко посмотрим на обновленную дизайн-библиотеку Material Components.
Да прибудет с нами Material Components
Material Сomponents была представлена на Google I/O 2018 и является заменой Design Support Library.
Библиотека дает нам возможность использовать обновленные компоненты из Material Design 2.0. Кроме того, в ней появилось множество интересных настроек по кастомизации. Все это позволяет писать яркие и уникальные приложения.
Вот некоторые примеры приложений в новом стиле: Owl, Reply, Crane.
Перейдем к практике
Для создания темы нужно отнаследоваться от базовой темы:
Все они очень похожи на AppCompat темы, но имеют дополнительные атрибуты и настройки.
Подробнее с новыми атрибутами можно познакомиться на material.io.
Если по каким-то причинам вы сейчас не можете переключиться на новую тему, то вам подойдут Bridge темы. Они наследуются от AppCompat тем и имеют все новые атрибуты Material Components. Нужно всего лишь добавить постфикс Bridge и использовать все возможности без опасений:
Важно понимать, что когда вы переопределяете стиль в теме, он применится ко всем View этого типа в приложении (Activity).
Если же вы хотите применить стиль только к одной конкретной View, то нужно использовать тег style в файле с разметкой:
Одно из нововведений, которое меня действительно впечатлило — это ShapeAppearance. Оно позволяет изменять форму компонентов прямо в теме!
Каждый View-компонент относится к определенной группе:
shapeAppearanceSmallComponent
shapeAppearanceMediumComponent
shapeAppearanceLargeComponent
Как мы можем понять из названия, в группах вьюшки разных размеров.
Проверим на практике:
Получили такой результат:
Выглядит интересно. Будет ли это работать в реальной жизни? Время покажет.
Как и для стилей, мы можем применить ShapeAppearance только для одного View-компонента.
Что там по темной теме?
Совсем скоро состоится релиз Android Q, а вместе с ним к нам придет и официальная темная тема.
Пожалуй, одна из самых интересных и эффектных возможностей новой версии Android — это автоматическое применение темной темы для всего приложения одной строчкой кода.
Звучит здорово, давайте пробовать. Предлагаю взять всеми любимый гитлаб клиент от terrakok.
Разрешаем перекрашивать приложение (по умолчанию запрещено):
Атрибут android:forceDarkAllowed доступен с API 29 (Android Q).
Запускаем, смотрим что получилось:
Согласитесь, что для одной строчки кода выглядит очень круто.
Конечно, есть проблемы — BottomNavigationBar сливается с фоном, лоадер остался белым, выделение кода страдает и, вроде бы, все, по крайне мере мне больше ничего серьезного в глаза не бросилось.
Уверен, что потратив не так много времени, можно решить основные проблемы. Например, отключив автоматический темный режим для отдельных вьюшек (да, так тоже можно — android:forceDarkAllowed доступен для View в файле-разметке).
Следует помнить, что данный режим доступен только для светлых тем, если вы используете темную, то принудительная темная тема работать не будет.
Рекомендации по работе можно почитать в документации и на material.io.
А если мы хотим все делать самостоятельно?
Как бы не было просто использовать принудительную темную тему, этот режим лишен гибкости. Фактически, все работает по заранее определенным правилам, которые могут не устраивать нас и, что более важно, заказчика. Думаю, что такое решение можно рассматривать как временное, до тех пор пока мы не сделаем свою реализацию темной темы.
В темах DayNight уже используется такая реализация, нам достаточно отнаследоваться от них.
Давайте попробуем написать свою:
Нам теперь на каждую версию API делать тему со всеми параметрами? Нет, конечно! Мы сделаем базовую тему, где будут определены базовые атрибуты, доступные для всех версий API и отнаследуемся от нее в нужной версии API:
При созданий собственных тем и стилей будет здорово, если вы укажите префикс, говорящий о том что это за стиль и для чего он определен. Такое именование позволит очень просто структурировать и расширять стили.
10. Использовать TextAppearance
Хорошим тоном будет расширить основные стили для текста и везде их использовать.
Много полезной информации можно найти на сайте Material Design: Typography, Typography Theming.
Заключение
В заключение хочется сказать, что стилизация приложения — это обязанность не только разработчиков, но и дизайнеров. Только благодаря тесному взаимодействию мы сможем получить по-настоящему хороший и красивый продукт. Дизайнеры должны иметь представления о платформе и возможностях Material Components. Ведь именно на их плечи ложится ответственность по поддержке визуальной составляющей приложения. Дизайнерам доступен специальный плагин для Sketch — Material Theme Editor. В нем очень просто выбирать цвета для приложения и строить экраны на основе стандартных компонентов. Если ваши дизайнеры еще не знают о нем, то обязательно расскажите им.
Начать изучать Material Components можно с репозитория на GitHub — Modular and customizable Material Design UI components for Android. В нем собрано очень много информации по стандартным стилям и их возможностям. Кроме того, там есть приложение — sample, чтобы все сразу попробовать на практике.