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

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

РКН https://abdev.by/rkn_tg_ab
Download Telegram
#conference #online

Android Crew продолжается, и уже началась вторая неделя. 
Если вы ещё не участвуете – самое время купить билеты по сниженной цене!

Сессии на которые советуем обратить особенное внимание:
🤑Сегодня с утра Кирилл Зубов рассказал про зарплатные вилки
📣Во вторник же вечером в прямом эфире обсудим ваши вопросы про личный бренд с Барухом Садогурским, Кириллом Розовым и Денисом Неклюдовым 
💬 В среду вечером вернутся собесы экспертов! В этот раз будут Дмитрий Мовчан, Сергей Рябов и Степан Гончаров
⚒️Утро четверга начнем с рефакторинга тестового проекта с Женей Мацюком

Ко всему этому, а также к видеозаписям сессий первой недели можно получить доступ, купив билеты тут
#Kotlin

📺 A Look Into the Future by Roman Elizarov (40 мин)

Обзор будущего языка Kotlin и ответы на пожелания сообщества:
👉 Улучшение поддержки интеропа с JVM
👉 Тернарного оператора не будет из-за конфликта синтаксиса с null safety вызовами. Реализовать можно, но вот в языке для ? заложили другой смысл
👉 namespace - статически расширения для third party API и более удобная группировка кода без необходимости использовать object или companion object
👉 val class - замена inline класса и упрощенная версия data классов без возможности изменения (все property val)
👉 Указание разного возвращаемого типа для property и его get/set
👉 Декораторы функций позволят реализовать несколько ресиверов у extention функций и ограничивать вызовы таких функций только в определенных типах
#CI #Tooling

Analyzing your APK during CI/CD

ApkSize-Analyzer - это утилита, которая поможет вам анализировать содержимое вашего APK и анализировать его. Например, на CI вы можете проверить отличие в частях APK. В качестве основы используется Android Studio Plugin для анализа APK.

Возможности:
👉 анализирует файлы, dex, ресурсы в APK
👉 создание отчетов в разных форматах (html, pdf, json)
👉 можно указывать отдельные пакеты для генерации отдельных отчетов
👉 размеры пакетов рассчитываются как комбинация всех dex файлов
👉 отдельный список для изображений, перечисленных в порядке убывания размера
👉 большинство списков отсортированы в порядке убывания их размеров

В будущем планируется добавить поддержку Android App Bundle.
#Kotlin #Coroutines

Вышла KotlinX.Coroutines 1.4.0-M1

Что нового:
👉 SharedFlow
👉 Превращение Flow в SharedFlow и StateFlow с помощью Flow.shareIn и Flow.stateIn
👉 Breaking Changes в Channels под капотом
👉 Исправление багов
👉 Android Lint проверки
👉 ProGuard правила для kotlinx-coroutines-core
👉 Улучшения работа CoroutineDispatcher на Android. Инициализация стала быстрее
#Firebase #Analytics

What’s next with the latest in app analytics

Нова порция обновления в Google Analytics:
👉 Подсчёт дохода от рекламы
👉 Более простой способ создания отчетов по заданным параметрам
👉 Signed user insights - возможность создание аудитории, которая авторизована в приложении, и доставка им персонализированных сообщений в маркетинговых компаниях

Чтобы получить все эти возможности вам надо обновиться на новую Google Analytics из Firebase консоли
#AndroidAuto

Introducing the Android for Cars App Library

Google открывает возможность создавать сторонние приложения для Android Auto. Библиотека для разработки вышла в открытую beta. Разрабатывать приложения можно в 3 категориях: навигация, парковки и приложения для зарядки электромобилей.
#Conference #Online

GDG DevFest Ukraine 2020 состоится уже в это воскресенье, 18 октября.

Будут выступать спикеры с Google, Microsoft, Atlassian и других компаний. Вас ждут актуальные темы по Web, Cloud, Android, Kotlin и Flutter. Также будет много развлечений 🔥
#Koin #DependencyInjection

What’s next with Koin? — 2.2 & 3.0 releases

Koin - одно из популярных решений для DI для проектов на Kotlin. По сравнению с Dagger он убрал долгую компиляцию, упростил объявление зависимостей, но потерял проверку графа во время компиляции.

