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

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

РКН https://abdev.by/rkn_tg_ab
Download Telegram
#AndroidStudio #Emulator

Moving Android Studio and Android Emulator to 64-bit versions

Google убивает 32-битные версии Android Studio и эмулятора. В первую очередь это затронет пользователей Windows.

Android Studio 3.6 и Android Emulator 28.0.5 станут последними версиями, содержащие x32 варианты. До конца 2020 года их можно будет скачать, а после ссылки на них будут удалены с официального сайта

Google как всегда слишком мягкие 😔
#AnnotationProcessor #kapt

Making incremental KAPT work

Все мы хотим быструю сборку проектов, но современная Android разработка переполнена различными библиотеками с процессорами аннотаций: Dagger, Glide, AndroidX, Room, Butterknife и пр. Их проблема заключается в том, что каждое изменение кода приводит к повторной генерации кода всеми процессорами.

Эту проблему решили в Gradle 4.7, добавив поддержку инкрементальной компиляции в процессорах аннотаций. К сожалению, из коробки это не работает и требует усилий разработчиков библиотек.

В Kotlin 1.3.31 в kapt добавили поддержку инкрементальной компиляции. Руководство по настройке вы найдете в статье.

Замечание: Gradle модуль будет работать с инкрементальным процесингом аннотаций только если все процессоры, использующиеся в модуле, поддерживают эту возможность.
#Gson

Kson - генерация Gson TypeAdapter & Factory для Kotlin data классов

Большинство современных решения для сериализации/десериализации JSON используют рефлексию, которая несете в себе низкую производительность и невозможность оптимизации кода при компиляции. Kson - библиотека, которая была создана с целью чтобы избавить вас от этого.
#KotlinEverywhere

Kotlin/Everywhere Minsk уже 7 сентября

Последние пару сообщества GDG Minsk и Belarusian Kotlin User Group упорно трудились над тем чтобы сообщить - 7 сентября состоится конференция Kotlin/Everywhere Minsk. Этот ивент является часть большой программы Kotlin/Everywhere от Google и JetBrains. Сейчас мы в начале пути самого масштабного события для наших сообществ. Следите за новостями в @gdgminsk_news и @belarus_kug!

Для тех кто хочет стать спикером открыто CFP
#Room #SQLite #ArchitectureComponents

Вышел Room 2.1.0

Вышла новая версия Room в которой появились следующие возможности:
👉 Поддержка FTS
👉 Поддержка AutoValue
👉 Улучшена поддержка RxJava
👉 Поддержка Kotlin Coroutines (пока только suspend функции, ждем поддержки Channel и Flow)
👉 SQL view на основе аннотации @DatabaseView
👉 Исправление багов
#DeepLink

How to manage a complex DeepLinks scheme on your Android App

Используете ли вы у себя deep link в приложениях? Когда у вас всего несколько ссылок, то объявление их простое, но с ростом их количества растет и сложность их описания. Android не поддерживает богатых регулярных выражений для описания deep link.

В статье рассматривается Gradle плагин manifestreplace-plugin, который упрощает описание deep link-ов.
#Koin #Dagger #DependencyInjection

KOIN for DEPENDENCY INJECTION on Android ► Is Dagger dead?

Актуален ли все еще Dagger 2 для Android разработки, когда Kotlin - основной язык для создания приложений под эту платформу и есть Koin? Разбор этого проводит Antonio Leiva - сертифицированный JetBrains тренер по Kotlin
#ArchitectureComponents #BestPractices

Распространенные ошибки при использовании Android Architecture Components

Повторение - мать учения. Поэтому рекомендую освежить или наоборот ознакомиться с рекомендациями по использованию Architecture Components:
1️⃣ Утечка LiveData Observer в Fragment
2️⃣ Повторная загрузка данных после смены конфигурации
3️⃣ Утечка ViewModel
4️⃣ Позволять View изменять LiveData
5️⃣ Создание зависимостей ViewModel после каждого изменения конфигурации
6️⃣ Хранение ссылки на View в ViewModel
#CleanArchitecture #Architecture #Kotlin #Multiplatform

Clean Architecture example with Kotlin Multiplatform

Хорошая архитектура - это неотъемлемая часть качественной разработки приложений. Поэтому все мы стараемся следовать Clean Architecture в разработке Android приложений. По ее правилам бизнес логика не должна быть привязана к платформе, а взаимодействие с платформенными частями должно осуществляться через абстракции - интерфейсы.

Что как не Kotlin Multiplatform (MPP) позволяет абстрагироваться от платформы и писать чистую БЛ. В статье рассматривается как это реализовать на примере разработки клиента для TMDb.

Замечание: Вы можете использовать аналогичные подходы без поддержки других платформ кроме как Android в MPP проектах
#Animations

