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
Друзья, сегодня последний день 2018 года.

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

Желаю вам интересных проектов, карьерного роста, поменьше легаси-кода… ну и помнить о том, что в жизни есть не только монитор со средой разработки😉.

С Новым, 2019 годом!
👍1
​​Деньги для разработчика
#мысли #комментарии

Спрашивали ли вы себя, для чего работаете? Почему интересовались IT и выбрали эту сферу в качестве ремесла? 

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

Надеюсь, что главный мотиватор писать код для большинства — это любовь к программированию. Иногда спрашиваю себя: занимался бы программированием, если бы у меня было необходимое количество денег? И да, уверен, что занимался бы. Мне нравится сам процесс написания кода и создания нового.

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

И отсюда первый пункт. Деньги — это показатель роста. На мой взгляд, этот пункт больше психологический. К сожалению (или к счастью) нельзя точно определить границу между опытом и зарплатой, которую ты получаешь. Многое зависит от навыка «продажи себя» работодателю, компании и проекта. Однако, если ты видишь, что зарплата растет, то понимаешь, что становишься лучше.

Второй пункт: деньги — это показатель ответственности. С ростом зарплаты чаще всего растет и зона ответственности. Сначала ты junior-разработчик и не отвечаешь за проект. Через некоторое время получаешь опыт, больше отвечаешь за проект, а также видишь прибавку к зарплате. Ответственность также мотиватор работы. Однако помните: чаще работодатель сам не проявляет инициативу повышения ЗП. Проявляйте инициативу сами: спросите, что вам нужно делать, чтобы получать больше. Не шантажируйте и не давите на работодателя. Порой после подобного вопроса, начальство вспоминает, что вы ответственный и важный сотрудник, и вас нужно мотивировать большей суммой, чем вам платят сейчас. Больше информации о повышении ЗП стоит почитать тут.

В третьих, деньги — это ресурс. Тут все просто. Чем больше денег, тем больше тебе доступно. На мой взгляд, зарплата разработчика позволяет закрыть все базовые потребности: еда, жилье, одежда, здоровье. Когда ты не задумываешься об этих вещах, то появляется возможность развиваться и расти в какой-то другой сфере, больше узнавать мир и становиться лучше. Это возможно благодаря деньгами.

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

А как вы считаете, чем является зарплата для разработчика?
Делитесь мнением в комментариях.
👍1
​​1-1
#разработка #опрос #комментарии 

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

Вторая причина — это отсутствие роста. Человек упирается в потолок на текущем месте, нет задач-вызовов и сложных проектов. От этого становится скучно и он уходит.

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

Помочь предотвратить последнюю причину может практика 1-1.

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

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

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

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

Оставляйте свое мнение об этой технике в комментариях. 
А есть ли у вас в компании 1-1? 
👍1
Android Quiz
#статьи #опрос

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

На глаза попалась небольшая статья-опрос, где предлагается ответить на 13 вопросов. Все вопросы связаны с Android и Kotlin. Интересный квиз, и я спешу поделиться им с вами. Займет это буквально 5 минут времени. Но уверен, что вы сможете узнать оттуда что-то новое для себя.

Сколько баллов удалось набрать?
👍1
​​MotionLayout
#разработка

На прошедшем в 2018 году Google IO был представлен MotionLayout. Это новый класс, который помогает разработчикам управлять анимацией жестов. Является наследником ConstraintLayout, при этом переопределяя некоторые из его свойств.

Этот тип layout стоит использовать, когда у вас есть элементы с которыми взаимодействует пользователь, и им нужно добавить красивую анимацию. Происходит это следующим образом: создается исходная и конечная (если необходимо, то несколько промежуточных) схемы. Далее запускается переход и анимируются свойства, которые различны в первой и последующей схеме.

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

На самом деле, с нетерпением жду появления инструмента для предпросмотра анимаций, который описывался на докладе Google IO.

Кстати, тут можно найти вводную информацию про layout и доклад на Google IO, а тут репозиторий с примерами.
👎1
Layer-list и drawable
#разработка #статьи

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

Начинающие разработчики дейстуют так: делают LinearLayout, где располагают эти элементы с необходимой gravity. Однако опытные обращают внимание на сообщение от AndroidStudio: лучше сделать TextView и указать ему drawable в нужной позиции. Но как лучше сделать этот drawable?

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

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

Прочитать эксперимент можно тут, а здесь ссылка на приложение.
👍1
Друзья ежегодно устраивают опрос о рынке мобильной разработки в России.

Скоро будет отчет, предлагаю и вам принять участие в опросе.👇
👍1
Forwarded from Android Good Reads
Запускаю ежегодный опрос известности команд мобильной разработки 🔥🔥🔥

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

