Android Live 🤖 – Telegram
Android Live 🤖
5.28K subscribers
52 photos
1 video
800 links
Самые свежие новости, новинки и тренды Android от практикующего разработчика.


Автор: @al_gorshkov,
Чат: @android_live_chat
Личный блог: @al_gorshkov_blog

Рекламу не размещаю
Download Telegram
​​Vysor
#приложение

Хочу поделиться приложением, с которым очень давно знаком. Vysor — приложение не совсем для разработчиков, в большей степени пригодится тестировщикам. Однако, я также пользовался им в нескольких ситуациях.

Например, через это приложение удобно делать скриншоты экрана и записывать с него видео без использования Android Studio. А ещё одна ситуация — это использование приложения на разбитом смартфоне, когда не работает тачскрин. Благо, такое бывает не часто. Но в такие моменты хочешь найти решение для того, чтобы взять важную инфу с телефона.

Приложение устанавливает как плагин к Google Chrome, а также как приложение на телефон. В итоге получаешь возможность управлять экраном с компьютера.
В бесплатной версии есть реклама, которая появляется на экране, что немного напрягает.

Теперь, если у вас появится необходимость в удаленном управлении смартфоном, то вы знаете, какое приложение использовать.
Channel photo updated
Полезны ли паттерны?
#разработка

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

Время от времени, стараюсь изучать и актуализировать существующие паттерны. Есть несколько причин, почему они полезны и для чего их нужно знать:

1. Проверенное решение. Если какой-то код написан на основе паттерна, то давно известно, какие подводые камни могут встретиться при его использовании. Также, если вы пишите свой код на основе известного шаблона, то не нужно изобретать велосипед.

2. Стандартизация. Паттерн одинаков на всех языках программирования. Поэтому, не нужно объяснять другим разработчикам, что именно делается в коде, можно назвать только паттерн.

3. Улучшение кода и проектирования. Паттерны упрощают проектирование. Архитектуру приложения можно делать на основе известного шаблона. В Android, например Clean Architecture.

Но изучая паттерны, многие новички сталкиваются с желанием применять их повсюду. Подчас, паттерн не к месту, и без него код будет проще. Важно останавливать себя в этом, и особенно на начальном этапе советоваться с опытными разработчиками и просить сделать их review своего кода.

Отличный ресурс, где можно изучать шаблоны Refactoring.Guru. Всё объяснено простым языком, с примерами из жизни. Очень рекомендую.

А вы используете паттерны?
​​Хитрость дизайна
#дизайн

Попалась недавно статья о недобросовестном маркетологе и гениальном дизайнере.

Задача любого рекламного баннера — заставить пользователя кликнуть на него и сделать нужную там операцию: будь то покупка, просмотр рекламы, регистрация на сайтах. Для того, чтобы заставить пользователя кликнуть на баннер и обеспечить большое количество просмотров рекламы, дизайнер сделал на баннере крошечную пылинку. Пользователь видит её на экране своего смартфона, пытается убрать, но в результате открывает рекламу.

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

Конечно, подобные уловки не красят аккаунт. Это не честно для пользователей. Но сама идея подобной накрутки действительно заслуживает внимания.
Дефицит разработчиков
#думы

Вчера по радио услышал новость, что Россия к 2027 году столкнется с дефицитом кадров в IT-сфере. Это говорит Фонд развития интернет-инициатив (ФРИИ), ссылаясь на своё исследование. Вот и хочу порассуждать. Немного статистики и цифр.

Фонд утверждает, что в 2016 в РФ было 1,9 миллионов айтишников, что равнялось 2,4% от общего трудоспособного населения. При этом, ссылаются на статистику США, Великобритании и Германии, где показатель на уровне 4,3%. Разница ощутимая.

ФРИИ утверждает, что высшее и среднее специальное образование выпускает около 60К айтишников в год. Чтобы не было кадрового голода в будущем, необходимо увеличить это количество до 100К человек в год, что весьма сложно.

Отмечается также, что кадровый голод будет не только разработчиков, но и администраторов, менеджеров продуктов, дизайнеров... Так что, наша профессиональная сфера становится ещё более актуальной. По опыту, даже сейчас на рынке дефицит профессиональных и опытных разработчиков, будь то iOS или Android.

А вот интересно. Если взять человека, который дико хочет научиться разработке на Android. И взять опытного наставника, который понимает, что сейчас требуется на рынке и актуально в разработке: какие библиотеки, какие архитектурные паттерны, какие ресурсы читать, то за какое время возможно обучиться до уровня junior?