Совсем скоро выйдет релиз 2.2 этой библиотеки в которой будет:
👉 stateViewModel() и viewModel() буду заменены на viewModel()
👉 Поддержка WorkManager
👉 Поддержка Jetpack Compose
👉 Более простой способ описания Android Scope-ов
👉 Проведены работы под капотом: создать объект Koin Context становится проще
👉 Возможность положить параметр, который inject-ится в зависимость, в граф. По аналогии с StateHandleBundle
👉 Поддержка JUnit 5

В Koin 3.0 нас ждет поддержка Kotlin Multiplatform
#Architecture #JetPack

Navigation Component: An Overview

Повторение - мать учения. Нам вновь рассказывают о возможностях этого компонента и как он может решить навигацию в вашем проекте. Это неправда, но тем кто еще не знает - рекомендую узнать базис
#JetPack #Navigation

AndroidX Navigation: Building on the Wrong Abstraction

JetPack Navigation получилась не самой удачной библиотекой, так как не решает эффективно задачи навигации в проектах среднего и большого объема. Особенно где есть многомодульность.

В статье разбирается альтернативный взгляд на навигацию в коде с помощью аннотаций
Избегайте внедрения внешних библиотек в свой проект

Все мы используем библиотеки с целью чтобы сократить время на разработку, переложив усилия на поддержку их на других разработчиков. Всегда ли оправдан такой подход? Могут ли быть в нем проблемы?

В статье автор рассматривает потенциальные проблемы интеграции сторонних библиотек:
👉 Негативный эффект на размер приложения
👉 Усложнения проекта (автор приводит в пример EventBus)
👉 Сложность погружения в библиотеку для существующих и новых разработчиков в компании
👉 Эффект на скорость сборки
👉 Баги, которые не дают использовать либу, и которые не исправляются
👉 Уязвимости в библиотеках, которые позволят злоумышленникам воспользоваться ими и получить доступ к данным
👉 Доверие разработчику и гарантии поддержки библиотеки
👉 Библиотека проникает во все слои кода (RxJava)
👉 Накладываемый ограничения на код из-за библиотеки

В конце автор добавляет хороший список вопрос, для того чтобы проанализировать стоит ли добавить библиотеку в ваш проект
#GooglePlay

Developer tips and guides: Common policy violations and how you can avoid them

Насколько хорошо вы знаете политики Google Play? Я ими никогда не запаривался, но те кто сталкивался мог запомнить надолго. Разработчики Google Play решили поделиться нарушениями основных политик:
👉 Ссылки на другие приложения в Google Play из
👉 Наличие слов в описании приложения, которые не относятся к вашему приложению, но добавляются туда ради улучшения поисковой выдачи
👉 Неподдерживаемые приложения в аккаунте разработчики, которые лучше отключить
👉 Приложения, которые содержат только WebView, предназначенные для перенаправления трафика на сайт запрещены к публикации

Подробно узнать обо всех политиках можно в Play Developer Policy Center, также рекомендуется пройти специальный тренинг Google Play Academy
Что используете в Unit тестах больше?
Anonymous Poll
41%
Mock
5%
Stub
9%
В чем разница?
36%
Не пишу тесты
10%
Не участвую в опросе
#Kotlin

Слышали о Kotlin Android Extensions? На оф сайте уже не найти информации о них, а в Kotlin 1.4.20 этот плагина будет помечен как deprecated.

Рекомендуют мигрировать на View Binding. Чтобы было проще использовать его - рекомендую мою библиотеку ViewBindingPropertyDelegate
#Testing

Паттерн PageObject в Kotlin для UI-тестирования Android

PageObject - это подход, который давно использовался в тестирование за пределами Android, но в платформе от Google стал адаптироваться не так давно.

В статье рассматривается этот подход, его плюсы и как его реализовать
#Architecture

Создание SDK под Android в стиле Single-Activity

Описание подхода разработки SDK в котором отказываются от Activity как точки входа в SDK и смещают точки входа в Fragment. В статье освещаются плюсы и минусы такого подхода, как использовать Dagger в таком SDK и др. особенности