Pull to refresh
19
0
Send message

5 UI фишек для современного Андроид приложения. Код, идеи и живой пример

Reading time5 min
Views22K
image

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

Статья не ставит своей целью научить проектировать пользовательский интерфейс или объяснить сокровенный смысл Material дизайна, но надеюсь, приведенные примеры смогут вдохновить Ввас на эксперименты с дизайном ваших приложений.
Читать дальше →
Total votes 23: ↑18 and ↓5+13
Comments15

Navigation Drawer в стиле Material Design за 5 минут

Reading time9 min
Views115K
imageВ данной статье я расскажу, как быстро добавить в ваше приложение для Android боковое меню (aka Navigation Drawer) в стиле Material Design. Для этого мы воспользуемся библиотекой, любезно предоставленной Mike Penz.

У вас получится Navigation Drawer, который:

  • Соответствует последним рекомендациям по дизайну (Google Material Design Guidelines);
  • Поддерживает использование нескольких Drawer (можно выдвигать второй справа);
  • Поддерживает использование бейджей;
  • Имеет простой и понятный интерфейс (API);
  • Может выползать как под, так и поверх Status Bar;
  • Позволяет менять иконки, цвета, бейджи во время выполнения;
  • Использует AppCompat support library;
  • Работает, начиная с API 14.

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

Читать дальше →
Total votes 24: ↑20 and ↓4+16
Comments21

Легко переходим на векторный формат картинок вместо нарезки под разные плотности экранов в Android 4.0+. Часть 1 из 2

Reading time4 min
Views36K


Обычно дизайн приложения рисуется в векторном редакторе (например, Sketch), но типичным форматом картинок в приложении под Android является растровый (как правило, PNG). При разработке приложения необходимо для каждого векторного изображения заниматься утомительной работой по изготовлению набора растровых картинок для разных плотностей экранов. Количество таких комплектов может доходить до шести по числу возможных плотностей: ldpi, mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi (плотность xxxhdpi необходима только для иконки приложения). При верстке иногда приходится задать в разметке явные размеры для изображения, что может потребовать перемасштабирования растровой картинки, а это, в свою очередь, наверняка приведет к появлению артефактов. К тому же наличие нескольких комплектов картинок отрицательно сказывается на размере выходного apk.
Читать решение...
Total votes 25: ↑24 and ↓1+23
Comments13

Интеграция дизайна мобильных приложений. Часть 1: Android

Reading time4 min
Views129K


Этот доклад я прочитал на Dribbble Meetup 2013, который прошел в Москве в День космонавтики. В нём описан мой процесс интеграции дизайна — то есть в каком виде передавать приложение от дизайнера к разработчику мобильных приложений. Выбор интсрументов, которые я использую в работе, и сам процесс сформировались опытным путём, методом проб и ошибок. Надеюсь, он поможет сохранить вам немного времени и избавит хотя бы от части рутинной работы. Так как презентация содержит достаточно большое количество слайдов, я решил разбить материал на две части. Первая часть — интеграция дизайна под платформу Android. Вторая — под iOS и Windows Phone, а также упомяну про Samsung Bada. Дальше — много картинок.
Читать дальше →
Total votes 55: ↑53 and ↓2+51
Comments40

Наша Service и опасна и трудна или некоторые аспекты выживания служб в Android

Reading time7 min
Views56K

Вместо введения


Во многих практических задачах требуется выполнение различных фоновых действий, будь то проигрывание музыки, обмен данными с сервером или просто слежение за действиями пользователя дабы похитить у него реквизиты кредитных карт. Ну а если не получится, то по крайней мере завалить его целевой рекламой, используя полученные сведения. Как уже давным-давно все знают, в Android такие вещи оформляются в виде службы (Service).

Официальная документация гласит, что ОС Android останавливает службу только в случае нехватки памяти. Тем не менее, существует и другие случаи. Пользователь может сам остановить службу, используя предоставляемые ему средства меню Settings/Apps, там же он может сделать и полную остановку приложения. Но для этого ему надо напрягаться и, в общем-то осознавать свои действия и их последствия. К сожалению, для уничтожения службы у него есть и другие возможности, которыми он может пользоваться бессознательно. В частности, если в нашем приложении ранее была запущена хоть одна Activity, видимая в истории, то пользователь буквально одним движением пальца сможет вынести соответствующую задачу. Как ни парадоксально, попутно Android вышибет и весь процесс вместе со службой.