⚪️ — 3-6 месяцев;
⚫️ — 6-12 месяцев;
🔴 — 1-2 года;
🔵 — больше 2 лет.
​​Новый топ статей из Medium. Сегодня хочу дать вам статьи-советы. Каждая статья внутри содержит еще кучу полезных ссылок. Уверен, что найдете для себя что-то новое.
#статьи #medium

1) 30 советов для Android-разработчиков, которые я почерпнул из своего опыта. — (3 минуты)
Люди делятся на тех, кто испытывает все на своем опыте и на тех, кто следует советам других людей. Автор делится своим опытом Android-разработки и дает 30 отличных советов.

2) Android Development Best Practices. — (5 минут)
Иногда следует почитывать статьи о хорошем качестве кода и разработке, чтобы понимать, что ты все делаешь верно. Автор дает советы, основанные на своем опыте о архитектуре, тестировании, дебаге и подобных повседневных вещах каждого разработчика.
​​Заглушки
#дизайн

Уверен, что при создании дизайна списков, больше внимания уделяется состоянию, когда в нем содержится большое количество элементов. Если в списке 1 или 2 элемента, то чаще дизайн выглядит так же, как и при большем количестве объектов. Но много ли внимания уделяется состоянию, когда нет элементов?

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

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

2) Делайте заглушки интерактивными. Например, у нас есть список покупок пользователя. Как только пользователь зарегистрировался в приложении, у него ещё нет покупок. Предложите ему прям на заглушке сделать первую покупку. Пусть это будет кнопка, которая перенесет сразу в магазин. Второй кейс — список контактов. Пользователь может запретить доступ к контактам, поэтому логично на заглушке, которая создана, сделать кнопку повторного запроса разрешения.

3) Делайте заглушки разнообразными. Я не говорю о том, чтобы делать их в разной стилистике в одном приложении. Например, можно вместо статических изображений использовать кроссплатформенную библиотеку Lottie, которая прям создана для заглушек. Она хорошо работает, замечал баги только со скоростью воспроизведениям объектов.

4) Подумайте над текстами. Их тоже следует делать понятными. Не нужно использовать одинаковые тексты во всем приложении, типа "Что-то пошло не так" или «Неизвестная ошибка». Я думаю, что тут уместен юмор и можно написать сообщение, которое сгладит ситуацию. Но не стоит перебарщивать. Если у вас банковское приложение, то надпись «Ой, похоже ваши деньги кончились или наш банк не работает» выглядит как насмешка.

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

Несколько раз встречал разработчиков, которые не любят верстать. Могу их понять: присылают макет в psd, и ты не можешь понять, какие же отступы между элементами, какой шрифт и какие размеры у них. Хорошо, что есть guidlines, которые регулируют подобные вещи, но это не абсолютная гарантия. Ещё постоянно делаешь Alt-Tab, чтобы смотреть на дизайн и переносить его в верстку. Ну и «пипетка» — надо же понять, какой цвет задумал дизайнер.

Чтобы верстка приносила удовольствие рекомендую отличный сервис для дизайнеров и разработчиков — Zeplin. Это намного удобнее, чем макеты в формате изображения.

Что же это за сервис? Представляет из себя приложение под Mac или Windows, а также хорошую веб-версию, где можно загружать макеты экранов и просматривать отдельно каждый из элементов на нем.

Чем полезен:
• все доступные цвета — теперь не нужна «пипетка»;
• можно сразу скачать нужную иконку. Вектора тоже поддерживаются;
• показывает параметры шрифта. Также можно копировать текст в один клик;
• поддержка идентификаторов для view;
• связка со Slack;

Из недостатков можно только выделить то, что он платный. Но... Дизайнер может создавать макеты со своего аккаунта, являясь администратором и приглашать пользователей для просмотра дизайна. Такой связки хватает для небольших команд или персонального пользования. Хотя за подобный сервис не стыдно заплатить.
​​Вчера забрал свой Raspberry PI с почты для баловства с #things. Приятно, что получил всё очень быстро, а в комплекте положили безделушку и благодарственное письмо.

Давно, кстати, читал про то, что клиенту нужно давать чуть-чуть больше, чем он ожидает. Тогда сильно повышается его лояльность к поставщику и впечатление от покупки.

Я раньше не работал с Raspberry PI, и не думал, что он такой миниатюрный. Ну что же, посмотрим, что получится.

Кстати, если кто-то работал с Android Things, то пишите. Интересно, что у вас получилось.
Недавно я спрашивал у вас про то, что вы хотите видеть на канале. Одной из категорий, которую хотелось видеть большинству была поэтапная разработка приложения. Я вам это обещал, и вот теперь опишу #эксперимент.

