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

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

РКН https://abdev.by/rkn_tg_ab
Download Telegram
Android Broadcast
Вы мигрировали на AndroidX / Jetpack (это не про Jetpack Compose) с Android Support?
Как видно что еще часть разработчиков не ушил с Android Support Library на AndroidX. Интересно почему? Отзовитесь в @android_broadcast_talks и расскажите почему, а также что вам не позволяет отключить Jetifier
#AndroidAcademy #Minsk #Online

Android Academy Minsk Topic #6 - Оптимизация приложений

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

На ближайшем вебинаре от Android Academy Minsk вы узнает каким практикам сделать чтобы не допускаться проблемы и как их диагностировать, если они есть.

Когда: 27 апреля 2020, понедельник, 19:00 (Москва)
Где: YouTube канал Android Academy
#ADVM #Online

Так же рекомендую вам подключиться на ближайший Android Dev Virtual Meetup, на котором Александра Боброва из Яндекс расскажет об измерении потребления батарейки приложением и его оптимизации.

Когда: 23 апреля 2020, четверг, 19.00 (Москва)
Где: YouTube канал ADVM

Организовано при поддержке Android Dev Podcast и Android Broadcast
#Coroutines #LiveData #Architecture

Flow and LiveData in MVVM architecture

Пример использования LiveData и Kotlin Flow в архитектуре Android приложений:
👉 Что выбрать в качестве источника данных Flow или LiveData?
👉 Flow в ViewModel
👉 Flow и Channel
#Avito

Avito Android 2020.4.4

Вышло обновление инфраструктуры Android от Avito:
👉 Test runner получил более гибкий и понятный DSL для фильтрации тестов
👉 Test runner научился запускать тесты из library модулей
👉 Тестовое приложение с Kaspresso. На нем будут проверять test runner
👉 Описали плагин для проверки типовых проблем со сборкой. В нем можно подсмотреть с чем сталкивались и как обходим проблемы.

Полный список изменений здесь
#JetpackCompose #KotlinMultiplatform

Jetpack Compose для UI на десктопе

Подоспел интересный коммит, где декларативный UI Jetpack Compose используется для UI на десктопе на основе Skia. Вот и подтвердились наши ожидания - Jetpack Compose будет Multiplatform!

Обратите внимание на класс Main
#UI

Android at Large: How to Bring Optimized Experiences to the Big Screen

Android - это не только телефоны, но и часы, планшеты, складные устройства, десктопы и телевизоры. Только жалко, что все кроме телефонов разработчиками поддерживает неактивно.

В чем причина такого? Для меня это замкнутый круг: разработчики не адаптируют UI на экраны отличные от смартфонов, потому что такие устройства непопулярны, а устройства непопулярны, потому что мало адаптированного софта.

Автор статьи делится тем как адаптировать приложение под большие экраны, а именно:
👉 Навигация
👉 UI
👉 Способы ввода информации: сенсорный экран, клавиатура + мышь, пульт
👉 Продолжить работу там же где и был пользователь после смены конфигурации устройства: поворот экрана, смена языка, раскрытие устройства и др.
👉 Поддержка множества окон
👉 Drag-&-Drop

Изучить больше о поддержке складных устройств и десктопов (Chrome OS)
Для каких устройств адаптируете Android приложения? Не просто даёте запускаться, а именно используете возможности

МОЖНО ВЫБРАТЬ НЕСКОЛЬКО ВАРИАНТОВ
Final Results
89%
Телефоны
28%
Планшеты
1%
Десктоп (ChromeOS)
5%
Телевизор (Android TV)
3%
Часы (Android Wear)
9%
Не участвую в опросе
#DependencyInjection #ArchitectureComponents #ViewModel

Injecting ViewModel — hard to easy

В современной Android разработке очень популярна архитектура MVVM на основе Arch Components. И куда же современное приложение без Dependency Injection (DI).

Создание ViewModel и доставка зависимостей в ее конструктор с помощью DI - нетривиальная задача, так как создать ViewModel просто через конструктор неправильно, нужно делать это через ViewModelProvider.Factory.

В статье разбирается как решить эту задачу с помощью Dagger и Koin.
#Podcast

Android Broadcast Podcast #14: "Android инфраструктура Авито в Open Source" c Дмитрием Ворониным

Компания Avito открыла наработки для своих Android проектов, связанных с запуском сборок на CI, автотестами, лучшими практиками по настройке утилит и использованию библиотек. Дмитрий Воронин из Авито рассказал все подробности, что интересного можно использовать в своих проектах и что еще будет в будущем.

