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
#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, а также их преимуществ и производительности
#конференция #cfp

Конференция по мобильной разработке Mobius ищет спикеров!

Если вы давно хотели поделиться с профессиональным сообществом полезными знаниями и заодно устроить себе челлендж, но все ждали знака — это он. Пришлите заявку, пройдите отбор и выступите в прямом эфире Mobius 2021 Piter, который пройдет 13-16 апреля.

Больше всего ждут следующие темы:
👉 Платформы под капотом
👉 Software Craftsmanship
👉 Архитектура;
👉 Качество продукта;
👉 Тренды в мобильной разработке
👉 Инфраструктура

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

Заявки принимаются до 16 февраля. Вопросы присылайте @OksanaMiroshnichenko
Publishing to Maven Central

После объявление о закрытие JCenter стали как никогда актуальны статьи о переезде в Maven Central и их посыпалось как из ведра. В статье рассматривается публикация артефактов, автоматизация процесса и примеры
Автор создал новый технический контент в несколькких форматах. Что предпочитаете вы?
Final Results
61%
Читать статью
25%
Смотреть видео
4%
Слушать видео
5%
Слушать подкаст
5%
Не участвую в опросе
#Dagger

Вышел Dagger 2.32
👉 В AssistedFactory теперь надо явно задавать имена для аргументов, которые имеют одинаковый тип
👉 Исправление багов в генерации AssistedFactory

Hilt
👉 Новый метод delayComponentReady() в HiltAndroidRule, который позволяет инициализировать компоненты в тестах до запуска выполнения теста
👉 HiltAndroidRule теперь требует чтобы inject() вызывался не более одного раза в тесте
👉 Удалили deprecated ApplicationComponent
👉 Исправили работу с Android Gradle Plugin 4.2.0-beta04
#Архитектура #Модуляризация

Modularization of Android Applications in 2021

Модуляризация Android приложений уже никого не удивишь. Тему замусолили вдоль и поперёк, кто-то интегрировал к себе, кто-то забил. Ребята из Касперского развивают свой опыт про модуляризацию и раскрывают различные аспекты:
👉 Принципы разделения модулей
👉 Модуляризация с явной инициализацией
👉 Модуляризация с отложенной инициализацией модулей
#AndroidBroadcast

Ktor: микросервисы, веб приложения и клиенты в одном фреймворке (Livestream)
Сегодня в 19.00 (GMT+3)

В гости Android Broadcast приходит Леонид Сташевский - Tech Lead проекта Ktor из JetBrains. Мы обсудим с ним Ktor, его особенности и будущее.

Подключайтесь чтобы послушать и задавать свои вопросы
#Kotlin

Announcing Kotlin Symbol Processing (KSP) Alpha

С переходом нового компилятора Kotlin в Beta статус плагины компилятора тоже развиваются. Помните Kotlin Symbol Processing (KSP), которая призвана ускорить генерацию кода в Kotlin проектах, заменив KAPT? Так вот она перешла в альфу

Статус поддерживаемых библиотек сейчас можно найти здесь, а также добавить те, которые важны вам. Сейчас адаптацию пока начали делать только в Room.
#Jetpack

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

Новая неделя принесла нам целую кучу нового функционала в стабильных версиях:
👉 Новое Activity Result API
👉 Рефакторинг внутренностей Fragment
👉 Новое API для передачи/получения результата между Fragment
👉 Улучшения работы с Lifecycle
👉 Возможность получать LifecycleOwner, ViewModelStoreOwner из View
👉 Deprecation onAttachFragment(), FragmentViewPager, Fragment.setRetainInstance() и др. API

Подробности изменений на сайте developer.android.com