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
Channel created
Здравствуйте!

Разрабатываю мобильные приложения для Android. Через меня проходит большое количество новостей из мира технологий, которым хочется делиться и высказывать мнение.
Канал будет интересен тем, кто работает в области IT и мобильных технологий, а также интересуется ей.
Подписывайся, будет интересно.
Channel photo removed
Channel photo removed
Как найти работу новичку?
#собеседование

Что нужно для работодателя? Важен ли диплом? Где найти работу? Что спрашивают на собеседовании? Попробую ответить на эти и другие вопросы.

Подобные вопросы часто возникают у человека после окончания вуза или если он решает сменить деятельность на сферу разработки ПО. Хочу поделиться опытом и мнением.
http://telegra.ph/Kak-najti-rabotu-novichku-11-16
Каждую неделю я буду публиковать топ статей, которые меня заинтересовали. Начну эту традицию с сегодняшней подборки:
#статьи #medium

1) Создание анимации кнопки "лайк", похожей на Instagram, используя StateListAnimators. -(5 минут)
В большинстве приложений, эта кнопка просто меняет состояние. Статья поможет вам выделиться на фоне этих приложений и добавит чуть больше анимаций в проект.
https://android.jlelse.eu/using-statelistanimators-to-create-instagram-like-animation-db2676c9391

2) Красивые анимации, созданные при помощи ConstraintLayout. - (6 минут)
Статья расскажет о использовании TransitionManager для достаточно красивых и простых анимаций
https://robinhood.engineering/beautiful-animations-using-android-constraintlayout-eee5b72ecae3

3) Стресс-тестирование своего приложения. - (6 минут)
Говорится о том, что необходимо проверять при тестировании приложения. Хороший чек-лист, рекомендую делать его как минимум перед каждым релизом
https://medium.com/default-to-open/stress-testing-android-apps-601311ebf590
Хочу рассказать о полезной вещи как паттерны. Паттерн — это шаблон, который помогает правильно организовать код и который известен другим разработчикам, что не вносит неопределенности при работе в команде. Паттерны, как и архитектура, организуют код, делают его понятным. Только важно помнить, что все хорошо в меру и не стоит применять их «для галочки».

Первый, и самый простой #паттерн — это паттерн Builder. Наиболее известный пример — StringBuilder. Реже используются FloatBuffer, IntBuffer. Идея состоит в том, что для создания какого-то объекта, имеющего много свойств не создается отдельный конструктор, а вместо этого делается цепочка из методов, каждый из который возвращает объект с примененным в этом методе свойством.

Пример: представьте себе программу, которая создает для вас игроков для стратегии. Каждый игрок имеет определенные свойства: пол, вес, возраст, цвет волос, национальность. Вместо описания всех этих свойств сразу, мы можем задавать параметры шаг за шагом, до тех пор, пока не создадим персонажа. По такой же схеме работает и Builder.
Топ статей с Medium по Android-разработке за неделю.
#статьи #medium

1) Описание многопоточности в RxJava 2. — (12 минут)
Эта библиотека для многих, (в том числе и для меня) незаменимым инструментом для работы с сервером, API, доступом к БД. Автор очень подробно описывает операторы для многопоточности в RxJava, разницу между thread pool, которые в ней используются.
https://blog.gojekengineering.com/multi-threading-like-a-boss-in-android-with-rxjava-2-b8b7cf6eb5e2

2) Knowledge boost for junior Android developers. — (6 + 6 минут)
Список компонентов, инструментов, приемов и библиотек, который полезно знать и учитывать всем разработчикам. Некоторые моменты статьи спорные и требуют изучения. Но хорошо, когда прочитанная статья заставляет изучить какую-то тему. Читайте, устраняйте свои пробелы.
https://android.jlelse.eu/knowledge-boost-for-junior-android-developers-part-i-b3250fe4b622
https://android.jlelse.eu/knowledge-boost-for-junior-android-developers-part-ii-e62ae5154160

3) Побитовые операторы. — (3 минуты)
Хорошо, с графиками и наглядно автор описывает применение побитовых операторов в разработке. Рекомендую изучить, особенно если ваши знания по этой теме давно не обновлялись.
https://android.jlelse.eu/java-when-to-use-n-8-0xff-and-when-to-use-byte-n-8-2efd82ae7dd7
Уже несколько раз за время своей практики разработчика, встречаю один неприятный момент — RTL-языки (right-to-left, те языки, который пишутся справа-налево). Если пишите приложение для большого количества пользователей из разных стран - попробуйте поменять язык телефона на фарси и посмотрите, не появились ли аномалии в верстке.

