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

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

РКН https://abdev.by/rkn_tg_ab
Download Telegram
Какой чип стоит в вашем смарфтоне?
Final Results
63%
Qualcomm Snapdragon
8%
Apple A
9%
Samsung Exynos
2%
Mediatek
13%
Не знаю
5%
Другой вариант
Android Broadcast
Какой чип стоит в вашем смарфтоне?
Вот только сейчас понял, что забыл упомянуть про Huawei Kirin. Приношу извинения владельцам этих устройств.
#DarkTheme #AppCompat #Context

Dark mode musings: beware of the context 🌗

Для графических ресурсов очень важно из какого Context бы берёте ресурсы, т.к. к Context привязана используемая тема для UI. К чему может привести проблема с использованием некорректного Context можно найти в статье на примере интеграции темной темы.
#Kotlin

Writing clean models using extensions

Extension function - прекрасная возможность Kotlin, которая позволяет не только избавиться от утилитарных статических функций, но и сделать архитектуру ваших приложений лучше. Например, можно сделать ваши data классами полностью чистыми от функций и перенести все в extension function. Подробнее об этом читайте в статье.
Android Broadcast
Какой чип стоит в вашем смарфтоне?
Результаты опроса наглядно подтверждают, что Qualcomm Snapdragon - доминирующее решение у Android разработчиков и большинство из них сидит на Android.
#Room #Coroutines

Room 🔗 Flow

Room с каждой версии все больше и больше включает в себя поддержку Kotlin Coroutine. В последней версии (2.2) появилась возможно использовать Flow. Как это работает вы можете найти в статье.
#Kotlin #Conference #Copengagen

Обзор Kotlin Conf'19

4-6 декабря прошла конференция Kotlin Conf 2019 и мне выдалась возможность побывать на ней лично. Я с удовольствием делюсь своими впечатлениями и докладами на который стоит обратить внимание (по мнению Android разработчика)
#Java #D8 #Desugarung #JakeWharton

D8 Library Desugaring

Все Android разработчики знакомы с фрагментированностью платформы, что не дает нам использовать последнии версии Android SDK в приложениях. Google помогла в решение этой проблемы, предоставля библиотеки AndroidX.

Есть одно "НО" - проблема не решена для Java API. Android разработчики стали чувствовать проблему меньше с приходом Kotlin, но все же в JDK есть интересные API:
👉 Java 8 Stream Collection (API 24)
👉 Java 8 Date Time (API 26)
👉 Optional (API 24)
👉 CompletableFuture (API 24)
Использовать в большинстве приложений не получится т.к. наиболее распространенные minSdk - это 21 или 23.

В Android Studio 4.0 (а точнее в Android Gradle Plugin и D8) была добавлена новая возможность “core library desugaring”, которая позволяет делать бэкпорт этих API, а также новых методов, появившиеся в других API (более подробный список здесь) и исправлять баги в Java API на старых версиях Android.

В своей статье Jake разбирается как устроена новая фича в D8
#IDEA

IntelliJ Platform Roadmap for 2020

Скорее всего любой Android разработчик пользуется Android Studio, а также Flutter разработчики. Базируется на Android Studio на основе InjelliJ IDEA от JetBrains. Авторы перед наступающим годом рассказали о свои планах по улучшению IDE в 2020:
👉 Скорость индексации проекта
👉 Улучшение в многопоточности
👉 Загрузка/выгрузка плагинов без перезагрузки
👉 Поддержка «парного программирования» (Collaborative Editing)
👉 Сборка и дебаг кода на удаленной машине (Cloud Execution)
👉 Редизайн модели проекта, которая позволит убрать текущие ограничения

Нас ждет очень много интересного и часть этих изменений будет попадать в Community Edition, что позволит нам получить их в Android Studio, естественно с задержками.
#Kotlin #Multiplatform #Podcast

Kotlin Multiplatform - выходим за рамки Kotlin/Android c IceRock

Поговорили c Android разработчиками из компании IceRock об их опыте разработке на Kotlin не только под Android, но и под iOS с использованием Kotlin Multiplatform: как прошел этот переход, пришлось ли изучать множество новых технологий, помогло ли им это развиваться и улучшило ли это скорость написания проектов и их качество.
#JetpackCompose

