Android Broadcast – Telegram
Android Broadcast
14.4K subscribers
3.68K photos
367 videos
11 files
6.1K links
Подборка новостей и статей для Android разработчиков.

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

РКН https://abdev.by/rkn_tg_ab #MQRZR
Download Telegram
#AndroidAcademy #Minsk #Workshop #Coroutines

17 февраля Android Academy Minsk в рамках Advanced курса проведут воркшоп по Kotlin Coroutines. Вы сможете закрепить знания, полученные на первой лекции (запись можно найти здесь) на реальных задачах под руководством опытных разработчиков.

Программа воркшопа состоит из 3 заданий:
👉 “Fast finger” game: suspend, delay, ViewModel Coroutine Scope
👉 Network + Storage: Retrofit & Room + Coroutines
👉 Super Simple Chat - Flow & Channels
#JUnit5 #Testing

Parameterized tests with Kotlin’s Sealed Classes

JUnit 5 сделал написание параметризированных тестов проще - параметры на в методе и аннотация, которая перебирает параметры из источника. Одной из таких аннотаций является @EnumSource, которые перебирает значения из заданного enum.

Sealed класс в Kotlin называют "Enum на стероидах", так как они имеют меньше ограничений, но оставляют важную особенность - ограниченность вариантов, а именно подклассов.

В статье разбирается как сделать свой источник параметров для JUnit 5 тестов на основе Sealed класса.
#Kotlin

It's Nothing

В Kotlin есть 3 специальных типа: Any, Unit и Nothing. И если первые 2 часто понятны (аналоги Object и Void), то вот Nothing зачастую вызывает вопросы:
👉 Зачем нужен тип экземпляр которого ни создать, не получить?
👉 Когда стоит использовать Nothing, а когда Unit
👉 Nothing - подтип любого типа? Это же невозможно в JVM!

В статье разбираются случаи использования Nothing
​​#Meetup #Avito #НижнийНовгород

Avito Android митап в Нижнем Новгороде

29 февраля (суббота) в Нижнем Новгороде пройдет Android митап, организованный совместно Avito и GDG Gorky. В рамках митапа вас ждут 4 доклада:
👉 Организация и инфраструктура дизайн-системы Авито — Андрей Данилов@Авито
👉 MotionLayout. Анимации, как у сына маминой подруги — Андрей Тумаринсон@MERA
 👉 Мы вынесли инфраструктуру для Android в open source — Сергей Боиштян@Авито
👉 Почему Kotlin Coroutine — лучшее, что подходит Android — Кирилл Розов@Android Broadcast

В своем докладе я расскажу о интеграции Kotlin Coroutines в Android приложения и почему стоит выбрать/переходить на него уже, если не успели сделать этого раньше.

Для тех кто не сможет попасть, то вы сможете посмотреть онлайн трансляцию.

Я буду рад увидеть всех вас и пойти куда посидеть всем вместе после митапа или в воскресенье. Пишите если есть такое желание мне в личку @krlrozov, так как надо понять на какое время заказывать билеты.
#Testing #Instrumentation #UIAutomator

Вышел Kaspresso 1.1.0

Разработчики Kaspresso продолжают работу над ошибками в Instrumentation тестирование под Android и теперь они улучшают UI Automator - встречайте Kautomator.

Kautomator ускоряет UI Automator просто до небес 🚀. Подробности как это сделали здесь. Сравнение скорости работы смотрите ниже ⬇️⬇️⬇️

Кроме того, Kautomator - это красивая обертка над UI Automator, делающая написание тестов одним сплошным удовольствием, используя возможности Kotlin.

В купе с механизмом интерсепторов, Kaspresso + Kautomator обеспечивают мощную защиту от flaky. Подробнее здесь и здесь.

Новый релиз также отметился:
🔥 Тестирование обновлений приложения
🔥 Проверка Logcat логов, которая позволяет следить за соблюдением GDPR
👉 Новый continuously метод для тестов
👉 Улучшения в BaseTestCase и BaseTestContext
👉 Исправление багов
👉 Улучшение документации и примеров

