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
#Kotlin #Refactoring #Codela

Google Codelab: Refactoring to Kotlin

Содержание:
👉 Handling nullability
👉 Implementing singletons
👉 Data classes
👉 Handling strings
👉 Elvis operator
👉 Destructuring
👉 Properties and backing properties
👉 Default arguments and named parameters
👉 Working with collections
👉 Extension functions
👉 Top-level functions and parameters
👉 let, apply, with, and run keywords
#Modularization #Architecture

Inverting the Dependency — Independent Features in Android Applications

Подход к разбиению приложения на модули по принципу "Feature-спутник". Архитектура строилась чтобы удовлетворять требованиям:
1️⃣ Feature может не добавляться в buildVariant
2️⃣ Feature может быть загружена во время работы приложения
3️⃣ Может быть несколько feature, реализующих один и тот же функционал

Как это реализовывали и что из этого получилось вы можете узнать из статьи
#Java #Test

Truth 1.0: Fluent Assertions for Java and Android Tests

Google выпустила assertation библиотеку для тестов. В чем ее преимущества по сравнению с уже существующими решениями AssertJ и Hamcrest:
👉 Более простое API: вызовы идут цепочкой и IDE может легко вам предлагать подходящие assertation
👉 Сообщения об ошибки более читабельны

Truth поддерживает Java, Kotlin, Android, AndroidX Test, GWT.
Сравнение Truth и AssertJ
#AndroidQ

Android Q Beta 5 Update

Вышла новая бета Android Q. В рамках нее производилась стабилизация работы системы и API, т.к. финальное SDK мы получили в предыдущей Beta версии.

В Beta 5 вы сможете найти обновление в системе навигации. Google активно работает со своими партнерами, чтобы стандартизировать это поведение системы между всеми производителями.

Уже запустил установку системы телефоны себе на устройство. Через пару дней дам фидбек
#Room #SQLite

Вышла первая альфа Room 2.2.0

Показали первую альфу следующей версии Room. В ней нас ждут:
👉 Начальные данные для заполнения БД из asset-ов или файла
👉 Возможность задания значений по умолчанию для колонок @ColumnInfo(defaultValue=...)
👉 Поддержка m:n отношения между таблицами
👉 Поддержка инкрементного процессинга аннотаций. Пока для этого надо добавить room.incremental = true в опции процессора. В стабильном релизе будет включено по умолчанию.
👉 Теперь для работы с одной таблице смогут использовать несколько DAO. Новое свойство targetEntity в аннотация @Insert, @Update, @Delete, которое позволяет указать таблицу для которой выполняются действия метода DAO.
👉 Исправление багов

Очень жду следующих альфа версий, чтобы услышать о поддержке Flow из Kotlin Coroutines.
#EditorConfig #IDEA

Managing Code Style on a Directory Level with EditorConfig

В IntelliJ IDEA 2019.2 добавляется расширенная поддержка EditorConfig. В рамках неё появляется поддержка специфичных параметров для IntelliJ платформы и языков программирования.

EditorConfig - это решение, которое позволяет вам описывать единый стиль кода для проектов. Особенность этого подхода в том, что формат описания не привязан к какому либо инструменту для работы с кодом.
#Dagger

Delect - The Gradle Plugin for Dagger Reflect

Каково это избавиться от процессинга аннотаций Dagger 2 и ускорить сборку? Ребята из Soundcloud взяли идею Jake Wharton и заменили весь сгенерированный код Dagger 2 на решение на основе рефлексии. Это снизило производительность во время работы приложения, но зато дает более быструю сборку. Такое положительно скажется на билдах для разработчиков.

Библиотека находится в версии 0.1.0
Android Broadcast
​#AndroidQ Android Q Beta 5 Update Вышла новая бета Android Q. В рамках нее производилась стабилизация работы системы и API, т.к. финальное SDK мы получили в предыдущей Beta версии. В Beta 5 вы сможете найти обновление в системе навигации. Google активно…
#AndroidQ

Пошли уже вторые сутки как я хожу с Android Q Beta 5 на Pixel 3 и могу сказать, что я не нашел критичных багов. То что видел:
👉 В некоторых приложениях с темной темой цвет текста тоже черный и его не видно
👉 Проблемы при шаринге ссылок. Почему-то в списке доступных приложений для шаринга не показываются те, что были на Android P
👉 Очень долго включался телефон. Держал кнопку включения секунд 10 до того как увидел что-то на экране.
#HowItWorks

Android Internals 101: How Android OS Starts You Application