Я хочу попробовать научить Android-разработке человека. Обучение будет выстроено на следующих правилах:
• задание. Достаточно сложное для человека, который не писал на Android, но выполнимое и заставляющее искать решение.
• дедлайн. Все задания необходимо выполнять в определенный срок, выйдет непонятно что. Нужна дисциплина.
• поддержка. В случае непонимания или безуспешных попыток поиска решения, я помогаю, подсказываю и показываю, как сделать правильнее.

Писать мы будем проект, который захотел ученик. Критерий завершения — выложить его в Google Play или же довести до соответствия ТЗ.

Среди нас есть дизайнеры. Если вы дизайнер и хотите поучаствовать в проекте, то пишите. Моя теория о том, что программист не может нарисовать хороший дизайн, чаще всего оказывается верной. А тут ещё два программиста...

Для вас, моих читателей это будет также полезно:
• придаст уверенности тем, кто хочет научиться разрабатывать. Я верю в то, что важно желание, и всему можно научиться.
• буду подробно описывать проект от самого начала. Пропущу только установку среды разработки. Опишу полезные сервисы, приемы и библиотеки, которые будут использоваться. И все это сразу увидете на практике.
• если вы увидете, что я что-то делаю не так, то всегда пишите. Я не идеален и могу ошибаться. Но признаю ошибки и люблю учиться.

Вскоре я опишу нашего кандидата и напишу ТЗ проекта.😉
​​Выходной, воскресенье, самое время получить новый топ статей из Medium.
#статьи #medium

1) Базовое шифрование в Android. Что стоит делать, а что нет. (3 минуты)
Автор делится полезными вещами о шифровании Android-приложений. Показывает на противопоставлениях, что нужно делать для безопасности приложения, а каких вещей избежать. 

2) Разрешение конфликтов build.gradle. (4 минуты)
На практике несколько раз было так, что после добавления новой библиотеки в build.gradle не получается собрать проект. Одной из причин, почему так происходит — наличие пересекающихся зависимостей в новой и в одной из старых библиотек. Чаще это еще и разные версии, что может привести к нестабильной работе. Сама среда разработки подсказывает это. 
В статье автор дает способы лечения этой проблемы.

3) 10 советов для построения идеального продукта. (7 минут)
Порой мне нравится читать топы. Там часто даются вещи, о которых ты вроде знаешь, но статья снова тебе о них напоминает. Автор говорит о вещах, которые нужны для построения лучшего продукта. Это очень не просто, но к этому нужно постоянно стремиться.
Друзья, давно уже у нас не было свежего #интервью. Сегодня разговор с Николаем Ясинским — основатель проекта для разработчиков SHIFU, руководитель бизнеса в сфере IT и, конечно же, разработчик.

Надо ли идти разработчику свой бизнес? Стоит ли ограничивать разработчика? И можно ли стать разработчиком в 50 лет? Ответы на эти и другие вопросы в интервью.
Кандидат
#эксперимент

Итак, опишу человека, который желает обучиться Android-разработке.

Евгений. Не имеет опыта в разработке Android-приложений, но имеет достаточно большой опыт программирования на php. Есть опыт создания серверных приложений и работы с БД: mysql, sqlite, mssql.

Работает разработчиком и интересуется технологиями.

На мой взгляд, Евгений — отличный вариант для первого ученика:
• не нужно обучать базе программирования и ООП;
• есть понимание работы с базами данных;
• может самостоятельно создать и настроить сервер (а у нас будет обязательно клиент-серверное приложение);

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

Кстати, перед тем, как начать изучение мобильной разработке рекомендую изучить ООП. Без понимания его принципов невозможно писать качественный код и серьезные приложения.

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

Эксперимент начался, завтра напишу ТЗ для нашего проекта.
​​Introspect
#приложение

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

Нашел шикарное приложение, которое полностью решает проблему информации об устройстве. Как заверяет описание, при помощи приложения найдете всю информацию об устройстве.

Список и правда впечатляет. Информация разбита по разделам, среди которых: система, батарея, камера, дисплей, сеть, сенсоры. Есть не только базовая информация, например размер дисплея в дюймах, но и продвинутая: user-agent в webview или версия OpenGL.

Крайне рекомендую данное приложение. Уверен, что открыть приложение и узнать все об устройстве быстрее, чем искать устройство по куче форумов.
​​Надо ли наказывать людей в IT-сфере?
#думы #вопрос

В мире IT часто бывает так, человеку, недавно писавшему код, доверяют управление людьми. Тут начинается проблема: как себя вести с людьми? Как правильно наказывать и поощрять? Что делать для создания хороших условий труда?

Есть пара вещей, о которых стоит помнить при наказании:
1) Материальные наказания не эффективны. Если руководитель собирает по 100 рублей за опоздание на 5 минут, то человек купит абонемент на месяц, при этом наплюёт на авторитет начальника.