Лично мне такое поведение Android логичным не кажется. Пользователь зачастую просто чистит Recent Apps от давно забытого хлама, совсем не обязательно он при этом желает отказаться от тех благ, которые ему предоставляла выполняющаяся служба. Однако разработчики Google мыслили немного по-другому. По-другому, так по-другому, их право, но в конце концов нам с вами тоже надо как-то жить.
Читать дальше →
Total votes 17: ↑17 and ↓0+17
Comments20

Введение в новый CoordinatorLayout

Reading time5 min
Views54K
В этом году на конференции Google IO компания Google представила новую библиотеку Android Design Support Library, которая создана для того, чтобы помочь разработчикам внедрять материальный дизайн в их приложения. Билиотека содержит много компонентов, нужных для этого нового стиля, и работает со всеми уровнями API, начиная с седьмого. Если по какой-то причине вы пропустили её анонс, можете ознакомиться с постом Ian Lake, выложенным на Android Developers Blog.

Встречайте Android CoordinatorLayout


Из всех компонентов, включенных в Android Design Support Library, наиболее интересным выглядит новый «прокачанный FrameLayout», он же герой нашей статьи — CoordinatorLayout. По названию можно догадаться, что CoordinatorLayout позволяет координировать некие зависимости между включенными в него виджетами.

Всё, что нужно сделать — обернуть необходимые нам виджеты в CoordinatorLayout. Давайте посмотрим, как это будет выглядеть в коде. Наш демонстрационный код очень прост — Floating Action Button, по нажатию на которую на экране появляется Snackbar.
Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments5

Как дизайнеру подготовить передачу Android-приложения разработчику

Reading time2 min
Views39K
Во время нарезки графики под приложения часто возникает множество сложностей: от разрешения устройств и проблемы с сетками и рекомендациями Google до непосредственно передачи приложения разработчику. За 2 года я работала над дизайном более 10 приложений, научилась находить решения самых разных проблем и делать так, чтобы в конечном итоге приложение выглядело так же, как и в дизайне.
Об этом и пойдет речь под катом.



Читать дальше →
Total votes 34: ↑28 and ↓6+22
Comments22

Иконка бокового меню из Material Design (как в Google Play)

Reading time4 min
Views43K
Привет, Хабражители!

Наверное, многие заметили, что в последних версиях приложений Google Play и Google+ Фото для Android иконка бокового меню (NavigationDrawer) имеет красивую анимацию (переход из трёх полосок в стрелку). Пример здесь. Мне стало интересно, как это реализовано, и я отправился в путешествие по просторам Всемирной паутины в поисках ответа на этот вопрос. Теперь же спешу поделиться с вами этим рецептом.

Кому интересно, прошу под кат.
Читать дальше →
Total votes 28: ↑19 and ↓9+10
Comments36

AppCompat v21 — Material Design для пре-Lollipop устройств

Reading time8 min
Views92K
image
17 октября был опубликован Android 5.0 SDK, который принес новые виджеты и материальный дизайн. Мы расширили библиотеки поддержки, чтобы вы могли использовать ваши последние разработки и на предыдущих версиях Android. Это изменения включают в себ крупное обновление для AppCompat, а так же библиотеки RecyclerView, CardView и Palette.

В этом посте мы взглянем, что нового появилось в AppCompat и как это использовать для поддержки материального дизайна в ваших приложениях.
Читать дальше →
Total votes 18: ↑16 and ↓2+14
Comments22

О производительности Android-приложений

Reading time5 min
Views38K

Введение


Первое, что я хочу сказать: статья не претендует на сильно глубокий уровень, скорее я хочу рассказать о том, что производительность это не только «быстрее с NDK на С++» и «экономьте память, а то сборка мусора будет часто запускаться», а это целый комплекс мер, потому что проблемы с производительностью возникают не когда одна функция медленно работает, а в комплексе.
Не было ли у вас ощущения, что приложение тормозит, а вы уже не знаете что делать — и память вроде не жрет, и профайлером уже посмотрели, а решения все нет. Если да, то эти заметки для вас.
Понятия и термины я переводить не буду, так как я думаю что почти все разработчики их не переводят.
Читать дальше →
Total votes 40: ↑37 and ↓3+34
Comments10