Более глубокое знание внутреннего устройства Android ОС даст вам знания об оптимизациях, которые вы можете использовать в разработке своих приложений. В статье вы найдете информацию о том что происходит за включением вашего телефона:
👉 Цикл загрузки Android
👉 Что такое Bootloader?
👉 Роль ядра ОС
👉 Процесс "Init"
👉 Zygote
👉 Виртуальная машина
👉 System Server
👉 За что отвечает Activity Manager?
#Dagger

Dagger Tutorial

Dagger - это очень мощное решение для Dependency Injection. Однако изучить его из-за этого сложно + на официальном сайте не найти руководства по тому как использовать его на Kotlin, а особенностей много.

На сайте Dagger сделали простое руководство по тому как начать работу с библиотекой. В нем освещаются все базовые возможности библиотеки и немного шире. Жду руководства на Kotlin.
#AndroidQ #Text

What’s new for text in Android Q

Android Q принес ряд оптимизаций для текста:
👉 Перенос слов (hyphenation) отключен по умолчанию в Android Q и AppCompat 1.1.0. На то чтобы рассчитать переносы тратилось около 70% времени из общего времени подготовки текста к отображению
👉 Использования множества шрифтов в одном TextView
👉 Улучшение text spans API: поддержка шрифтов, тени, fontFeatureSettings and fontVariationSettings
👉 Доступ к системным шрифтам: вы можете получить список системных шрифтов
👉 Обновление шрифтов: новый шрифт Myanmar и эмоджи
#Java #iOS

A plan to bring Java to iOS

Планируется перезапуск над проектом OpenJDK Mobile, цель которого портировать JDK 9 на популярные мобильные платформы: Android, iOS и Windows.

OpenJDK Mobile планирует использовать ahead-of-time компиляцию для создания исполняемых файлов, которые будут запускаться на без виртуальной машины.

Что-то очень попахивает Kotlin Multiplatform Projects 🤔
#Dagger #DependencyInjection #Multibinding

Abusing Dagger with Initializers

Dagger - самое популярное решение для Dependency Injection в современной Android разработке. Он имеет множество возможностей, которыми пользуются немногие, а есть и такие которыми пользуются единицы (например Dagger Producers - асинхронный Dependency Injection).

В статье вы сможете подробнее узнать о том, как применить Dagger Multibinding на примере решения задачи выполнения различных инициализаций при запуске приложения с плагинной архитектурой.
#AndroidQ #ThermalAPI

Keeping cool in Android Q with the Thermal API

Хотите узнать насколько нагрелся ваш смартфон пока ваше приложение было на нем запущено? А может на основе этой информации оптимизировать нагрузку приложения на устройство? Тогда хорошие новости - в Android Q появилось новое Thermal API, которое позволит вам получить информацию о текущей температуре устройства (PowerManager.getCurrentThermalStatus()), а также подписываться на изменения (PowerManager.addThermalStatusListener()).

P.S. Не все устройства на текущий момент поддерживают такие возможности, так как необходима реализация на уровне HAL от производителя.
#AndroidAcademy #Minsk #AndroidQ

Android Academy Minsk: Post Google I/O or what's new in Android

Прошла первая половина лета, а это значит что Android Q выходит на финишную прямую к стабильному релизу в конце лета. Android Academy Minsk организовывает митап, чтобы освежить все новинки, что нас ждёт в следующей версии Android, и что ещё представили свежего на Google I/O 2019.

Когда: 19.00 Пятницу 19 июля
Где: SPACE (Октябрьская 10Б)
Участие бесплатное по предварительной регистрации

Вас ждёт Йонатан Левин, организаторы GDG Minsk и следующие темы:
👉 Новинки Android Q: Scoped Storage, темная тема, новая система навигации, улучшения в безопасности и пр.
👉 Jetpack Compose
👉 Новиник AndroidX: CameraX, Performance Benchmark, Security
👉 In-App Updates
👉 Constraint Layout 2.0 и MotionLayout

Помимо всего этого вас ждет классная компания, возможность задать свои вопросы и обсудить все это за пиццей и пивом.
#CodeQuality #KtLint

Вышел KtLint 0.34.0

Вышла новая версия KtLint - утилиты для проверки стиля
Kotlin кода.

В новой версии сделаны следующие изменения:
👉 Поддержка Kotlin 1.3.41
👉 Возможность отключения правил в .editorconfig
👉 Вновь включена настройка no-wildcard-import
👉 Удалена поддержка флагов --ruleset-repository и --ruleset-update
👉 Наличие пустой строки в конце файла теперь включено по умолчанию
👉 Исправлены баги

В экспериментальных проверках были добавлены:
👉 experimental:annotation - проверяет что несколько аннотаций не находятся на одной строке
👉 experimental:multiline-if-else - проверка структуры if (...) {...}
👉 experimental:package-name - проверяет имена пакетов на отсутсвие _