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

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

РКН https://abdev.by/rkn_tg_ab
Download Telegram
#Gradle #CodeGeneration

Generating Java/Kotlin source files during Android Gradle build

Популярный способ генерации кода в Android/Java проектах - использование annotation processing. Есть ограничения этого механизма - он способен обрабатывать аннотации только в Java/Kotlin коде.

Но что делать если вы хотите генерировать код на основе других исходников, например XML файлов, или вовсе без исходников Например, так делает Android Data Binding. Реализуется это с помощью генерации кода на основе Android Gradle плагина. В статье разбирается пример как вы можете сгенерировать код самостоятельно.
#Jetpack #JetpackWeekly #Webkit #Biometric #Security

Jetpack Weekly #11

🎁 Biometric 1.0.0 - backport Biometric API из Android 10
🎁 Annotation-Experimental 1.0.0 - перенос Kotlin @Experimental аннотации в Java при помощи Android Lint
👍 Webkit 1.1.0 - больше безопасности, больше дебага, больше поддержки Kotlin и возможность задавать прокси
#View #Lifecycler

The Life Cycle of a View in Android

Всем кто создаёт собственные View обязательно к прочтению!

Жизненный цикл - это не самая простая штука в Android. Не даром сделали целую библиотеку (Lifecycle Arch Component), которая упрощает работу с жизненным циклом. Но жизненный цикл также есть и еще у одного популярного компонента Android - View. В статье подробно разбираются все стадии работы View.
#RecyclerView

The best Android Recycler Adapter you’ve ever seen. Probably

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

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

Mobile People Open Meetup в Минске

В этот четверг 14 ноября состоится открытый митап сообщества Mobile People в рамках которого я (Кирилл Розов) расскажу о Kotlin Coroutines, а именно Flow и их применение в Android.

Также в программе вас ждет доклад "Android MVVM: как быть с диалогами?"

Буду рад встретиться с вами, обсудить ваши вопросы и услышать отзывы о канале.
#Kotlin #CheatSheet

Для тех кто погружается в Kotlin или не уверен в своих знаниях - вам в помощь будет Cheat Sheet с основными конструкциями языка:
👉 Переменные
👉 Система типов
👉 Control Flow
👉 Коллекции
👉 Функции
👉 Классы
#Security #GooglePlayServices #SafetyNet

Security in Android — Cheatsheet

Небольшая статья о безопасности Android приложений, ведь она важна! Статья покрывает базовые вещи как обфускация кода, шифрование данных, проверка устройства на Root. Тем кто кто в этом новичок - рекомендую ознакомиться.
#Dagger #Factory #Kotlin

Injection into Android Component’s Constructors is real

Что вас огорчает в Kotlin? Меня огорчает костыль в виде lateinit для inject зависимостей. Я считаю, что стоит это сделать по нормальному и доставлять все зависимости при создании в конструктор. Но как это сделать для Activity или Fragment, так как все знают правило - "Все компоненты Android должны иметь конструкторы по умолчанию"?

В статье я написал руководство как при помощи Dagger можно реализовать это, а также увеличить производительность вашего кода.
#ConstraintLayout #UI

ConstraintLayout Flow: Simple Grid Building Without Nested Layouts

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

ConstraintLayout 2.0 предоставил возможность virtual helper object, который по сути являются правилами для размещения группы View. Пример такого объекта - Flow. Он позволяет размещать View по сетке, наподобие того как делает Google FlexboxLayout.

В статье разбираются возможности ConstraintLayout Flow и как их реализовать.
#Coroutines #Testing

Unit Testing Coroutine Suspend Functions using TestCoroutineDispatcher

Разбор возможностей TestCoroutineDispatcher, который позволяет эффективно выполнять тесты. В его возможности входит:
👉 Вызов функции delay() не приводит к паузе
👉 Возможность приостанавливать выполнение всех Coroutine в этом CoroutineDispatcher
👉 Останавливать все Coroutine в рамках CoroutineDispatcher
#Hackaton #Minsk #AndroidAcademy

22 ноября состоится хакатон, который завершит второй курс Android Fundamentals от Android Academy Minsk. В рамках хакатона вы можете показать свои навыки программирования, создав за сутки концепт приложения. Любая идея, любая сложность, любой API или SDK для использования.

Основная идея - создавать крутые проекты, писать код, разговаривать, делиться и танцевать! :)

Можно участвовать своей командой, можно участвовать в одиночку. Новичок вы или профи - вы тоже можете принять участие.

Хакатон пройдет с 22 ноября 16:00 до 23 ноября 16:00. Еда, напитки и одеяла будут предоставлены

Все свои вопросы можно задать организаторам в @androidacademyminsk
#RenderScript #Image

RenderScript - это фреймворк для выполнения сложных вычислений с высокой производительностью. RenderScript предназначен для параллельных вычислений, задействуя для этого различные типы процессоров на устройстве: CPU и GPU. Распространенное применения - обработка фотографий или компьютерное зрение.

https://github.com/rumboalla/coolrs - это библиотека, которая предоставляет различные эффекты для изображений
#Dagger #UnderTheHood

Dagger Android — Behind the Scenes

Самый популярный фреймворк для DI на Android - Dagger 2. Для фан базы создатели этого DI реализовали специальное расширение Dagger - dagger-android. Суть его в том чтобы упростить доставку зависимостей в Android компоненты.

Стало ли это проще? Спорно. Чтобы все это работало надо еще написать кучу кода и добавить отдельный процессор аннотаций.

В статье разбирается как под капотом работает dagger-android и чего стоит его удобство
#Jetpack

AndroidX Release Notes RSS

Google наконец-то упростила отслеживание обновление в Jetpack/AndroidX и предоставили RSS. C другой стороны каждое обновление вы можете найти в #JetpackWeekly с более подробным описанием.
#Gradle

Avoiding dependency hell with Gradle 6

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

Также вся эта информация записывается в специальный файл Gradle Module Metadata и загружается при публикации в репозиторий, так что все сторонние библиотеки также теперь могут использовать всю мощь ограничений и поставлять ее пользователям.

Также была значительно переработана документация по управлению зависимостями.
В прошлом году прошел первый курс SchoolKt. В начале следующего хочется сделать его продолжение. Какой формат вы хотели бы увидеть?
Final Results
4%
Сделать курс "Basic Kotlin" (с нуля)
42%
Сделать курс "Advanced Kotlin"
35%
Сделать курс с упором на Kotlin в Android
9%
Сделать воркошопы по отдельным темам
10%
Не интересует
#GooglePlay

Still Using InstallBroadcast? Switch to the Play Referrer API by March 1, 2020

Google предупреждает всех тех кто отслеживает источник установки приложения из Google Play (рекламный баннер, поиск и пр.) пора отказываться от INSTALL_REFERRER broadcast и мигрировать на Play Install Referrer Library. Старое API будет отключено 1 марта 2020 года
#Kotlin #Course #Online

Learn Advanced Android Development in Kotlin

Недавно Google представила курс "Advanced Android development in Kotlin". Бесплатный онлайн курс научит вас продвинутым навыкам для разработки Android приложений, используя Kotlin.
К моей недавней статье "Injection into Android Component’s Constructors is real" сделал замечание разработчик Fragment-ов Ian Lake.

Он поделился тем что child fragment по умолчанию используют FragmentFactory parent fragment. Для FragmentActivity и Fragment в ней это не работает 😐