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

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

РКН https://abdev.by/rkn_tg_ab
Download Telegram
#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
#Coroutines

Deep recursion with coroutines

Рецепт от Романа Елизарова как Kotlin Coroutine могут эффективно решить задачи, которую требуют рекурсивного обхода на примере поиска глубины бинарного дерева.
#Coroutines

Coroutines and exceptions: things to know

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

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

High refresh rate rendering on Android

Мы привыкли к тому, что на отрисовку одного кадра у нас есть 16.6 мс т.к. современные устройства имеют дисплей 60 Hz. Но это уже стало не совсем правдой, т.к. современные флагманы уже имеют частоту 90 Hz и даже 120!

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

Опыт проведения Android собеседований: как вести и какие требования

Доступна запись стрима, где Кирилл Розов и Денис Неклюдов ответили на вопросы про собеседования, раскрыли тайны и постарались развеять мифы и убеждения.

Также вы можете выиграть курс о том как прокачаться в навыке прохождения интервью. Условия:
- Подписаться на YouTube канал
- Оставить комментарий с историей о интервью
- Дождаться розыгрыша 4 мая
DevJobAccelerator - Карьерный акселератор для разработчиков

Совсем скоро стартует курс от Дениса Неклюдов и Екатерины Петровой о том, как прокачать свои скиллы прохождения интервью и попасть в топовые компании со всего мира.

Первый вебинар состоится 5 мая и будет бесплатным, а вот за следующий надо платить, но подписчикам канала скидка 20% по промокоду Broadcast.

Можно получить курс бесплатно - участвуйте в конкурсе из предыдущего поста.
This media is not supported in your browser
VIEW IN TELEGRAM
#AndroidStudio #Emulator

Run the Android Emulator directly in Android Studio

В Android Studio 4.1 Canary 8 добавили встроенный эмулятор прямо в Android Studio, теперь не нужно переключаться между окнами
#Jetpack #CameraX

Display a camera preview with PreviewView

CameraX - это библиотека из Android Jetpack, цель которой упростить задачи разработчиков, связанных с камерой.

Одной из таких задач является отображение текущего изображения с камеры. Для таких задач появилась специальная view - PreviewView.

В статье раскрываются особенности работы и возможности:
👉 Особенности PreviewView
👉 Когда используется SurfaceView, а когда TextureView для отрисовки превью
👉 Режима масштабирования
👉 Управление камерой (MeteringPointFactory)