Seamless Android app launch animations using Intent Source Bounds

Как кастомизировать анимацию запуска приложения из launcher, чтобы ваше приложение появлялось из иконки приложения с помощью различных анимаций: scale, circular reveal и др.?

Все это можно сделать при помощи Intent.setSourceBounds(Rect?). В статье вы найдете подробный разбор как реализовать анимацию запуска в своем приложении
#WorkManager #AndroidX

Workout your tasks with WorkManager — Intro

Первая статья из серии, включающих обзор модели памяти Android, существующих решениях для фоновых задач, что происходит под капотом и почему мы должны использовать WorkManager.

В первой статье рассматривается:
👉 Модель памяти Android
👉 Почему важная оптимизация расхода ресурсов (батарея, память и пр.)
👉 Существующие решения для работы приложения в фоне
👉 Почему и когда надо использовать WorkManager
TypedTextView

TextView c симуляцией набор текста
#Kotlin

Вышел Kotlin 1.3.40

Новинки минорного обновления языка:
👉 Новая система type inference развивается. В будущем она заменит текущую, но уже сейчас ее можно попробовать в IDE
👉 Новые функции для кодирования/декодирования строк в UTF-8
👉 Добавлена поддержка сторонних nullability аннотаций. Только в IDE 😞
👉 Появилась возможность получения reified типа с помощью рефлексии на JVM. Используйте функцию typeOf()
👉Оптимизированы trimIndent() и trimMargin(). Теперь для строковых констант они выполняются во время компиляции, а не во время выполнения кода.
👉 Улучшения в Multiplatform Project
👉 Улучшения в Kotlin/JS
👉 Улучшения в Kotlin/Native
👉 Исправление багов
#Новости

Зашел вечером и очень приятно удивился - канал набрал 500 подписчиков именно сегодня. На это ушло 240 дней. Спасибо каждому из вас!
#Room #ORM #AcrhitectureComponents

Migrating to Room in the real world — Part 1

Новые технологии появляются постоянно: Kotlin приходит на смену Java, корутины заменяют Rx, Architecture Components активнее используются для построения архитектуры приложения. Каково быть если ваш проект имеет большое количество legacy кода и вы уже работаете со старыми технологиями, но хотите мигрировать?

Ребята из Blinkist делятся своим опытом миграции с работы с SQLite на основе ContentValues и простой обертки Cupboard на Room.
#Kotlin

[Kotlin pearls 6] Extensions: The Good, The Bad and The Ugly

Kotlin extension function и property - это визитная карточка Kotlin для Java разработчиков. Разве что null safety может сравниться по популярности.

В статье происходит разбор этой функции языка, как она работает под капотом и случаи когда ее стоит использовать, а когда нет.
#RecyclerView #Performance

Smooth RecyclerView Scrolling in Android

Отображение списков - довольно популярная задача в современных мобильных приложениях. Требование к таким виджетам высоки - они должны обеспечивать быструю скорость работы и плавность отрисовки при работе пользователя с ними.

Как этого добиваться в RecyclerView? Используйте следующие советы хардкор уровня:
👉 Осуществляйте inflate view для ViewHolder в отдельном потоке при помощи AsyncLayoutInflater и создавайте пул из них
👉 Создайте очередь из UI операций для оптимизации выполнения onBindViewHolder()
👉 Используйте PrecomputedTextCompat, чтобы вынести расчеты для отображения текста на фоновый поток
#Compatibility

Android API Level, backward and forward compatibility

Подробный разбор вопросов версий Android SDK и как они влияют. В статье рассматривается:
👉 Что такое API и SDK ?
👉 Что значит API Level ?
👉 Как использовать compileSdkVersion, minSdkVersion и targetSdkVersion ?
👉 Как вы можете убедиться, что приложение будет работать нормально на устройствах с различными версиями ОС?
👉 Что такое forward & backward совместимость (compatibility)?
Forwarded from Mobile People Talks (Александр Денисов)
Асинхронность - знаешь что об этом ты? Part I

Первоначальной идеей этого выпуска было обсуждение асиннхронности, подходов и решений со всех, так сказать, четырех сторон. Сначала обсудить нативные темы, а потом обсудить кроссплатформенные решения. И начиналось все вроде бы хорошо, обсудили многопоточность, классические проблемы, языки, которые живут без этого, но потом Данис с Кириллом так увлеклись беседой о сходствах и различиях асинхронных подходов в Android и iOS, что на Flutter и React Native просто тупо не хватило времени!

🤪 Так что придется делать два выпуска по цене одного! Асинхронность Flutter vs ReactNative ждите в следующем!

🎧 SoundCloud
🎧 Apple Podcasts