Если вы следите за развитием Jetpack Compose, то вам стоит обратить внимание на официальный пример JetNews. В develop ветке репозитория обновляется все на основе последних изменений в snapshot версии Jetpack Compose.
#Codelab #Coroutines #ArchitectureComponents

Advanced Coroutines with Kotlin Flow and LiveData
Продолжительность: 57 минут

В библиотеках ViewMode, Lifecycle и LiveData 2.2.0 было добавлена расширенная поддержка Kotlin Coroutines:
👉 Специальный билдер liveData {}, который внутри может выполнять suspend функции
👉 Конвертация Flow <-> LiveData
👉 Поддержка запуска Coroutine с Lifecycle и соответсвующие CoroutineScope в Fragment и Activity

В новой Codelab вы можете найти практическое занятие, которое поможет усвоить вам все аспекты нового функционала, а также расскажет о Flow, принципах работы с ними и его интеграции в ваши Android приложения для решения распространённых задач.

Почему стоит обратить внимание на Flow?
1️⃣ Это полностью нативный для Kotlin способ для работы с реактивными потоками данных
2️⃣ Он проще чем RxJava. Написать свой оператор намного проще
3️⃣ Flow быстрее RxJava и других существующих реализации Rx на Java/Kotlin (тесты есть в репозитории kotlinx.coroutines)
#Kotlin #Coroutines #Flow

Instant Search with Kotlin Coroutines

В продолжение темы работы с Coroutine Flow - в статье разбирается задача организации поиска «на лету» (по мере ввода) в UI для Android на основе Flow.
#Coroutine

В последнее время я нахожу много материалов по Kotlin Coroutine. Думаю, что это связано с тем что Kotlin Coroutine активно пропагандируются командой Android для решения асинхронных задач и то что Flow - это способ решения задач для обработки потоков данных (замена RxJava). С одной стороны я понимаю, что пропаганда этого подхода - закономерный шаг при лозунге «Kotlin First» в Android. Но что там с альтернативами? На подходе RxJava 3, есть Reaktive - Rx на чистом Kotlin, возможно кто-то строит асинхронные запросы на основе стандартного API в Android SDK/JDK.

Не могу скрывать, что я и сам придерживаюсь подхода Kotlin Coroutine. Тяну ли я Coroutine в свои проекты - регулярно! Я люблю поделиться своим опытом или рассказать о результатах интересных исследований, поэтому выступаю с докладами, в рамках которых я имею возможность проводить краткие опросы. Результаты опроса «Используете ли вы Coroutine?» меня печалят - большая часть зала пользуется RxJava для асинхронных задач.

К чему я все это вёл - дайте свой фидбек почему так происходит и я постараюсь исправить ситуацию. Заказчика вашего переубедить я не смогу, но помочь с повышением уровня знаний - запросто.

Присоединяетесь к обсуждению в @android_broadcast_discussions
#Kotlin #CodeQuality

Вышел Detekt 1.3.0

Вышла новая версия утилиты для проверки качества Kotlin кода. В обновлении произошли следующие важные изменения:
👉 Новые правила: UnnecessaryAnnotationUseSiteTarget и MapGetWithNotNullAssertionOperator
👉 Минимальная поддерживаемая версия Gradle выросла до 5.0
👉 Исправление багов
👉 Улучшения в документации
#Git #Tests #Modularization

Selectively running Android modularized unit tests on your CI server

Рецепт как запускать тесты только в тех модулях, в которых произошли изменения в вашем ПР. Это позволит уменьшить количество применяемых тестов и быстрее проверять ПР.
#News

Для всех кто слушает подкаст от Android Broadcast и любит Apple сервисы есть радостная новость - подкаст стал доступен в Apple Podcasts.

Для тех же кто пользуется Android подкаст можно найти в SoundCloud и Pocket Cast. Пишите в личку @krlrozov, если хотите увидеть подкаст и в других ваших любимых сервисах.
#MotionLayout #Animation

MotionLayout: A new way to create animations on Android

Обещанного 3 года ждут? Мы ждали Motion Editor всего 2 😁. Уже в Android Studio 4.0 Motion Editor доступен всем! Теперь мы получили удобный визуальный редактор для анимаций и пора вспомнить, что было и как MotionLayout меняет игры в анимацию!