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
​​Топ статей из Medium
#статьи #medium

1) Безопасность Android-приложения. — (10 минут)
Автор делится своими мыслями о безопасности приложения. Написано очень подробно, плюс к этому основан на собственном опыте разработки. Куча советов о том, как проверить безопасность своего приложения и как лучше его защитить.
https://medium.com/@yonatanvlevin/bang-bang-you-have-been-hacked-df82db3f2001

2) Как настроить структуру gradle? — (4 минуты)
Статья о том, как лучше организовать структуру gradle файлов.
https://medium.com/mobiwise-blog/let-me-tell-you-how-you-should-build-your-gradle-structure-f13e368e00a4

3) Дизайн адаптивных иконок. — (6 минут)
Рассказ о том, как создавать и применять адаптивные иконки приложений. Почерпнул для себя несколько полезных ресурсов, где можно быстро потестировать свои иконки.
https://medium.com/google-design/designing-adaptive-icons-515af294c783
60 fps повсюду
#библиотека

Каждый разработчик хочет, чтобы интерфейс его приложения выглядел максимально плавным.
Одним из показателей плавности интерфейса является показатель 60 fps.

Почему именно столько кадров хорошо, можно посмотреть тут. Как же понять, что в приложении действительно 60 fps, и нет сильных просадок?

Для меня отличным решением стала библиотека Tiny Dancer. Очень простая в установке библиотека, добавляет на экран числовую и цветовую метрику, которая показывает текущий fps. Кроме того удобна в тестировании и ее можно отключать в runtime, если в подсчете нет нужды.
​​Material Cue
#разработка #приложение

Уверен, каждый из Android-разработчиков знаком с Material Design. Для того, чтобы понять, следует экран отступам и размерам, которые прописаны в Material, есть отличное приложение — Material Cue.

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

Здорово, что приложение полностью бесплатное и очень легкое. Рекомендую для использования.
​​Где лучше работать?
#мысли #вопрос 

Не так давно обсуждали с коллегами вопрос работы. Где лучше работать: в большой или в маленькой компании?

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

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

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

В маленькой компании или стартапе, человек ощущает себя свободнее.
В самом начале карьеры, я работал в небольшой компании, где было 4 Android-разработчика. Сначала я верстал небольшие view, потом правил не критичные баги. Со временем, под контролем лида я получал значимые задачи, а вскоре было полное доверие. Мне кажется, что в огромной компании я бы не получил подобного роста, причем настолько быстро.

При этом, вероятность умереть у стартапа выше, чем у большой компании. Я работал в стартапе. Было очень интересно, команда и проект были отличные. Но вскоре начались финансовые проблемы...

А как вы считаете, где лучше работать программисту? Рассказывайте интересные или странные случаи ограничений, бюрократии или менеджерской работы, с которыми вы сталкивались, интересно узнать. Потом почитаем вместе тут.
Друзья, представляю вам следующее #интервью из нашей рубрики. Сегодня у нас на интервью Евгений Мацюк — тимлид Android-разработки в «Лаборатории Касперского».

Пообщались про архитектуру, поговорили про новые архитектурные компоненты от Google, о кроссплатформенной разработке и многом другом.
http://telegra.ph/Intervyu-s-razrabotchikom-Evgenij-Macyuk-Laboratoriya-Kasperskogo-01-10
​​Безопасность библиотек
#статьи

Вчера читал историю, в которой автор рассказал, как он легко воровал персональные данные пользователей. 

Он создал библиотеку, которая имела полезный функционал, но при этом отправляла данные с форм на сайте: пароли, номера карт, имена пользователей. При этом, зловред имел две особенности:
1) Не отправлял никаких данных между 7 утра и 7 вечера. Это значительно уменьшало шанс того, что отправку данных заметят. 
2) Если сайт запушен на локальном IP или домене, который содержал dev, test, qa, то не предпринималось никаких действий.

Отправку важных данных было очень сложно заметить.

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

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

А. Ну и совет: проверяйте звездочки на GitHub!
В одном из чатов по Android обсуждался вопрос про тесты для разработчиков. Порекомедовали интересный ресурс.

Залип на этом ресурсе, здорово проверяет теорию. Кроме Android, есть много тестов по другим языкам программирования. Прошли больше 3 уровней с первого раза?
​​Кайдзен. Стратегия от японцев
#разработка #планирование

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

Основа состоит из 5 элементов, иначе 5S:
1) Seiri — аккуратность, сортировка. Нужно, чтобы на вашем рабочем месте остались только те вещи, которые используете. Важно убрать и очистить его от всякого хлама.
Мне кажется, что при разработке проекта и рефакторинге важно удалять ненужный код, а не комментировать его, надеясь, что он пригодится. В таком случае лучше взять из репозитория.