Из опыта скажу, какие баги встречал:
1) LinearLayout. Один из самых распространенных элементов для верстки по умолчанию работает не очень хорошо с фарси. Если не выставлять нужные gravity у него верно, то получите кашу в своем. У RelativeLayout тоже есть проблемы, но опять же смотрите на gravity, layout_toLeftOf и подобные. С новомодным ConstraintLayout в этом плане проблем меньше,
2) Строки. Одной из задач, которую я делал — был показ счета команд. Выяснилось, что приходящие строки приходили верно, но по причине того, что строка была из цифр, латинских букв и фарси — она начала отображаться неверно, что было критично.
3) Календарь. Форматтер в фарси присылал день на один меньше, чем на самом деле. Проблема решилась тем, чтобы выводить дату в английской локали.

Иными словами — обязательно смотрите, как выглядит ваше приложение в RTL-локалях.
Частым форматом для обмена между сервером и клиентом является JSON. Обычно, разработчики пользуются библиотеками для парсинга, например Gson. Для того, чтобы использовать её, необходимо сгенерировать POJO-файл с указанием необходимых полей для сереализации.

Для их генерации можно использовать сайты-генераторы (http://www.jsonschema2pojo.org/), которые на выходе дают текст этого файла. Данный сайт достаточно неплохое решение, но не так давно я обнаружил средство, которое ускоряет создание подобных файлов.

Это средство — RoboPOJOGenerator. Оно представляет из себя #плагин для Android Studio, которые позволяет в несколько кликов получить POJO-файл, включенный в проект и полностью готовый для использования. Это избавляет от необходимости ручного создания файлов. Также, генератор полностью совместим с Kotlin, поддерживает несколько популярных библиотек для парсинга.

Оптимизация подобных процессов ускоряет рабочий процесс и избавляет от рутинных действий.
Хотел бы рассказать о нескольких удобных приёмах взаимодействия с приложением после поворота экрана. Чаще всего начинающие разработчики пользуются встроенными средствами — методы onSaveInstanceState и onRestoreInstanceState. При этом приходится писать достаточно много шаблонного кода. Описанные #библиотеки позволят уменьшить написание подобного кода и улучшить его читаемость.

1) Moxy. Отлично применима для MVP-паттерна, сохраняет состояние View в выделенную область — ViewState. Сохраняет свое состояние после пересоздания Activity и заметно облегчает работу.
2) Icepick. Позволяет сохранить состояние полей. Достаточно одной аннотации и поле не удалится после поворотов экрана.
​​В конце каждого года, Google и Apple публикуют рейтинг лучших приложений из официальных магазинов. Интересно наблюдать за теми трендами, которые присутствуют у пользователей смартфонов.

Любопытно, что несмотря на все попытки запретить Telegram, он стал одним из наиболее скачиваемых приложений и трендов года.
Google Play: https://play.google.com/store/apps/editorial_collection/promotion_topic_3002d08_apps_TP_bestof2017

Apple Store: https://developer.apple.com/app-store/best-of-2017/trends-of-the-year/
Как оценить разработку проекта?
#планирование #книги

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

В идеальном мире разработка проекта протекает примерно так:
• есть детализированное ТЗ, где четко описаны требования к проекту;
• тимлид четко понимает все особенности проекта;
• тимлид уверен в том, насколько хорошо сотрудники квалифицированы;
• сотрудники не заболевают, не пропускают рабочик дни, всегда одинаково работают, с постоянной скоростью. 

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

Для того, чтобы понять, как правильно планировать разработку и ежедневные дела, рекомендую к прочтению книгу Максима Дорофеева «Джедайские техники». Автор долгое время работал в сфере IT, и его советы очень хорошо подходят разработчикам. По ссылке вы увидете рекомендации автора по планированию спринтов, используя Agile методологию. Уверен, что описываемые вещи очень помогут менеджерам, тимлидам, фрилансерам в верной оценке проекта. 
http://mnogosdelal.ru/slidecasts/project-estimation/
​​К вопросу о необходимости SSD.
👍1
«Пластилиновая» архитектура
#статьи #архитектура

Прочитал статью, в которой автор рассуждал о качестве кода, и как его получить в команде. В ней он упомянул понятие «пластилиновой» архитектуры. 

«Пластилиновая» архитектура — структура приложения, в которой каждая новая фича куском приклеивается к текущему функционалу по принципу «лишь бы работало». Взамен получаем:
• сложно поддающийся тестированию продукт;
• всплывающие баги в уже готовом функционале;
• тяжелое внедрение новых фич;
• постоянный стресс команды и срыв сроков разработки.

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