Переводим ActionBar на следующий уровень

Reading time9 min
Views37K
Еще в ноябре 2012 года, я написал сообщение в блоге озаглавленное как "ActionBar в движении". Эта статья в основном касалась методики того, как красиво и уникально оживить ваш ActionBar . Хотя я упомянул некоторые из возможностей применения данного эффекта, я никогда не имел времени, чтобы добавить данный вид анимации ActionBar к какому-либо из моих собственных приложений. Но я видел в Play Store приложение использовавшее его.

Будучи на Google I/O, я наконец нашел приложение, использующее в ActionBar технику анимации. Давайте будем честными, это буквально взорвало мой взгляд когда я в первый раз это увидел. Я влюбился в хороший, тонкий и чрезвычайно полезный анимационный эффект, и, вероятно, даже больше, чем в само приложение! Я уверен, вы знаете приложение о котором я говорю, так как оно было представлено во время Google I/O. Это приложение Play Music!

Последнее обновление Play Music (v5.0) претерпело полный редизайн и внешний вид страниц с описанием исполнителя и альбома. Если вы откроете такую страницу, то вы заметите, что ActionBar изначально невидим и наслаивается на большое изображение, описывающее исполнителя или альбом. Но как только вы начинаете прокручивать страницу вниз (если это возможно), то ActionBar постепенно проявляется. ActionBar оказывается полностью непрозрачным, когда изображение становится прокрученным за экран.
Читать далее
Total votes 30: ↑26 and ↓4+22
Comments6

SwipeRefreshLayout: не сферический и не в вакууме

Reading time3 min
Views13K
Про новый SwipeRefreshLayout из библиотеки Android support на Хабре уже писали, да и Google любезно выдаёт множество ссылок на подобные примеры. Их всех объединяет одно — в SwipeRefreshLayout добавляется единственное TextView или ListView, и через минуту разработчик с умилением глядит на работающую анимацию. А если нам интерфейс чуть посложнее надо?
Читать дальше →
Total votes 15: ↑12 and ↓3+9
Comments4

Мобильный интерфейс для одной руки

Reading time4 min
Views47K
В своей книге Designing Mobile Interfaces (2011) дизайнер Стивен Хубер ввел понятие The Thumb Zone («зона большого пальца») — область экрана, наиболее удобная при использовании телефона одной рукой. С года издания книги средний размер смартфона заметно увеличился, и «мертвая зона» — область, которую сложно достать пальцем одной руки, — также стала больше.

«Зона большого пальца» для 5–4,7-дюймового экрана, если держать телефон в левой и в правой руке, соответственно. Изображение основано на публикации Скотта Хэрффа.
Изображение. «Зона большого пальца» для 5–4,7-дюймового экрана, если держать телефон в левой и в правой руке, соответственно. Изображение основано на публикации Скотта Хэрффа.

Читать дальше →
Total votes 42: ↑38 and ↓4+34
Comments49

Транзакции фрагментов и потеря состояния активности

Reading time4 min
Views12K
Для тех, кто не сталкивался с этой проблемой, поясню на примере — в конце длительной фоновой операции вы показываете диалог (да Google не рекомендует так делать, но заказчик требует). Если до показа диалога вы свернете приложение нажав клавишу Home, то во время показа диалога произойдет исключение IllegalStateException. То же самое произойдет в случае показа диалога ожидания и скрытия его по завершению фоновой активности — вызов метода dismiss() после сохранения состояния вызовет исключение.



Лучшая статья на эту тему, которую я нашел погуглив проблему это Fragment Transactions & Activity State Loss. Статья объясняет проблему, но дает только общие советы, сама проблема остается нерешенной. Возможно кому-то из хабражителей будет интересно сделать перевод статьи, а пока расскажу вкратце ее смысл. Система Android обладает возможностью завершить любую активность вашего приложения и ее фрагменты при нехватке памяти. Чтобы скрыть от пользователя этот прискорбный факт, Android сохраняет состояние активности и восстанавливает его при необходимости, так что пользователь даже не замечает какие катаклизмы происходили на уровне кода. Когда вы пытаетесь отобразить диалог после сохранения состояния, по сути вы нарушаете сохраненное состояние и такая активность не может быть восстановлена. Android решает это простейшим для себя способом — выкидывает исключение и не позволяет закомитить транзакцию фрагментов. А ваше приложение просто крашится.