2) Seiton — порядок. Те вещи, которые остались, важно располагать на своем месте. Нужно, чтобы было удобно.
В разработке, важно правильно струкрурировать проект, не складировать все в одном месте и дробить функционал по классам и пакетам.

3) Seiso — чистота, уборка. Нужно всегда держать рабочее место в чистоте, выделять время на уборку, а не ждать конкретного захламления.
В кодинге выделяйте время на рефакторинг, очищайте проект от deprecated методов, обновляйте библиотеки.

4) Seiketsu — стандартизирование. Если есть повторяющиеся действия, то опишите их и стандартизируйте. Не нужно тратить время на обдумывание того, что уже было решено.
Важно использовать готовые решения, если они подходят.

5) Shitsuke — дисциплина, поддержка. Если описанные принципы уже есть в вашей жизни, то важно их поддерживать. Важно постоянное совершенствование.
Для программиста, важно постоянное развитие и обучение.

Эти принципы достаточно очевидны и логичны. Важно помнить, что чистота рабочего места, кода или рабочего стола на компьютере помогают наслаждаться работой.
Посмотрел доклад Максима Лапшина про опыт создания собственного продукта программистом. До своего бизнеса, он был веб-разработчиком.
Интересно было узнать о проблемах, которые возникли у автора.

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

Ну и куча других инсайтов. А, ну и ещё мысль: «Софт делает что-то, а продукт — решает проблему человека»
​​Решил попробовать новое для себя, вдохновившись статьей про голосового помощника.

В статье описывается создание приложения для голосового помощника на основе Android Things. Автор использует NXP Pico i.MX7D, но я решил заказать более мощную поддерживаемую версию — Raspberry Pi 3. Зашел на любимый многими китайский ресурс и заказал его.

Теперь буду пробовать всякие интересные вещи, связанные с #things. А кто-нибудь делал что-то интересное с этой библиотекой?
Нашим следующим респондентом в рубрике «Интервью с разработчиком» будет Николай Ясинский.

Николай — опытный разработчик, бизнесмен и основатель образовательного проекта для программистов SHIFU. Опыт вовлечения вас в процесс интервью был хорошим, поэтому тут можете задать интересующий вас вопрос.
​​Яндекс.Заправки
#приложение

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

А недавно попалось мне приложение Яндекс.Заправки. Одним из способа выбора ниши в бизнесе является «боль». Предприниматель видит проблему, которая встречается в жизни, видит решение и предлагает его. Мне кажется, что это приложение как раз и решает хоть и небольшую, но проблему. Теперь можно не выходить с машины в мороз, чтобы оплатить топливо и не обязательно видеть недовольных теток на кассе. Да и вообще стоять в очереди, если спешите.

Приложение пока работает на небольшом количестве заправок. Но сама идея очень крутая, и если её развить, то получится очень удобный сервис. Тем более, что нет никаких комиссий. Тут можно почитать подробнее. Люблю продукты, которые решают проблемы.
​​Developer Assistant
#разработка #приложение

Попалось приложение для дебага, которым не терпится поделиться. Developer Assistant очень помогает в разработке и исследовании любых установленных приложений. По функционалу напоминает Chrome’s Developer Tools.

Что же умеет? Есть несколько вкладок. Дизайнеры, разработчики и тестировщики могут быстро проверить размер, стиль, свойства и положение View. Причем видны все идентификаторы элементов. Для переводчиков, доступен перевод конкретной строки в приложении. Работает шикарно.

Какие же недостатки? Если используете кастомную View, то приложение не покажет вам её класс в приложении. Это было бы удобно для отдела тестирования. Само приложение платное, хотя лицензия распространяется на Google-аккаунт, так что для офиса вполне можно купить. Первые 30 дней бесплатно, так что посмотреть кучу приложений сможете без труда.

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

Ужасно не терпелось рассказать про Assistant, хотя вчера уже делал разбор приложения. Интересно, а есть ли на iOS нечто подобное?
​​Код для марсохода
#разработка

Задумывались ли вы, что значит отказоустойчивое приложение? Для кого-то — 99.9% crash free в Crashlytics. Для других — полное покрытие тестами. Действительно, такие характеристики показывают, насколько хорошо работает приложение и как сильно разработчики задумались о различных сценариях поведения приложения.

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

А что если ошибка или краш софта приведет к потерям миллиардов долларов и нескольких лет подготовки? Недавно попалась лекция Джерарда Хольцмана из Лаборатории реактивного движения, который рассказал о стандартах программирования при разработке софта для марсохода Curiosity.

