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

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

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

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

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

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

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

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

Оригинал | Перевод
Прокачиваем адаптеры с помощью Data Binding – меньше бойлерплейта и больше гибкости.

https://medium.com/google-developers/android-data-binding-recyclerview-db7c40d9f0e4
🕹 Что нужно учесть, проектируя навигацию в приложении

Если вы решили добавить в приложение bottom navigation, важно не переусердсововать - вы можете усложнить навигацию вместо того, чтобы её упрощать.

- Используйте bottom navigation только для самых главных разделов (не больше 5)
- Давайте пользователю возможность понять, где он находится в каждый момент времени
- Используйте только распространенные иконки
- Если у иконок есть подписи, не делайте их слишком длинными

Статья в чем-то дублирует гайдлайны Material Design, но паттерн нижней навигации в ней рассмотрен немного подробнее, так что прочитайте её прежде, чем дизайнить.

https://www.smashingmagazine.com/2016/11/the-golden-rules-of-mobile-navigation-design/
💎 Команда AirBnb релизнула библиотеку для создания макетов в формате Sketch с помощью React-компонентов.

Почитать: http://airbnb.design/painting-with-code/
Посмотреть: http://airbnb.io/react-sketchapp/docs/examples.html
Попробовать: https://github.com/airbnb/react-sketchapp
Полезная заметка про то, что такое Context в Android и как его правильно использовать.

Главное правило – нужно использовать контекст компонента, с которым вы работаете (getContext() в Activity, getApplicationContext() в синглтонах). Не передавайте контекст туда, где его использование может выйти за пределы жизненного цикла родительского компонента.

https://blog.mindorks.com/understanding-context-in-android-application-330913e32514
O'Reilly раздаёт книги по разработке, и среди них есть небольшое (41 страница) руководство по применению RxJava в Android-разработке. Я просмотрел её и могу сказать, что хотел бы знать о ней раньше – там довольно кратко и ёмко рассматривается все, что нужно знать при знакомстве с этой библиотекой. С первого взгляда она кажется более понятной, чем все статьи, которые я видел в интернете (хотя не хватает диаграмм для наглядности). В общем, советую.

Все остальные бесплатные книги можно найти тут: oreilly.com/programming/free/
Хэй-хэй, всех с началом новой недели!

Посмотрите классный доклад Джейка Уортона про управление состоянием приложения с помощью RxJava. Он рассказывает, почему работать и с данными, и с UI, в рамках одной подписки на Observable – это плохо, и как разбить логику изменения состояний на легко тестируемые модули.

https://www.youtube.com/watch?v=0IKHxjkgop4
Пара полезных статей об аннотациях в Android:
Здесь рассказывается, как применять уже существующие аннотации для улучшения читабельности кода и проверки разных условий во время code inspection. Например, с их помощью можно указать, что передаваемый в метод integer должен быть ссылкой на строковый ресурс, или что метод может вернуть null.
А здесь можно почитать, как создавать свои собственные аннотации.
🛠 Git для дизайнеров (и не только)

Если вы хотите прокачать свой workflow, научиться использовать систему контроля версий (VSC) – отличная идея.
Если коротко, Git – это история всех внесенных изменений, бэкапы и коллективная работа над проектом в одном флаконе.

Влиться в тему поможет эта статья – здесь подробно рассказано, что такое Git и Github, и по шагам расписано, как создать репозиторий. А в конце есть список ресурсов для дальнейшего изучения.

Возможно, вы захотите положить под контроль большие файлы с макетами. Но тогда ваш репозиторий будет занимать все больше и больше места после каждого внесённого изменения. На помощь придет расширение Large File Storage. Здесь написано, как его установить и как им пользоваться.

Если вас пугает командная строка, обратите внимание на SourceTree или упоминаемый в статьях Tower – клиенты с графическим интерфейсом, которые сделают многие вещи проще и понятнее, особенно если у вас нет опыта работы с Git. К командной строке со временем можно и нужно привыкнуть – она помогает избавиться от многих лишних телодвижений, особенно когда нужно сделать шаг в сторону от выполнения рутинных задач.