Вариантов выбора в этом году стало чуть больше, добавилось еще несколько вопросов – но не пугайтесь, прохождение не займет больше нескольких минут. Опрос анонимный, поэтому можете смело писать всю правду. И главное – делитесь опросом со своими коллегами и друзьями. Чем шире будет выборка, тем больше интересного получится узнать!

Опрос: http://bit.ly/2RoSPjA
Прошлое исследование: http://bit.ly/2Uld2bO
👍1
Что происходит при запуске Activity?
#разработка #статьи 

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

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

Ссылка на статью тут.
👍1
​​Don't kill my app!
#разработка 

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

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

Но иногда изменения носят отрицательный характер, и хуже всего то, что эти их сложно заметить. Например, чтобы увеличить время работы телефона, производители добавляют некоторые режимы и приложения для экономии заряда. Они могут убивать ненужные, по их мнению, приложения из фона, отключать фоновые функции и т.д. Часто из-за подобных приложений smartphones превращаются в dumbphones, а страдают пользователи: приложения перестают работать так, как планировали разработчики. Ну и разработчки также не рады: сложно оптимизировать свои приложения под все «выходки» вендоров. 

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

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

В декабре 2018 года вышла релизная версия Flutter. И если до релиза к нему относились с настороженностью, то сейчас наблюдаю достаточно много активности вокруг этого фреимворка.

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

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

Как вы думаете, что станет с Flutter в будущем? Взлетит он или нет? Заменит нативную разработку? А может у вас уже есть опыт написания своих приложений на нем.

Пишите в комментариях или в личные сообщения.

Ну и небольшой опрос: что будет с Flutter?
👍1
Как увеличить скорость работы Android Studio?
#разработка

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

И вроде компьютеры становятся мощнее, а оптимизация операционной системы и Android Studio лучше, но при этом все равно скорость не увеличивается.

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

Еще одна рекомендация — отключение ненужных плагинов. Для этого нужно открыть File -> Settings -> Plugins и отключить в списке ненужные плагины.

Например, можно попробовать отключить следующие: Android APK Support, Android Games, Android NDK, App Links Assistant, Copyright, Coverage, CVS Integeration, Editor Config, Fabric for Android Studio, Firebase (App Indexing, Services, Testing), Github, Google (Cloud Tools Core, Cloud Tools for Android, Developer Samples, Login, Services), Markdown Support, Mercurial, integration, hg4idea, Settings repository, Subversion integration, Task management, Test recorder, TestNG-J, YAML
👍1
Недавно я публиковал на канале ссылку на ежегодный опрос известности команд мобильной разработки.

Сегодня публикую результаты опроса.

Приятно, что среди ответов на вопрос «Что слушаете и читаете?» в разделе Android присутствует и мой канал. Большое вам спасибо! 🥳
👍1
Git bisect
#разработка

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

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

И тут на помощь мне пришел инструмент, который я не использовал раньше. Называется он git bisect. Я нашел проблемный коммит за 4 шага и примерно 20 минут.

Чтобы его использовать необходимо:
1) Открыть консоль git и перейти в папку проекта.
2) Ввести git checkout <commit hash>, где вместо скобок записать коммит, в котором проявилась проблема.
3) Начать процесс поиска при помощи команды git bisect start.
4) Пометить этот коммит плохим при помощи команды git bisect bad.
5) Пометить коммит, где точно нет проблемы при помощи команды git bisect good <commit hash>.
6) Далее повторяете процесс. Каждый раз git будет переключать в нужный коммит между предыдущим хорошим и плохим коммитом при помощи бинарного поиска. Собираете проект и проверяете, проявляется ли проблема. Если да, то вводите git bisect bad, если же нет, то git bisect good.
7) После завершения поиска вводите git bisect reset, чтобы вернуть репозиторий в начальное состояние.

У вас получится найти проблемный коммит за log n шагов, где n — число коммитов между первыми помеченными коммитами.
👍1
Иногда на моем канале появляются анонсы интересных для разработчиков мероприятий. Недавно ко мне обратились с просьбой рассказать о предстоящем хакатоне, PhotoHack: Visual Messaging.

Задача - разработать креативное решение для визуализации текста, которое будет использовано в клавиатуре для мессенджеров.

Он будет 16-17 марта 2019 года в ВДНХ, павильон № 461 “Умный город”. Призовой фонд 500 000 рублей.

Участие бесплатное. Надо просто зарегистрироваться на сайте.

Прием заявок до 13 марта.

Сайт мероприятия: http://bit.ly/2IR2q3B
👍1
​​Еще немного про анимации
#разработка #статьи

Для многих разработчиков написание анимаций — это отдельная и непростая задача.