Например:
• 3,5 миллиона сверхнадежного кода на языке C;
• 10 строк кода в час в течении 5 лет;
• 40 разработчиков;
• обязательное тестирование всего кода;
• warning считается за ошибку;
• ежедневные сборки и анализ билдов на 5 анализаторах;
• штраф за сломанный билд;
• доска позора для разработчиков.

Наверное, такой продукт один из самых дорогих в мире. Интересно, сколько было бы приложений в Google Play, если бы такие подходы применялись к мобильной разработке?
​​Дизайн приложения
#разработка #статьи

Последние пару дней, читая статьи на Medium, попадаются авторы, которые рассказывают об опыте дизайна на Android.

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

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

Ну и напоследок: статья, рассказывающая о разработке дизайна приложения Google Primer. Автор делится опытом создания образовательного приложения, в котором пользователи могут быстро получать нужные знания, уделяя приложению минимум времени.
Интересная статистика: только 3% взрослых с США ежедневно тратят время на обучение чему-то новому.
Друзья! Я хочу провести небольшой опрос. Очень интересно, кто меня читает.
Пожалуйста, ответьте на вопросы. Это поможет мне дать вам наиболее интересную и полезную информацию.
- опрос не займет много времени, это очень быстро (буквально 10 секунд);
- анонимно: полученную информацию я хочу использовать исключительно в целях улучшения качества контента.

Пожалуйста, не игнорируйте мою просьбу!😉
Большое спасибо за ответы на вопросы. Мне очень приятно, что читаете меня и писать контент хочется ещё больше.

Теперь будет больше технических статей по Android-разработке. Как и ожидалось, на канале больше именно Android-разработчиков, причём новичков и опытных почти поровну. Я буду писать для обоих категорий.

Рад, что вам хочется слышать о поэтапной разработке проекта. У меня есть задумка сделать разработку проекта, для начала какого-нибудь простого и рассказать о каждом этапе при его разработке: начиная от создания проекта и подключения библиотек, заканчивая вылизыванием дизайна и публикаей его в Google Play Market. Мне кажется, что это будет больше интересно новичкам. Подумаю над идеей и в путь.

При этом и дальше будут обзоры инструментов, сервисов и ресурсов, которые помогают при разработке. Их много, какие-то распространены, о каких-то никто и не слышал. Буду их пробовать, изучать, находить и говорить своё мнение о них. Кстати, если вам интересно послушать, что я думаю по поводу того или иного инструмента, то пишите.

Ну и постараюсь писать почаще. Хотя и это не всегда получается из-за недостатка времени. Но я помню про вас и не перестану поставлять контент. До новых постов!😉
​​Сегодня выходной, поэтому очередной топ статей из Medium
#статьи #medium 

1) Android Tasks: раз и навсегда.— (6 минут)
Уверен, что каждый Android-разработчик гуглил: «single instance Activity». Нужно смотреть в сторону launchMode, но ведь их не так уж и мало, и не все сразу очевидны. В статье автор объясняет каждый из Android Tasks, причем очень доступно. Даже если вы и сходу знаете их, то все равно не мешает освежить знания.

2) Android Strings XML. Советы и приемы. — (4 минуты)
Интересная статья о строковых ресурсах в Android. Как лучше сделать строки с цифрами? Как отключить проверку правописания для конкретного языка в редакторе? Как сделать строку непереводимой? Прочитав статью, узнаете ответы на эти и еще некоторые вопросы.

3) Советы по Deeplinking в Android. — (5 минут)
Каждому создателю приложения очень хочется, чтобы его продуктом пользовались как можно чаще. Deeplinking помогает в этом. Это технология, благодаря которой можно переместиться в нужный раздел приложения, например, с сайта. Удобно и оставляет положительное мнение о приложении. Автор делится советами по этой технологии и рассказывает о проблемах, с которыми ему пришлось столкнуться.
Быстрый запуск приложения. Статические запросы.
#разработка #опыт

Я уже писал о том, что пользователю важно давать пользоваться приложением настолько быстро, насколько это возможно. Но реалии таковы, что у нас куча всего, что нужно сделать на старте:
• инициализация библиотек;
• получение статических данных;
• проверка пользователя;
• инициализация базы и прочее.

Не так давно в одном из проектов нужно было ускорить первоначальный запуск приложения.
Для начала спросите: все ли, что я делаю на старте нужно на старте?

В моём случае выяснилось, что идет получение статических данных с сервера. Выполняется параллельно 6 запросов, ожидается получение всех этих данных и идет запись в БД. После исследования, выяснилось, что данные не так часто меняются на сервере, и стоит получать все только один раз, а в дальнейшем дописывать изменения с определенной даты. Также, интересно, что для работы приложения постоянно нужны данные только из 4 запросов. Поэтому, дописав методы получения этих данных по timestamp получилась достаточно хорошая экономия по скорости и трафику.

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

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

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

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

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

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

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

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