Android Broadcast – Telegram
Android Broadcast
14.4K subscribers
3.68K photos
367 videos
11 files
6.1K links
Подборка новостей и статей для Android разработчиков.

Реклама и связь с автором @ab_manager

РКН https://abdev.by/rkn_tg_ab #MQRZR
Download Telegram
#Jetpack

Обновление Android Jetpack от 27.01.2021

Новые мажорные релизы
🎉 Autofill Version 1.1.0 - поддержка API Android 11 и новое InlineSuggestionUi API
🎉 Biometric Version 1.1.0 - поддержка API Android 11 и исправлены утечки памяти и проблемы производительности
🎉 RecyclerView-Selection Version 1.1.0 - улучшение производительности и
🎉 Transition Version 1.4.0 - появились KTX расширения
🎉 Work Version 2.5.0 - подробности изменения здесь, особенно если у вас приложение с несколькими процессами + новый инспектор в Android Studio

Багфикс релизы
🔨 Media2 Version 1.1.2
🔨 Navigation Version 2.3.3

Готовятся к мажорному релизу
🌔 CameraX 1.0.0-rc02
🌔 Fragment Version 1.3.0-rc02
🌓 Annotation-Experimental Version 1.1.0-beta01
🌓 Room Version 2.3.0-beta01 - БД теперь может сама закрываться если она не используется определенное время

В разработке
🏗️ Biometric Version 1.2.0-alpha02 - улучшение API и больше поддержки Kotlin Coroutines
🏗️ CameraX 1.1.0-alpha01
🏗️ Emoji Version 1.2.0-alpha03
🏗️ Hilt Version 1.0.0-alpha03 - поддержка ViewModel и WorkManager / исправление багов
🏗️ Paging Version 3.0.0-alpha13 - изменения API
🏗️ Window Version 1.0.0-alpha02
#Jetpack #Navigation #Fragment #Dagger

Hilt integration with the Jetpack navigation library

В Hilt 1.0.0-alpha03 появилась интеграция с Navigation библиотекой, которая позволяет получить ViewModel со скопом графа навигации
#AndroidOS

A Garbage Collection Story

Статья в которой рассказывается о сборщике мусора (GC) в Android, а именно:
👉 Как занимаются ячейки памяти
👉 Появление утечек памяти
👉 Причины OutOfMemoryException
👉 Что плохо с GC в Dalvik VM?
👉 ART и heap fragmentation

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

Еще очень круто об это рассказали Chet Hasse и Roman Guy - https://youtu.be/Zc4JP8kNGmQ
#AndroidBroadcast #Новости #Jetpack

Новостной дайджест от 01.02.2021 (15 мин)

Новости Android разработки прошедшей недели:
👉 WorkManager 2.5.0
👉 WorkManager Инспектор в Android Studio
👉 Ускорение старта приложения и уменьшение ANR
👉 AndroidX Biometric 1.1.0: исправление утечек и фикс производительности
и много чего ещё интересного в выпуске!

Поддержать любимый проект http://bit.ly/3sratqQ

P.S. В это выпуске я сделал крупный план и использовал другие подходы в монтаже. Как вам? Оставляйте свой отзыв на YouTube. Это очень важно, позволяет развиваться и повышать качество
#Gradle

Take care of your gradle home directory

История как Gradle Daemon поедает десятки гигабайт на вашем SSD, чтобы "ускорить" работу. Готовьтесь периодически подчищать за ним
#Fragment

7 Common Mistakes Easily Made with Android Fragment

Любой Android разработчик имеет дело с Fragment, но правильно варить с ними приложения не всегда очевидно. Автор статьи рассказывает о наиболее популярных ошибка разработчиков:
Создавать новый экземпляр Fragment без проверки того что он уже добавлен
Создавать объекты в onCreateView(), которые живут дольше чем UI
Восстанавливать состояние в onCreateView()
Держать ссылку на Fragment в Activity/Fragment
Обращаться к View во время сохранения состояния Fragment
Использовать add() в транзакциях вместо replace()
Использовать имя класса Fragment как его тег
От себя еще добавлю - не храните ссылки на объекты, привязанные к жизненному циклу View, за пределами onDestoyView().
Сейчас все мы стали работать из дома. Неотъемлемой частью этого является наша семья и соседи. У меня вообще происходит веселье: годовалая дочка бегает с криком по дому, лает пёс, и стучит клавиатура с мышкой 😁

Решением этого для меня стал сервис Krisp.В понедельник на стриме по Moko я протестил его и был в восторге - весь шум за меня убрал AI. Прелесть решения в том что вам не нужно какой-то специальной видеокарты как в решении от Nvidia.

Обязательно пробуйте. Если пройдете регистрацию по моей ссылки, то получите месяц Pro бесплатно как и я. Это позволит сделать звук на стримах лучше!
#AndroidBroadcast

Хотите пройти интервью у Кирилла, чтобы проверить свои силы? Тогда у вас есть такая возможность сделать это в прямом эфире на канале Android Broadcast. Заполните форму и ждите когда с вами свяжутся.
#ProGuard

ProGuard Playground - онлайн песочница для проверки ваших keep правил