С первого взгляда все это может показаться сложным, но усилия окупятся – работа над проектом с использованием VCS станет на порядок легче.
Нас сильно прибавилось, уже больше 500 человек!
Спасибо, что вы здесь.
Давайте проведём небольшой опрос:

Результаты:
Я разработчик: 114 ■■■■
Я дизайнер: 73 ■■
Я менеджер: 70 ■■
Другое: 23
Проголосовавшие видны создателю опроса
5 классных UI-библиотек.
Даже если вы не собираетесь ими пользоваться, будет полезно посмотреть, как они устроены.

https://medium.cobeisfresh.com/top-5-android-libraries-may-2017-3988610b3ce6
Короткий гайд по open source для начинающих – буквально несколько абзацев про то, с чего начать, и каким должен быть хороший репозиторий.

https://hackernoon.com/how-to-get-started-with-open-source-2b705e726fea
Достаточно подробная статья про оптимизацию приложений под слабые устройства и медленное соединение.

Внутри много советов и библиотек, которые помогут:
- сделать размер приложения меньше
- увеличить плавность интерфейса
- загружать контент максимально быстро
- обеспечить хороший UX даже при отсутствии интернета
- заранее предугадывать, когда пользователю понадобится контент и подгружать его заранее

https://blog.aritraroy.in/how-to-make-android-apps-great-again-e670e6db6a8a
🖥 Подборка с подборками!

Много отобранных вручную материалов по Android-разработке – инструменты, книги, сайты, open source приложения, и даже шорткаты для Android Studio:
https://github.com/aritraroy/UltimateAndroidReference

Исчерпывающий список библиотек и других инструментов по категориям:
https://github.com/JStumpp/awesome-android

И немного ресурсов по Kotlin:
https://github.com/mcxiaoke/awesome-kotlin

В таких списках часто можно найти что-то крутое, о чем раньше не знал, поэтому будет полезно пробежаться глазами.
Если вы разработчик, и у вас есть идея запустить своё приложение, то можно поступить, как я пару лет назад – набраться мотивации работать, сделать приложение, а потом понять, что оно никому не нужно и вообще такое уже есть. Это очень плохой способ потратить время и силы.
Говорят, что если найти действительно серьезную проблему, досконально изучить свою аудиторию и её потребности, заморочиться с бизнес-моделью (вы же собираетесь зарабатывать на своём приложении, правда?) и суметь правильно преподнести продукт, то шансы на успех сильно повысятся. В этом докладе идет речь обо всех подобных вещах. Посмотрите. Благодаря ему вы не создадите успешный стартап за одну ночь, но оно даёт хорошее представление о том, с чем вам придется столкнуться (и нужно ли оно вам вообще).

Насчёт продуктового дизайна можно писать долго и подробно, так что я поделюсь только парой ресурсов, которые помогут подробнее разобраться в теме – это, к примеру, Школа Дизайна Яндекса 2015 и 2016, замечательная книга The Mom Test (о том, как правильно выстраивать интервью с будущими клиентами), Hooked: How To Build Habit-Forming Products (которую я в силу обстоятельств бросил на середине, но обязательно к ней вернусь, потому что она крутая), и канал @proproduct, в котором много полезного (не реклама, а просто личная рекомендация).

Я считал, что прежде, чем браться за дело, надо много прочитать и изучить. Кто-то говорит, что не стоит тратить на это время – надо брать и делать. Но истина где-то посередине. Много читайте, работайте ещё больше, и успех придет. Со стороны кажется, что приходит он внезапно и по воле случайности, но любой успех – это результат усилий, умноженных на потраченное время. Поэтому всем, кто хочет чего-то добиться, я желаю не только успеха, но также времени и сил для его достижения.
Сегодня в 20:00 начнётся Google I/O 2017, на которой официально представят Android O, вторую версию Google Home и новый VR-шлем с мощной начинкой.
Ждёте?
Google Assistant стал лучше – теперь он распознает изображения, понимает не только голос, но и ввод с клавиатуры, знает больше языков и работает на iPhone. Появилась поддержка проведения транзакций – с помощью голоса можно заказать, например, еду. Вводить адрес или данные карты не нужно – сервис сам подтянет нужные данные из Google аккаунта.