Гость выпуска - Дмитрий Воронин, инженер Android инфраструктуры в Авито, команда "Speed"

Полезные ссылки:
📰 Telegram канал с полезными материалами для Android разработчиков
🧰 Github Avito Android Infrastructure
👉 Android in Avito. Documentation
👉 Обсуждение Avito Android Open Source в Telegram
#Android11

Android 11: Developer Preview 3

Вышла новая предварительная версия Android 11 для разработчиков. Изменений не так много:
👉 Обновления Exit Reason API (возможность понять почему приложение было закрыто)
👉 GWP-ASan для анализа heap, для проверки безопасности файлов
👉 Инкрементальный ADB. Нужно испольвать APK signature scheme v4
👉 Полноценный беспроводной debug
👉 Багфикс

Следующая версия будет в мае и уже можно будет обновиться по воздуху
This media is not supported in your browser
VIEW IN TELEGRAM
#AndroidStudio #Dagger

Dagger navigation support in Android Studio

Android Studio 4.1 Canary 7 добавила возможность навигации по месту коду, связанного с Dagger:
👉 Перейти в место, откуда предоставляется зависимость
👉 Найти все использования зависимости
👉 Найти Component, который использует Subcomponent
👉 Поддержка Qualifier

Пока не все работает с Kotlin, но в будущих Canary версиях будут вестись работы дальше. Крутое начало!
#Jetpack

Make elegant apps with Palette API

Рассказ о забытом, но полезном функционале в Android Jetpack - Palette API. Оно позволяет вам получить набор цветов из Bitmap, что обычно используется для кастомизации status bar, элементов управления и App Bar на брендированных экранах.
#Online

AsyncAndroid

Еще одни онлайн доклады от Android разработчиков по всем миру. Хоть в название и есть Async - это совсем не про Rx, Coroutine или асинхронное программирование. Первая серия опубликованных докладов содержит 9 видео до 30 минут по разным темам: RenderScript, Room, MotionLayout, GitHub Actions, Data Binding и др.

От себя могу порекомендовать обратить внимание на Android Dev Virtual Meetup. Это митапы, которые проходят 2 раза в неделю на русском языке и проводят их ведущие специалисты индустрии. Организуются они совместно Android Broadcast и Android Dev Podcast и большой упор делается на то, что у вас есть возможность пообщаться со спикером после доклада и задать ему интересующие вопросы.
#JakeWharton

Which is better on Android: divide by 2 or shift by 1?

Сравнение оптимизации деления и умножения на 2 с использованием битовых операций

Итоги расследования (цитирую):
With this we can now definitely say that replacing value / 2 with value >> 1 offers no benefit
#DarkTheme #AndroidQuality

Dark Mode: three Lint checks to help

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

В статье рассматриваются эти правила и предоставляется правила для подключения их в ваш проект
#Interview #LiveStream

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

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

Когда: 28 апреля, вторник, 19.00 (Москва)
Где:
YouTube канал Android Broadcast

В ходе обсуждения мы затронем:
- Как понять разницу между Junior, Middle, Senior и Lead разработчиком?
- Как много толковых людей попадается на интервью?
- Плохие отзывы - повод отказаться или надо дать шанс компании?
- Можно ли найти идеального кандидата
- Отказ человеку на основе CV
- Влияет ли популярность в сообществе на трудоустройство?
- Почему стоит ходить периодически на собеседования
- Страх перед интервью в большой компании
- Как готовится к собеседованию?
- Выбор компании после оффера
- Куда идти на собеседование и зачем?
#Collections

Item: Consider aggregating elements to a map

Как найти элемент в списке? Пройтись по элементам этого списка и найти тот, который удовлетворяет условию. решение тривиально, но имеет не лучшую сложность O(n), где n - количество элементов в списке.

Для ускорения поиска можно воспользоваться хэш таблицей или ее реализацией - HashMap. Больше подробностей в статье
#CodeLab

CodeLab "Starting Android Accessibility"
Продолжительность: 16 минут

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

Google сделал новую codelab в которой можно:
👉 познакомиться с базисами адаптации приложений
👉 как проверить какие проблему по accessibility есть в вашем приложении
👉 как исправить эти проблемы
#View

Replacing Custom Views with View Binding

Взгляд на то, как можно в некоторых случаях отказаться написания собственной view, а на замену использовать View Binding