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

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

РКН https://abdev.by/rkn_tg_ab
Download Telegram
#RxJava #Backpressure

Анатомия backpressure в реактивных потоках

Backpressure - один из важных элементов реактивной парадигмы и может казаться что это довольно сложный механизм, но автор статьи рассказывает о том как "под капотом" устроен этот механизм и что, фактически, реализовать его можно довольно быстро.

В качестве примере автор приводит код, в котором он описал упрощённый механизм backpressure при помощи обычного семафора.
This media is not supported in your browser
VIEW IN TELEGRAM
#Kotlin #Kotlin1_4

Вышел Kotlin 1.4

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

Давайте конкретнее:
👉 Скорость подсветки синтаксиса выросла от 1.5 до 4 раз, как и автодополнение
👉 Отладчик Coroutine
👉 Обновленный мастер для создания Kotlin проектов
👉 Обновленный компилятор
👉 Новая система вывода типов (Type Inference)
👉 SAM для Kotlin интерфейсов
👉 Улучшения стандартной библиотеки
👉 Explicit режим для авторов библиотек, который заставляет явно указывать модификаторы доступа и др. важные для библиотек вещи
👉 Возможность использовать именованные и позиционные аргументы
👉 В конце параметров теперь можно ставить запятую
👉 Теперь можно использовать break и continue внутри when выражений, который находятся в циклах
👉 Улучшения в Kotlin Multiplatform

Также добавили всего много нового экспериментального
#BestPractice

Android Development | Best Practices

Большая статья от разработчика с более чем пятилетним опытом в Android разработке, которая содержит 25 советов и рекомендаций, для того чтобы улучшить и оптимизировать ваше приложение. Среди рекомендаций:
👉 Выбор архитектуры и Build Type'ов
👉 Рекомендации по работе с изображениями и layout'ами
👉 Много советов по безопасности приложения
👉 Оптимизация Gradle

К какому пункту автор даёт пояснение и полезные ссылки.
#Notifrications #Kotlin #DSL

Android Notifications DSL 0.1.0

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

Удобство создания Notification в Android SDK хромает:
👉 Множество Builder-ов
👉 Фрагментированность возможностей уведомлений на разных версиях Android
👉 Непонятно какие параметры надо явно задавать, чтобы получить необходимый тип уведомлений
👉 Отсутствие Compat API для NotificationChannel
👉 Как хорошо реализовать альтернативный вариант для старой версии Android, а для новой показывать более функциональный?

Все это заставило задуматься о создании библиотеки Android Notification DSL, которая позволит избавиться от этих недостатков. Библиотека опирается на возможности NotificationCompat и Notification из Android SDK

Разработчику библиотеки @krlrozov очень важна ваша обратная связь. Пишите в личку или давайте обсуждать в @android_broadcast_talks
#Kotlin #DateTime

Первый релиз Kotlinx DateTime - 0.1.0

Уже давно обсуждали чего стоит ждать и вот с выходом Kotlin 1.4 мы получаем первую версию мультиплатформенной Kotlin официальной библиотеки для работы с датами.

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

Библиотека включает в себя классы:
👉 Instant
👉 Clock
👉 LocalDateTime
👉 LocalDate
👉 TimeZone и ZoneOffset
👉 Month и DayOfWeek 
👉 DateTimePeriod
👉 DatePeriod
👉 DateTimeUnit

В репозитории вы найдете больше подробностей и примеры использования нового API
#Kotlin #Serialization

Вышла KotlinX Serialization 1.0.0-RC

Официальная библиотека сериализации от разработчиков Kotlin подходит к релизу и нас ждут изменения
👉 Миграция на Kotlin 1.4
👉 Изменение и стабилизация API
👉 Исправление багов
👉 Улучшение производительности
#Tooling #Performance

Yet Another Methods Profiler for Android (YAMP)

Утилита для анализа  .trace файлов, аналогичная Android Profiler, но скорость работы выше и управление удобнее.

Такого рода инструмент позволяет понять какие методы у вас вызывались и где было потрачено много времени, чтобы расследовать проблемы в производительности.

Скачать последний релиз можно ➡️здесь
Подробное руководство найдете в README на Github

Задать свои вопросы автору @Grishberg вы можете в чате @android_broadcast_talks
#Conferenсe #Online

2020 год получился очень насыщенным на события. Но впереди еще осень, а это значит, что конференционный сезон в самом разгаре! Вопреки всему, уже 11-14 ноября пройдет Mobius 2020 Moscow. И снова в онлайне! 

После летней онлайн-конференции ребята получили много разнообразных отзывов, и теперь усиленно работают над опытом онлайн-спикеров, пытаясь обеспечить обратную связь с аудиторией, живое общение с экспертами в рамках выступления, и даже планируют сделать почти все доклады парными!

Программный комитет конференции постарается найти содокладчика или эксперта, который поддержит темп доклада и поможет вовлечь аудиторию в диалог, чтобы у вас не было впечатления «разговора с монитором».