Совсем скоро в гости к Android Broadcast Podcast придут создатели Kaspresso, чтобы рассказать больше о тестирование Android приложений и как их библиотека его улучшает
This media is not supported in your browser
VIEW IN TELEGRAM
Сравнение работы Kautomator (слева) и UI Automator (справа)
#RecyclerView

Anatomy of RecyclerView: a Search for a ViewHolder

RecyclerView - один из самых популярных виджетов в Android разработке. Его устройство не простое и состоит из множества компонентов: LayoutManager, Adapter, ViewHolder, ItemAnimator, ItemDecoration и др. Но сколько магии скрывается внутри для обеспечения работы.

В статье разбирается что скрывается за методом getViewByPosition() для получения View, которая будет отображаться в заданном элементе списка.
#Tooling

Become a Master Builder with these Android Dev Tools

Обзор различных библиотек и программ, которые помогут вам сделать работу проще:
👉 Vysor - шаринг экрана реального устройства
👉 Chucker - перехватчик сетевых запросов
👉 Stetho - множество информации через Chrome
👉 LeakCanary - слежка за утечками памяти
👉 Shape Shifter - визуальный редактор для AnimatedVectorDrawable
👉 Charles Proxy - сетевая прокси
👉 Accessibility Scanner - проверка Accessibility вашего приложения
👉 Window Visual Quality Assurance - измеряем view на экране
👉 Screen Recorder - запись видео с экрана
👉 Dev Tiles - быстрый доступ к настройкам dev options через Tiles
👍1
Android Broadcast
#Tooling Become a Master Builder with these Android Dev Tools Обзор различных библиотек и программ, которые помогут вам сделать работу проще: 👉 Vysor - шаринг экрана реального устройства 👉 Chucker - перехватчик сетевых запросов 👉 Stetho - множество информации…
В дополнение стоит обратить внимание на утилиту scrcpy от Genymotion, которая является бесплатным аналогом Vysor , а также приложение Developer Assistant, которая позволяет вам проверять layout, style, переводы и другое прямо с вашего устройства
#Dagger #Performance

Speeding Up Builds with Dagger Reflect

В Dagger есть 2 боли - сложность описания графа и скорость сборки проектов. С первой проблемой не справиться просто, но вот для второй разработчики придумали уходить от процессора аннотаций в пользу рефлексии. Это снижает скорость работы Dagger, но увеличивает скорость сборки.

