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

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

РКН https://abdev.by/rkn_tg_ab
Download Telegram
#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
#Coroutines

Corbind

Помните RxBinding? Так вот её аналог, только построенный на Kotlin Coroutine-ах. Библиотека позволяет осуществлять биндинги к самым популярным виджетам из Android SDK и AndroidX

Corbind поддерживает Channel и Flow.