ProGuard представила бета версию своей песочницы для проверки ваших keep правил. Утилита сразу подсвечивает какие классы у вас будут сохранены в вашем JAR или APK.

Вы можете интерактивно настроить все что вам необходимо оставить без изменений в release сборке. Также результата можно шарить по ссылке. Например, я сделал пример для приложения Muzei.
#Firebase

Firebase Experimental Extensions

Firebase активно развивается и добавляет новые расширения, которые вы можете добавить в свой Firebase проект и использовать в мобильных приложения

Представлены новые экспериментальные расширения
👉 Короткие ссылки на основе Firebase Dynamic Links
👉 Выполнение анализа тональности текста в Firestore
👉 Adding custom claims to Firebase Auth users
👉 Периодические записи в Firestore

Помимо прочего стало доступно расширение для переводов текста
Into the Sunset on May 1st: Bintray, JCenter, GoCenter, and ChartCenter

JFrog закрывает кучу своих сервисов, включая Bintray. Практически все современные библиотеки заливались на этот сервис, так что у авторов много работы, ведь в конце февраля опубликовать новые не получится. Теперь Maven Central ?
#Kotlin

Вышел Kotlin 1.4.30

Новая минорная версия языка привнесла множество изменений о которых вы можете узнать из поста на канале @kotlin_broadcast.

Важно: Новый Backend JVM IR компилятора перешел в Beta, а старый больше не поддерживается. В 1.5.0 этот компилятор будет работать по умолчанию. Поэтому вам надо попробовать скомпилировать и проверить ваш проект.

Что значит попробовали
1️⃣ Хотя бы раз собрать проект. Инструкция как попробовать новый компилятор
2️⃣ Что-то подебажить
3️⃣ Отправить нам репорты/баги о том, что не работает с примерами кода по возможности. Это можно будет сделать через YouTrack или в Slack Kotlinlang.org
4️⃣ Поработать с ним какое-то время, а лучше заадоптить насовсем

Давайте поможем ребятам довести новый JVM IR backend до стабильного состояния! Это здорово облегчит жизнь нам и его разработчикам, а также приблизит нас к Jetpack Compose.
#Dagger #Hilt

Hilt: Dependency Injection on Android

Серия уроков по Dagger Hilt в которой подробно рассматриваются все аспекты использования этой надстройки над Dagger и как осуществлять миграцию уже существующих Android проектов. Каждый урок совсем короткий - по несколько минут.
#Coroutines #UnderTheHood

Bridging the gap between coroutines, JVM threads, and concurrency problems

Хотите узнать как работают Coroutine на JVM? Как они связаны c Java потоками? Какую роль в этом выполняет CoroutineDispatcher? В статье найдете ответы простым языком с отсылкой в исходники
#Android11 #Security

Adapting your apps for Android 11 privacy changes (18 мин)

Обзор изменений, которых вам придется сделать, чтобы мигрировать своё приложения на targetSdk=30 и ужиться со всеми нововведениями ОС.

Будем честны - озаботимся этим только в последний срок, а это сентябрь, может август.
#ViewBinding

Fast migration from Kotlin Synthetics to View Binding- Tips and Tricks

Руководство по миграции с Kotlin Synthetic на View Binding, а именно автор рассказывает как это сделать быстрее, а не очередной "how-to" переписать:
👉 Используй viewBinding делегат
👉 Как сделать шаблон для viewBinding в Android Studio
👉 Используйте Kotlin with(binding) { ... }
#SVG

Very long vector path

Сталкивались с тем что Android Lint жалуется на слишком большой VectorDrawable у вас в ресурсах? Всё верно! Авторы фреймворка задумывались и VectorDrawable как о легком варианте иконок, а не сложных графических ресурсах.

В статье автор показывает проблемы и предлагает несколько утилит для оптимизации SVG:
👉 Avocado
👉 Svgo
👉 Svgomg

Также как вариант может сработать взять стандартную Material иконку не ту, которую дал дизайнер, а добавить из пресета Android Studio. Дизайнеры берут вариант SVG, который неоптимизирован для Android VectorDrawable, а в AS лежат оптимальные.
#Material #UI

Вышла Material Component 1.3.0

В новой версий библиотеки вас ждёт:
👉 Виджет Time Picker
👉 Виджеты для отображения прогресса: линейный и круговой
👉 Исправление багов
#Security

Android Nesting Intents

Intent вложенный в другой Intent может стать уязвимостью вашего приложения. Проблема заключается в том что вы можете положить Intent, который должен запустить компонент вашего приложения, а это возможно только если он будет публично доступен (в манифесте стоит exported=“true”) либо открыт доступ приложениям подписанным таким же ключом как у вас.

Решением является использование PendingIntent, который в отличие от Intent всегда выполняет в Context в котором он был создан т.е. вызов будет происходить как будто все происходит внутри вашего приложения. Тем самым вам не придется открыть чего либо наружу. Заметили что все системные API принимают именно PendingIntent, а не Intent?
#Dagger #Koin #Hilt

How Dagger, Hilt and Koin differ under the hood?

Сравнение подкапотной работы популярнейших решений для DI на Android, а также их преимуществ и производительности