Одна грусть во всем этом - уйти полностью от процессора аннотаций в случае Dagger нельзя (
Android Broadcast
#Tooling Become a Master Builder with these Android Dev Tools Обзор различных библиотек и программ, которые помогут вам сделать работу проще: 👉 Vysor - шаринг экрана реального устройства 👉 Chucker - перехватчик сетевых запросов 👉 Stetho - множество информации…
И еще одно приложение - Designer Tools, которое позволит вам отобразить сетку поверх экрана и проверить расположение элементов. Помимо это тулза поможет проверить соответствие дизайна мокапу, путем наложения его, и сверить цвета.
#EditText

Adventures in the Land of EditText

Жизнь с EditText не так проста, если вам надо что-то сделать больше чем просто добавить на UI и получать из него введенный текст.

В статье разработчики делятся своим опытом активной работы с EditText и Span: что делали, с какими проблемами столкнулись и как решали.
​​FileBox - Async file downloader for Android

Библиотека для асинхронной загрузки для загрузки файлов по URL.

Библиотека умеет правильно работать с Etag, шифровать файлы, кэшировать загрузки и много много другого
#EventBus

Вышел EventBus 3.2

Я думал что пациент давно мертв, но нет - он вернулся с новой версией. Изменения:
👉 Инкрементальный процессинг аннотаций
👉 Улучшена поддержка Jetpack
В Telegram есть возможность соединить канал с чатом, только у реализации есть одна проблема - все из канала начнется сыпаться в чат и пиниться. Из-за этого я не делал этого, но решил спросить вашего мнения.
Final Results
26%
Подключать
74%
Не стоит
И сражу же второй вопрос - стоит ли выделить новости о Android Broadcast (нововведения, анонсы, новые выпуски подкастов и видео) в отдельный канал? Сейчас получается мешак в этом канале и собственный контент канала теряется между ними
Final Results
20%
Хорошая идея
7%
Отдельный канал и дублировать здесь
62%
Как сейчас хорошо
11%
Мне все равно
#DependencyInjection

Koin – это Dependency Injection или Service Locator?

Можно ли Koin назвать Dependency Injection? В статье вы найдете разбор "по понятиям" для Koin.

Со своей стороны могу сказать одно - Koin упростил мне работу с DI и неважно к какому классу его отнесут.
И последний вопрос на сегодня - слушаете ли вы Android Broadcast Podcast? Не важно в каком формате (SoundCloud, YouTube, Google Podcast или др.)
Final Results
38%
Слушаю 😎♥️
14%
Первый раз слышу о таком
17%
Не слушаю подкасты вовсе 🔥
13%
Не слушаю Android Broadcast Podcast
2%
Слушал(а), не понравилось ☹️
7%
Не слушаю по другим причинам
8%
Покажите ответы ☹️
#CodeQuality #Kotlin

Speeding up the Detekt in a multi-project Gradle build

Рецепт для ускорения проверки Kotlin кода с помощью Detekt для тех кто использует его в много модульном проекте.

На своем проекте автор смог добиться ускорения в 10 раз (64 сек -> 6 сек)! Проект из 56 модулей и примерно 7000 тысяч строк
#RxJava

Вышла RxJava 3.0

На день всех влюбленных нам решили подарить новую мажорную версию RxJava.

Что нового:
👉 Минимальная версия поддерживаемая версия Java теперь 8 + добавилось множество возможностей
👉 Улучшена работа с ошибками
👉 ConnectableFlowable и ConnectableObservable - поддержка множества подписчиков
👉 Возможность приостанавливать Flowable
👉 Улучшение работы операторов
👉 Улучшение stacktrace при ошибках

Подробности изменений в API
Полный список изменений можно найти здесь

RxJava 2 переходит в режим поддержки и в нее будут добавляться только багфиксы.
​​#Podcast #Gradle #Performance

Android Broadcast Podcast #7: "На старт! Внимание! Build!" Ускоряем Gradle co Степаном Гончаровым

Нет в Android мире разработчика, который бы не сталкивался с Gradle, и особенно с тем что она имеет свойство выполняться долго.

Как ускорить сборку проекта? Какую "магию" применяют в больших проектах, где количество строк исчисляется не одной сотней тысяч? Помогают ли в этом рекомендации Gradle? Может пора переходить на Bazel? Обо всем этом мы поговорили с гостем - Степаном Гончаровым.

Степан занимается мобильной разработкой более 10 лет. В настоящий момент Engineering Manager в Grab. Занимается CI/CD тулингом, билд таймом и продуктивностью 200+ мобильных разработчиков. Bazel фанбой. Организатор Kotlin User Group Singapore. Последние два Mobius рассказывает о работе с Gradle.

Полезные ссылки:
👉 Советы по улучшению производительность от команды Gradle
👉 Доклад Степана "Gradle pipeline optimization: Beyond basics"
👉 Kapt и разные опции
👉 Официальный сайт Bazel
👉 Пример настройки Bazel и Android
👉 Плагин для подключения Android SDK в Java модуль
👉 Плагин для подключения AAR в Java модуль

Это первый выпуск, где ведущий стал использовать новый микрофон. Качество звука стало лучше.

Спасибо Александру Марцинкевичу за помощь в подготовке выпуска