Size: a a a

Android Broadcast

2020 April 21
Android Broadcast
#Kotlin #CodeQuality

Detekt 1.8.0

Вышла новая версия утилиты, которая позволяет позволяет следить за качеством вашего Kotlin кода. Новая версия может похвастаться следующим:
👉 Новое правило UnnecessaryNotNullOperator
👉 Новое правило UnnecessarySafeCall
👉 Отдельный исполнительный файл detekt на странице релизов в Github
👉 Большинство правил поддерживает списки yaml вместе со списком, разделенными запятыми
👉 Багфикс

Некоторые фиксы багов потребуют от вас сгенерировать baseline файл снова
источник
Android Broadcast
#Auth

One Tap sign in for Android apps

One Tap sign-in и sign-up поможет вам упростить авторизацию пользователей в вашем приложении. Хотите узнать как - читайте статью
источник
2020 April 22
Android Broadcast
android_broadcast
Вы мигрировали на AndroidX / Jetpack (это не про Jetpack Compose) с Android Support?
Окончательные результаты
16%
Да, Jetifier выключен
37%
Да, Jetifier включен
34%
Да (не знаю про Jetifier)
4%
Все еще на Support Library
1%
Не использую эти библиотеки
0%
Другой вариант
7%
Не участвую в опросе
Проголосовало: 603
Как видно что еще часть разработчиков не ушил с Android Support Library на AndroidX. Интересно почему? Отзовитесь в @android_broadcast_talks и расскажите почему, а также что вам не позволяет отключить Jetifier
источник
Android Broadcast
#AndroidAcademy #Minsk #Online

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

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

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

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

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

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

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

Flow and LiveData in MVVM architecture

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

Avito Android 2020.4.4

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

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

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

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

Обратите внимание на класс Main
источник
2020 April 23
Android Broadcast
#UI

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

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

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

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

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

МОЖНО ВЫБРАТЬ НЕСКОЛЬКО ВАРИАНТОВ
Окончательные результаты
66%
Телефоны
21%
Планшеты
1%
Десктоп (ChromeOS)
3%
Телевизор (Android TV)
2%
Часы (Android Wear)
7%
Не участвую в опросе
Проголосовало: 864
источник
Android Broadcast
#DependencyInjection #ArchitectureComponents #ViewModel

Injecting ViewModel — hard to easy

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

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

В статье разбирается как решить эту задачу с помощью Dagger и Koin.
источник
Android Broadcast
#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
источник
2020 April 24
Android Broadcast
#Android11

Android 11: Developer Preview 3

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

Следующая версия будет в мае и уже можно будет обновиться по воздуху
источник
Android Broadcast
#AndroidStudio #Dagger

Dagger navigation support in Android Studio

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

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

Make elegant apps with Palette API

Рассказ о забытом, но полезном функционале в Android Jetpack - Palette API. Оно позволяет вам получить набор цветов из Bitmap, что обычно используется для кастомизации status bar, элементов управления и App Bar на брендированных экранах.
источник
2020 April 25
Android Broadcast
#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 и большой упор делается на то, что у вас есть возможность пообщаться со спикером после доклада и задать ему интересующие вопросы.
источник
Android Broadcast
#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
источник
Android Broadcast
#DarkTheme #AndroidQuality

Dark Mode: three Lint checks to help

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

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

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

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

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

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

Item: Consider aggregating elements to a map

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

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