Мобайл: дизайн и разработка – Telegram
Мобайл: дизайн и разработка
473 subscribers
8 photos
158 links
Android-разработчик и дизайнер делится своим опытом, полезными инструментами, выжимками статей и докладов.
Download Telegram
4 способа обработать ошибку в приложении

Коротко:
1) Блокируйте интерфейс полностью, если из-за ошибки невозможна работа с сервисом.
2) Блокируйте отдельные части интерфейса, если они не функционируют сами по себе, но не мешают пользоваться приложением.
3) Показывайте всплывающее сообщение или небольшой баннер, если ошибка влияет на работу приложения, но не мешает им пользоваться.
4) Показывайте ошибки рядом с элементами интерфейса, чтобы привлечь к ним внимание (например, при заполнении форм).

Автор статьи сделал постер на русском и английском, который поможет выбрать подходящий способ сообщить об ошибке в зависимости от ситуации.
Введение в RxBinding – библиотеку для придания вашим вьюхам реактивности 🚀

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

RxBinding на гитхабе
Очень короткая статья про дизайн мобильных форм. На 90% состоит из скриншотов, которые показывают, какие элементы UI использовать и как их лучше размещать.

Оригинал
Перевод
Google разрабатывают набор реактивных библиотек для создания Material Design анимаций.

Версия для iOS (Swift) уже находится в стадии stable dev preview, Библиотеки для Android и JavaScript пока еще в разработке, но их уже можно попробовать.
🆕 Вышел dagger-android – модуль для инъекции Activity и Fragment'ов

О том, как внедрить его в свой проект, можно почитать на официальной странице и в этой статье.

Примеры на гитхабе:
Java
Kotlin
🎁 Популярные эмодзи в векторе для макетов ваших приложений

https://applypixels.com/template/vector-emoji/
Отличная статья с Best Practices для Kotlin.
Есть спорные моменты, но в целом много полезной инфы и приёмов, о которых вы могли не знать.

https://blog.philipphauer.de/idiomatic-kotlin-best-practices/
Всех с началом новой недели!

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

https://blog.prototypr.io/how-to-use-space-in-ui-design-15e169127236
🔑 Как совместить хороший UX и безопасность, когда вы просите пользователя придумать пароль:

1. Не заставляйте соблюдать правила наподобие "в пароле должен быть как минимум один специальный символ".
2. Задайте минимальную длину (в Unicode).
3. Убедитесь, что придуманный пароль не попадает в топ самых распространенных паролей.
4. Проверяйте энтропию.
5. Следите за особыми случаями – пароль не должен совпадать с логином или с названием сервиса.

https://blog.codinghorror.com/password-rules-are-bullshit/
Еще одна подборка Best Practices, на этот раз по Android-приложениям. Некоторые вещи довольно очевидны, а о некоторых я раньше не слышал (например, о проблеме матрешки, касающейся вложенных фрагментов). В любом случае, будет полезно почитать и подумать о том, всё ли вы делаете правильно 😉

Кстати, аналогичные подборки есть для iOS и Windows. Про их качество и полезность ничего сказать не могу, но надеюсь, кому-нибудь они пригодятся.
Как писать адаптеры для списков с разными типами элементов, не используя касты и instanceof/is, и соблюдая Open-Closed Principle.
Код в статье написан на Kotlin, но все описанное подойдет и для Java.

https://medium.com/@dpreussler/writing-better-adapters-1b09758407d2
Гайдлайны Material Design обновились – Google добавили инструмент для подбора палитры. Можно составить схему из цветов, которые есть в гайдлайнах, или использовать любой другой цвет. Обновление также коснулось текстовых полей и гайдлайнов по иконкам для Right-To-Left лейаутов.
Интересный гайд по анимированию элементов в Constraint Layout.

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

Всем хорошей рабочей недели!
📈 Небольшая вводная статья для разработчиков про аналитику в приложениях.

Что, как и где отслеживать, какие инструменты использовать и как не нарушить приватность пользователей.

https://medium.com/@sergii/the-key-concepts-of-app-tracking-for-developers-a11bebf1e65e
Если вы читали гайдлайны Material Design, то наверняка встречали раздел Launch screens, в котором идеть речь про экраны, которые пользователь видит во время загрузки приложения. Вот презентация для Android-разработчиков о том, как создавать такие экраны, отслеживать время их запуска и обеспечивать совместимость со всеми платформами.
📄 Лицензирование open-source приложений

Если вам, как и мне, эта тема кажется скучной и из-за этого вы откладываете её освоение, то теперь у вас нет отговорок – я собрал для все, что нужно. 😉

Начните с этой статьи.
Здесь почти без воды и доступным языком объясняется:
- для чего нужны лицензии
- какие они бывают
- как они влияют на то, что можно делать с кодом
- как их комбинировать
- как выбрать подходящую лицензию

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

Еще я нашел пару полезных плагинов для Gradle:
- Gradle License Report собирает в одном месте информацию о лицензиях, которые используются в зависимостях проекта
- License Gradle Plugin пригодится, если вам нужно прикладывать текст лицензии к каждому файлу проекта (этого требует, к примеру, Apache License 2.0)

Проекты без лицензии никто не сможет использовать, а это противоречит самой идее open source. Так что разбирайтесь и лицензируйте. Это не сложно. ✌️
Почему спиннеры вредят UX и что лучше использовать вместо них

Главное:
- из-за спиннеров кажется, что загрузка происходит дольше, чем на самом деле
- пользователи не знают, что и когда появится в результате загрузки
- вместо спиннеров лучше использовать skeleton screens – экраны, приближенные к финальному состоянию

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

Оригинал | Перевод