Если вы еще думаете, стоит ли участвовать - вот вам знак 🙂 Переходите по ссылке, заполняйте форму подачи заявки на доклад и становитесь спикером Mobius 2020 Moscow. Стоит поспешить, приём заявок открыт до 31 августа!

По всем вопросам можно писать @OksanaMiroshnichenko
#Fragment

Fragments: Rebuilding the Internals

В релизе Fragment 1.3.0-alpha08 произошел рефакторинг Fragment под капотом. Одна из новинок - FragmentStateManager, в который было выделено много логики из Fragment.

FragmentStateManager отвечает за:
👉 Переход Fragment между методами его жизненного цикла
👉 Запуск анимаций
👉 Выполнение отложенных транзакций

Благодаря этому рефакторингу:
👉 было закрыто более 10 багов долгожителей в Fragment
👉 дало дорогу поддержки множеству back stack-ов в рамках одного FragmentManager
👉 Заложена основа для упрощения жизненного цикла Fragment
#Jetpack

Обновление Jetpack 19.08.2020

👉 Concurrent 1.1.0: поддержка ListenableFuture и Kotlin Coroutines
👉 Webkit 1.3.0: улучшения в работе с темной темой и возможность проверки работает ли WebView в отдельном процессе
👉 Fragment 1.3.0-alpha08: переписана работа с состоянием Fragment, что позволило закрыть множество старых багов
👉 AppCompat 1.3.0-alpha02: заменили растровую графику векторной, WindowInsetsCompat стало использовать Android 11 API
👉 Biometric 1.1.0-alpha02: портированы API из Android 11, исправление багов и утечек памяти
👉 Core 1.5.0-alpha02: новые API для NotificationCompat и WindowInsetsCompat
👉 Множество новых beta релизов
#Jetpack #Security

Новая библиотека Security Identity Credential

Библиотека предоставляет бэкпорт нового API из Android 11 и использовать его, начиная с API 24 ( Android 7.0)
#GooglePlay

Google Play In-App Review API: integration and experience

В последней версии библиотеки Google Play Core появилась возможность оставлять отзывы на приложения напрямую из приложения без необходимости открытия Google Play.

В статье рассматривается опыт интеграции этой возможности и тестирование этой возможности. Как результат рост количества отзывов в 5 раз!
#Test

Автотесты на Android. Картина целиком

Как выстроить автотесты в вашем проекте? Это тяжело? В команде Avokado так не считают и в статье отвечают на ряд вопросов:
👉 Зачем нужны автотесты?
👉 Процесс написания тестов
👉 Инструменты
👉 Где запускать тесты?
👉 Инфраструктура
#Design #Material

Android Design System and Theming: Typography

Подробный разбор работы со шрифтами в Material Design на Android:
👉 Ресурсы шрифтов
👉 Стандартные стили
👉 Система шрифтов Material Design
👉 Темы и стили для текста в Android
#Performance

Assets or Resource Raw folder of Android?

В Android есть возможность 2 образами положить произвольные файлы - aasets и raw ресурсы. Что выбрать? Что быстрее? Что займёт меньше места в APK?

В статье найдёте сравнение
#Firebase #Analytics

New API for manually tracking screen views in Google Analytics

В Firebase Analytics появилась возможность вручную трекать показы экраны на Android и iOS. Событие screen_view теперь можно отправить самостоятельно и иметь больше контроля за ним

Когда это может пригодиться:
👉 Отправка события когда пользователь провел какое-то время на экране (не было случайного входа на экран)
👉 Экраны в вашем приложении, которые автоматическая статистика понять не могла, например дочерние View или Fragment

Старое API setCurrentScreen стало deprecated и надо с него уходить. В статье есть гайд как это сделать
#ConstraintLayout #MotionLayout

Вышел ConstraintLayout 2.0

Наконец-то вышел стабильный релиз долгостроя AndroidX - ConstraintLayout 2.0

Что нового:
👉 Улучшенный Runtime
👉 Новый механизм Flow, нечто подобное Chain, позволяющее управлять позиционированием группой виджетов горизонтально или вертикально
👉 Новый helper Layer
👉 Простой способ строить анимации с помощью MotionLayout
👉 Обновленный Layout Editor в Android Studio 4.1 с поддержкой ConstraintLayout 2.0
👉 MotionEditor - визуальный редактор анимаций, доступный с Android Studio 4.0

Примеры использования можно найти здесь
#Kotlin #DSL #Lint

Kotlin DSL —defining mandatory parameters

Kotlin DSL - удобный способ заменить Builder и позволить описывать создание сложных объектов более явно, в особенности когда они имеют вложенности.

Проблема DSL что нельзя каким-то образом проверить, что разработчик использовал все необходимые поля. Такая проверка могла пройти в коде в рантайме или нужно было требовать заполнение во вне DSL.

В статье автор рассказывает о свое библиотеке DSLint, которая на основе Android Lint делает проверку того что все необходимые поля были заполнены.