Android Broadcast
14.2K subscribers
3.51K photos
339 videos
11 files
5.88K links
Подборка новостей и статей для Android разработчиков.

Связь с автором @android_broadcast_bot
Реклама @android_broadcast_bot

РКН https://abdev.by/rkn_tg_ab
Download Telegram
#ContraintLayout #IDEA

Learning ConstraintLayout — Live Templates for Rescue

ConstraintLayout на текущий момент самое гибкое решение для разработки UI под различные экраны. Также для него был сделан довольно мощный визуальный редактор интерфейса. Но есть много староверов (включая и меня 😀), кто пишет весь UI по хардкору в XML.

В статье рассматривается подход как упростить написание UI c ConstraintLayout с помощью Live Templates из IDEA
#Security

Storing data securely on Android - KeyStore Asymmetric

Продолжение серии статей (3яя часть) о хранении данных безопасно. В новой части разбираются асимметричные ключи для шифрования данных, с которыми придется иметь дело до Android 6.0, так более Android KeyStore не поддерживает симметричные ключи на более старых версиях 😞
#Security OAuth #CustomTab #Chrome

Performing OAuth on Android with Custom Tabs

OAuth 2.0 на текущий момент самое популярное решение для осуществления авторизации в приложение. В статье рассматриваются преимущества использования Chrome Custom Tab для авторизации и как это реализуется.
#BottomNavigation #Navigation

Announcing Bottom Navigator

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

Google все еще работает над фичей поддержки множества стеков в Jetpack Navigation, поэтому эта библиотека из Architecture Components не решит вашей проблемы. Подробности здесь.

Это не устроило ребят из Pandora и они реализовали свой собственный Bottom Navigation виджет, который удовлетворяет их точке (а вполне возможно и значительного количества людей) на работу этого виджета.
Android Broadcast
Как вы пишите UI под Android?
Что можно сказать о результатах? XML пока остается самым надежным способом и как бы Google ни старалсь, но Layout Editor так и не получил большую популярность как основого инструмента для разработки UI.

Очень интересно услышать мнение людей кто пишет UI в коде (частая причина это производительность и хотелось бы услышать насколько такое решение ее увеличивает) а также кто ответил "Другой вариант" и что вы используете (возможно вы вообще не пишите UI 😁).

Присоединяйтесь для обсуждения в @android_broadcast_discussions
#AndroidStudio #Performance

Speed up your Android Studio

Android Studio - программа с большим аппетитом. Разрабатывать под Android на компьютере без 16 гигов оперативки, четырехядерного процессора и SSD сейчас довольно затруднительно 😞.

В статье рассматриваются следующий оптимизации для ускорения работы Android Studio:
👉 Настройка шаринга Gradle демонов между системой и Android Studio
👉 Отключайте ненужные плагины
👉 Правильно настройте vmoptions. Android Studio 3.5 уже научилась предлагать некоторые рекомендации, но можно больше!

Как вы боретесь с прожорливостью Android Studio? Делитесь советами в @android_broadcast_discussions и попробуем сделать
Screenshot testing on Android

История команды как они от написания Unit тестов и instrumentation тестов на Espresso пошли дальше тестирование скриншотов. Цель тестирования скриншотов - проверить, что пользовательский ввод приводит к определённому выводу на экране. Автор статьи делится опытом таких видов тестов с использованием библиотеки Facebook Screenshot Testing for Android
#DependencyInjection #Dagger

Dagger2: @Component.Factory and @SubComponent.Factory

В Dagger 2.22 добавили возможность использовать фабрики @Component.Factory для создания Component, вместо Builder. Это позволяет вам передать все параметры при создании Dagger Component/Subcomponent в один единственный метод.
#GooglePlay

Expanding bug bounties on Google Play

Google расширяет программу по поиску уязвимостей и включает в нее все приложения с более 100 миллионов установок, даже если разработчик приложения не имеет, такой программы вы получите премию от Google.
#Firebase #RemoteConfig

Improving your startup times and error handling using the Remote Config V2 SDK

Обновили Firebase Remote Config V2 получило более быстрое время запуска со счет асинхронной инициализации 🚀 and улучшение коммуникации между клиентским SDK и бекэндом
#Git

Using Git Hooks to improve your development workflow

Случалось ли у вас так что вы написали прекрасный код, проверили его работу, а через пару минут ваш CI говорит, что проверка вашего коммита не прошла успешно. Забыли запустить проверки перед тем как отправить код на сервер, а то и вовсе этого не делаете?

Git Hooks - это то что ваш поможет автоматизировать различные команды, которые будут выполняться при различных операциях с Git. Как это сделать вы найдете в статье
#CameraX #AndroidX #Camera

Core Principles Behind CameraX Jetpack Library

CameraX - одна из главных новинок AndroidX из Google I/O. Она решает проблемы с особенностями работы с камерой на устройствах различных производителей, а также дает доступ к таким возможностям как HDR, ночной режим и прочие, которые ранее были недоступны.

В статье рассматриваются особенности библиотеки:
👉 Интеграция с Lifecycle
👉 Работа на основе сценариев (use-case-driven). Основные сценарии - это предпросмотр, анализ изображения и захват изображения.
👉 Graceful degradation
👉 Совместимость со всеми устройства на Android 5.0+ и поддерживающими Camera 2 API
👉 Поддержка расширений от производителей, для доступа к низкоуровневым API камеры

Библиотека активно развивается и получает улучшения API. Ждем хотя бы beta
#Firebase #SaaS #8base

5 Reasons Why Developers are Choosing 8base over Firebase

Сравнение 8base и Firebase в плане удобства и функционала который они представляют как Saas.

8base отличается работой на основе GraphQL API
#Widget #Calendar

CalendarView - хорошо кастомизируемый виджет календаря, основанный на RecyclerView.

Возможности библиотеки:
👉 Выбор одного значения или диапазона
👉 Режим недели или месяца
👉 Ограничение дат
👉 Кастомизация внешнего вида ячеек
👉 Кастомизация внешнего вида календаря
👉 Любой день в качестве первого дня недели
👉 Горизонтальный или вертикальный скролл
👉 Добавление headers/footers к любому месяцу
👉 Простой скролл к дате и месяцу
👉 Возможность использования любых кастомизаций RecyclerView

Библиотека работает на основе ThreeTenABP для возможности работы с Java 8 Date Time на старых версиях Android SDK
#ArchitectureComponents #LiveData

Unit-testing LiveData and other common observability problems

Важно помнить, что LiveData посылает обновления, только в том случае, когда у нее есть хотя бы один подписчик (observer). Это может привести к ошибкам в ваших тестах (успешно их прохождению или нет).

В статье рассматриваются ошибки и рекомендации по использованию LiveData в тестах:
👉 Используйте LiveData.getOrAwaitValue(timeout: Long) для получения результата из LiveData в unit тестах
👉 Используйте InstantTaskExecutorRule для предотвращения проблем с многопоточностью при работе с LiveData
👉 Частая ошибка - используйте один и тот же объект ViewModel, если он шарится между несколькими Fragment