Size: a a a

Android Live 🤖

2017 October 07
Android Live 🤖
Здравствуйте!

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

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

Подобные вопросы часто возникают у человека после окончания вуза или если он решает сменить деятельность на сферу разработки ПО. Хочу поделиться опытом и мнением.
http://telegra.ph/Kak-najti-rabotu-novichku-11-16
источник
2017 November 25
Android Live 🤖
Каждую неделю я буду публиковать топ статей, которые меня заинтересовали. Начну эту традицию с сегодняшней подборки:
#статьи #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
источник
2017 November 27
Android Live 🤖
Что изучать в начале карьеры Android-разработчика? Делюсь полезными библитеками, с которых стоит начать карьеру.
#статьи #библиотеки #разработка

http://telegra.ph/CHto-izuchat-v-nachale-karery-Android-razrabotchika-11-27
источник
2017 December 02
Android Live 🤖
Хочу рассказать о полезной вещи как паттерны. Паттерн — это шаблон, который помогает правильно организовать код и который известен другим разработчикам, что не вносит неопределенности при работе в команде. Паттерны, как и архитектура, организуют код, делают его понятным. Только важно помнить, что все хорошо в меру и не стоит применять их «для галочки».

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

Пример: представьте себе программу, которая создает для вас игроков для стратегии. Каждый игрок имеет определенные свойства: пол, вес, возраст, цвет волос, национальность. Вместо описания всех этих свойств сразу, мы можем задавать параметры шаг за шагом, до тех пор, пока не создадим персонажа. По такой же схеме работает и Builder.
источник
2017 December 03
Android Live 🤖
Топ статей с 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
источник
2017 December 04
Android Live 🤖
Уже несколько раз за время своей практики разработчика, встречаю один неприятный момент — RTL-языки (right-to-left, те языки, который пишутся справа-налево). Если пишите приложение для большого количества пользователей из разных стран - попробуйте поменять язык телефона на фарси и посмотрите, не появились ли аномалии в верстке.

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

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

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

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

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

1) Moxy. Отлично применима для MVP-паттерна, сохраняет состояние View в выделенную область — ViewState. Сохраняет свое состояние после пересоздания Activity и заметно облегчает работу.
2) Icepick. Позволяет сохранить состояние полей. Достаточно одной аннотации и поле не удалится после поворотов экрана.
источник
2017 December 07
Android Live 🤖
​​В конце каждого года, 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/
источник
2017 December 09
Android Live 🤖
Как оценить разработку проекта?
#планирование #книги

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

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

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

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

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

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

Уверен, что при создании проекта очень важно проектирование. Опытным разработчикам нужно доносить до новичков правильные подходы к программированию, благодаря чему код проекта будет чистым и понятным.
источник
2017 December 12
Android Live 🤖
​​Библиотека Rx сильно упрощает разработку приложений.

Появилась задача: нужно сделать одновременно два запроса, и выбрать тот, который вернётся первым. При этом каждый из запросов теоретически может возвратить невалидные значения или вообще не ответить.

Через Rx получилось красивое решение в несколько строк — через оператор Observable.amb() идет запрос к источникам, обработка же ошибок идет через onErrorResumeNext.

Уже не представляю создание приложений для Android без Rx в связке с lambda. Очень не хочется возвращаться к тому «callback hell», что был раньше.
источник
2017 December 13
Android Live 🤖
​​Использование сплэш-скринов в приложении
#разработка

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

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

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

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

Итог: старайтесь избавиться от стартового экрана, но если это невозможно, то добавляйте его правильно.
источник
2017 December 14
Android Live 🤖
В последнее время мне очень нравится жанр интервью. Особенно интересны профессиональные интервью, в которых люди делятся опытом работы в каких-то больших проектах.

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

Не так давно слушал подкаст с командой Android-разработки приложения Badoo. Уверен, что каждый хоть немного, но слышал об этом приложении. Огромное количество пользователей, куча локалей и большая команда. Интересно было услышать то, как организуется работа с Git.

Интересен ли вам подобный формат? Хотелось бы видеть на канале интервью с опытными разработчиками, рассказывающими о своём опыте?
источник
2017 December 16
Android Live 🤖
Топ статей из Medium
#статьи #medium

1) Определение скорости Интернета в приложении. — (5 минут)
Часто в приложении есть необходимость определить, есть ли подключение к Интернет или нет. Автор рассказывает о определении скорости Интернета, причем описывает несколько способов. Можно использовать для статистики и логирования.
https://android.jlelse.eu/designing-android-apps-to-handle-slow-network-speed-dedc04119aac

2) Описание ViewModels и LiveData. — (8 минут)
Недавно Google представила собственный взгляд на архитектуру приложений. Автор описывает о некоторых частях из компонентов архитектуры.
https://medium.com/google-developers/viewmodels-and-livedata-patterns-antipatterns-21efaef74a54
источник
2017 December 17
Android Live 🤖
​​Знаете ли вы, что сейчас около 0,68% всех и около 8% топовых приложений, опубликованных в Google Play, используют Kotlin? Это такие приложения, как: Сбербанк, Twitter, Pinterest, Netflix.

Учитывая небольшой возраст этого языка и большое количество приложений в Google Play — это достаточно весомая цифра. Только некоторые преимущества:
• полная совместимость с Java;
• уход от NullPointerExceptions;
• интеграция в Android Studio;
• официальная поддержка Google;
• меньше кода;

Уверен, настанет день, когда все приложения будут написаны на Kotlin. И не вижу причин не писать новые приложения на нем.
источник
2017 December 19
Android Live 🤖
Планирование проектов в «попугаях»
#планирование

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

Этот метод оценки в «попугаях». Метод представляет собой несколько этапов. Для начала необходимо написать задачи на карточках. При этом, каждая задача записана на одной карточке. Далее, каждый член команды по очереди берет карточку. Игрок может:
1. Взять карточку из стопки и положить её в ряд относительно других карточек. Важно помнить, что слева располагаются легкие задачи, а справа тяжелые.
2. Поменять положение одной из карточек на столе, при этом обосновав свой выбор.
3. Пропустить ход.

Во время планирования важно общаться и объяснять, почему сделан тот или иной выбор.

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

Есть нюанс. Обычно, подобный метод оценки подходит для опытных команд, которые разрабатывали подобный фукнционал ранее. Иначе, достаточно сложно оценить, насколько задача сложна. Тем не менее, подобный способ очень сильно помогает оценить спринт, при этом он не привязан к конкретному разработчику.
источник
2017 December 21
Android Live 🤖
​​Баланс между работой и отдыхом.
#отдых

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

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

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

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

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

А как вы считаете, нужны ли «перекуры» на работе, и есть ли они в вашей практике?
источник