Мне нравится, что сейчас создание анимаций становится более простой задачей.

Если хочешь красивые статические анимации — можешь использовать Lottie. Если хочешь красивые переходы между View, в то время как пользователь взаимодействует с приложением, то есть новый MotionLayout, о котором я недавно писал.

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

Вчера наткнулся на статью об этих анимациях, где автор рассказывает о специальной библиотеке, которая помогает работать с ними. Рекомендую ознакомиться со статьей и применять эти анимации в своих приложениях. Не стоит тащить в свой проект всю библиотеку ради одной анимации, но у вас всегда есть возможность посмотреть в исходный код.
👍1
​​Давно у нас не было топа статей из Medium
#статьи #medium

1) Using Dagger in a multi-module project — (8 минут)
Использование многомодульных приложений сегодня является не только хорошей, но и необходимой практикой, особенно в больших приложениях. Одним из самых сложных этапов является использование dependency injection. В статье автор делится опытом использования Dagger в многомодульных приложениях. Особенно полезно, если вы на пути перехода вашего монолита на многомодульность.

2) Android Instant Apps 101: what they are and how they work — (6 минут)
Небольшая статья про Android Instant Apps: это часть приложения, которая доступна пользователю без установки самого приложения на телефон. Я не часто вижу их при установке приложений из Google Play, но, возможно, он подходит для конкретно вашего случая.

3) My Most Used Android Studio Shortcuts — (7 минут)
Полезная статья-справка о горячих клавишах в Android Studio. Думаю, что каждый найдет себе несколько полезных сочетаний клавиш, которые в перспективе ускорят разработку.
👍1
​​Surf Android Standard
#разработка

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

И если статьи появляются часто, то репозитории с best practices достаточно редки, особенно от крупных компаний. Сегодня я бы хотел коснуться одного из таких репозиториев.

Тут достаточно подробно собрана база знаний студии разработки Surf. Здорово, что помимо закрытого использования, этими знаниями может пользоваться любой разработчик. Найдется многое: работа с аналитикой, с кэшем, архитектура, views, списками, rx… Ну и отдельно — пункт про стандарты кода и качества. Вроде все это знают, но порой не все соблюдают.

Уверен, найдется то, что захочется перенести в свой проект. Кстати, если есть какие-то вопросы по репозиторию, то их всегда можно задать в чате.
👍1
​​Digital nomads
#статьи #комментарии

На неделе прочитал интересную статью про людей, которые называют себя Digital nomads. Я не знал, что есть такой термин: так называют себя люди, которые совмещают постоянную работу и путешествия.

Кто-то за удаленку, кто-то против. Сегодня это распространенная практика не только среди программистов, но и среди дизайнеров, редакторов, сотрудников call-центров. Например, для меня удаленная работа — отличный способ планировать свое время и путешествовать.

Но работать в путешествии не всегда просто. Даже если мы говорим про то, что у удаленно работающего сотрудника все хорошо с самодисциплиной, то есть факторы, которые не зависят от человека: скорость Интернета, погода, рабочее место, часовые пояса. Эти вещи крайне важны, и о них задумываешься больше вдали от своего дома и рабочего места. Например, судя по статье, у автора есть проблема с Интернетом в Риме, потому что очень сложно найти хороший Wi-Fi в общественном месте.

Свои ответы про удаленку я публиковал в этом посте.

Интересно, а среди читателей есть люди, которые постоянно живут в путешествии и работают? С какими проблемами вы сталкиваетесь?

Также, если хотите обсудить удаленную работу и путешествия, то добро пожаловать в комментарии.
👍1
​​Android Gradle и невидимые зависимости
#разработка #статьи

Каждый Android-разработчик сталкивается с gradle в самом начале своей карьеры: например, необходимость добавить зависимость в проект.
Позже это знакомство продолжается. Например, необходимость добавить параметры для сборки или прописать ключи для релизных версий.

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

Тогда на помощь пришла команда gradlew app:dependencies, которая показывает дерево всех зависимостей в проекте. Понять формат этого дерева и найти «невидимую» зависимость помогла эта статья.
👍1
​​Как бы вы начали новый проект?
#комментарии

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

Например, сейчас существуют Android Architecture Components, где есть компоненты для организации приложения. Хотя раньше разработчики придумывали свои подходы для организации архитектуры, которые вполне хорошо работают и сегодня. В других областях такое же многообразие: есть альтернативы DI, писать через Conductor или Fragments, какую БД выбрать…

Хочется узнать: если бы сейчас вы начинали проект, то какую архитектуру, технологии и библиотеки использовали бы?

Уже пару месяцев думаю про новый проект и очень интересно ваше мнение.
👍1