Читать дальше →
Total votes 17: ↑14 and ↓3+11
Comments15

Автоматическое тестирование Android приложений c любовью

Reading time1 min
Views15K
Новая видеозапись одного из докладов с нашей конференции мобильных разработчиков #MBLTDev. На этот раз мы решили выложить видео для Android-разработчиков и тестировщиков «Автоматическое тестирование Android приложений c любовью» от Алексея Коровянского.

Алексей является Android-разработчиком и основателем некоммерческого сообщества разработчиков Google Developer Group Омск.


Презентация

В своем докладе Алексей рассказал про проблемы и трудности, с которыми сталкиваются при автоматизации тестирования. Привел примеры, исходя из своего опыта, решение проблем, примеры того, что было раньше, что есть сейчас и сделал прогноз того, что нас ожидает в будущем. Кроме того, Алексей рассказал про тестирование на примере двух фреймворков и про Espresso и Robolectic.
Читать дальше →
Total votes 22: ↑18 and ↓4+14
Comments0

5 ошибок при обратной связи с пользователями

Reading time5 min
Views25K
image

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

На стартовом этапе нового проекта, особенно если управление тем или иным продуктом осуществляется не так давно, возникает большой соблазн узнать мнение всех пользователей по тому или иному вопросу. Но чаще всего такая поспешность является ошибочной. Кроме спешки большинство специалистов, занятых продвижением тех или иных продуктов, допускают 5 основных ошибок, которые повторяются вновь и вновь. Наличие множества сервисов обратной связи делает получение информации от пользователей крайне простым процессом – однако не стоит увлекаться ее получением по любому поводу. Мы подготовили для вас пять советов, связанных с использованием обратной связи от потенциальных клиентов.

Читать дальше →
Total votes 33: ↑27 and ↓6+21
Comments10

Полезное для начинающих играть в Ingress

Reading time4 min
Views248K
Ingress — игра от Google, представляющая нам мир с дополненной реальностью. Работает только на платформе android. При запущенной игре вы видите реальную карту мира вокруг нас (Ingress использует геопозиционирование), но помимо этого вы видите дополнительные объекты — порталы, резонаторы и прочее. Обычно порталы расположены на памятниках нашего мира.
На хабре уже был обзор этой игры, сейчас же я хочу рассказать несколько полезных советов для тех, кто начинает играть.
Читать дальше →
Total votes 47: ↑33 and ↓14+19
Comments116

Макросъемка китовым объективом

Reading time1 min
Views15K
По подсказке знакомого почитал тут забугорный форум по поводу макросъемки. Хочу поделиться результатом.

На форуме в качестве примера были приведены фотографии, сделанные с помощью модифицированного объектива canon ef 35-80 1:3,5-5.6. Я решил «помучать» свой canon ef 28-80 1:3,5-5,6 — китовый объектив от пленочной зеркалки Кэнон.

Собственно вся модификация заключается в удалении передней линзы:

макросъемка китом
Читать дальше →
Total votes 93: ↑90 and ↓3+87
Comments108

Почему трава зеленая, а программисты крутые

Reading time6 min
Views155K


Я люблю находить на новостных ресурсах статьи о том, что программисты получают очень много денег. Я сразу пролистываю их до комментариев и с теплом в душе читаю гневные отзывы о том, что программисты ничего не делают и не заслуживают таких денег. Но после прочтения возникает мысль: знают ли они, кто такие программисты? Или они исходят в своих суждениях из неверного знания, даже не подозревая об этом. Например, мало кто знает, почему трава зеленая. Подумайте об этом. Следует ли из ваших объяснений зелености травы именно зеленый цвет?
Читать дальше →
Total votes 242: ↑202 and ↓40+162
Comments189

Sproutling: фитнес-трекер, электронная няня и система безопасности для ребенка

Reading time3 min
Views14K


О таких многофукциональных гаджетах, как Sproutling, принято писать «и швец и жнец, и на дуде игрец». На Хабре вчера была опубликована подборка о гаджетах для детей, где коротко упомянули Sproutling.

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

Но умеет это устройство гораздо больше.

Читать дальше →
Total votes 33: ↑29 and ↓4+25
Comments15

Information

Rating
Does not participate
Location
Одесса, Одесская обл., Украина
Date of birth
Registered
Activity