2) Если человек наказал сам себя, то не нужно его ещё как-то добивать. Наказания, которые идут от человека приносят гораздо бо́льший эффект.

3) Нельзя наказывать человека за те правила, которые до него не были доведены.

4) Наказывать нужно наедине, а поощрять прилюдно. Можно перегнуть с наказанием и обидеть человека, который будет ненавидеть текущее место работы и начальника. Плюс это унижает его в глазах коллег.

5) Не надо читать мораль. В такие моменты единственная мысль у человека: «Да когда ж этот гад-начальник уже заткнется».

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

Подробнее в статье. Там, кстати, шикарная инфографика.

Расскажите, с какими способами наказания сталкивались вы? Надо ли наказывать людей? Вдруг у вас в памяти странные или неадекватные способы наказания. Расскажите, самые интересные опубликую на канале.
Наша рубрика «Интервью с разработчиком» продолжается. Следующий респондент — Йонатан Левин.

У Йонатана звание Google Developer Expert, он сооснователь и технический директор компании KolGene, основатель Android Academy, автор многих статей по разработке.

Как всегда, вы можете задать ваши вопросы.
Смотрел видео про Raspberry PI. Стало интересно, а что вообще делают люди на этой платформе?

Оказалось, что есть много интересных проектов. Нашел пару видео об этом.

Первое больше похоже на 5 стартапов на Raspberry PI, но посмотреть было интересно. Порадовала платформа для создания роботов.

А тут видео про интересные проекты на Arduino и целый канал про разработку на нем. Дико понравилась копилка, которая сама считает монетки. Правда не уверен, что мне нужна такая штука в быту.

В общем, пока в поиске идеи для #things. Ведь хочется создать то, что можно хоть как-то применить в жизни.
​​Нужна ли безопасность в приложении?
#разработка #статьи

Когда только начинаешь программировать, то от приложения только одно требование: работоспособность.
Со временем начинаешь задумываться об архитектуре, паттернах программирования, качестве кода. Ну и о том, что пора бы не изобретать велосипеды, а использовать готовые решения.

Но даже достаточно опытные разработчики не задумываются о безопасности своих приложений. Думаю, что не составит труда найти в Google Play не обфусцированный код в приложениях, а также важные данные в открытом виде.

Чаще всего такая ситуация возникает из-за недостатка времени на разработку. Бизнес требует фич. А о безопасности вспоминают тогда, когда это угрожает бизнесу. К сожалению, не все заказчики понимают, что это приводит к снижению качества приложения.

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

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

Попался также интересный курс, у которого оценка 4.8 и одни положительные отзывы — Cryptography I на Coursera. Думаю, что тоже будет полезен для тех, кто интересуется безопасностью.
​​Используемые библиотеки
#эксперимент

Хочу описать то, что мы используем в нашем эксперименте:
Kotlin — ранее уже писал о том, что сейчас не вижу смысла начинать новые проекты не на Kotlin. Не так давно добавлена официальная поддержка Google, синтаксический сахар, меньшее количество кода и популярность делают этот язык привлекательнее, чем Java в Android;

Clean Architecture — если выбирать сейчас между Architecture Components от Google и Clean, то я выбираю второе. В ней решено большинство типовых вопросов, есть крутое русскоязычное сообщество и отличный кукбук. Кроме того, написано много крупных проектов. Architecture Components тоже хорош, но все же это пока достаточно молодой компонент и не стал бы его использовать в коммерческих проектах, а только для проб в небольших проектах;

RxJava 2 — мощная библиотека, ставшая неотъемлемой частью мира Android. Мы будем использовать её для запросов к серверу, обработки данных и управления многопоточностью;

Retrofit — использование в запросах к серверу;

Glide — для загрузки изображений с интернета. В качестве альтернативы можно использовать Picasso;

Room — для внутренней базы данных. Пока не добавляли эту зависимость, но для базы данных лучше использовать её. На мой взгляд, это сейчас наиболее удобная из БД;

Firebase — мы будем использовать этот сервис для пуш-уведомлений и альтернативы серверной части. Это тоже для меня будет эксперимент, я раньше использовал пуш-уведомления

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

Первое задание — это подключить все зависимости. В следующем посте, я расскажу об этом, опишу, как сделать это правильнее и удобнее для использования.
Классно, когда подход к поиску сотрудников творческий.

Попался тест от АльфаБанк для программистов. Тест состоит из 10 задач по Java, iOS, Android или JavaScript на выбор. Как обещают, лучшим предложат работу в «Альфа-Банке».

Ссылка на тест.

На сколько вопросов ответили?
⚪️ — 8-10;
⚫️ — 5-7;
🔴 — 3-4;
🔵 — меньше 3.