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
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
Так же рекомендую вам подключиться на ближайший 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 and LiveData in MVVM architecture
Пример использования LiveData и Kotlin Flow в архитектуре Android приложений:
👉 Что выбрать в качестве источника данных
Flow
или LiveData
?👉
Flow
в ViewModel
👉
Flow
и Channel
Medium
Flow and LiveData in MVVM architecture
LiveData, Flow and Channels in a modern Android MVVM architecture
#Avito
Avito Android 2020.4.4
Вышло обновление инфраструктуры Android от Avito:
👉 Test runner получил более гибкий и понятный DSL для фильтрации тестов
👉 Test runner научился запускать тесты из library модулей
👉 Тестовое приложение с Kaspresso. На нем будут проверять test runner
👉 Описали плагин для проверки типовых проблем со сборкой. В нем можно подсмотреть с чем сталкивались и как обходим проблемы.
Полный список изменений здесь
Avito Android 2020.4.4
Вышло обновление инфраструктуры Android от Avito:
👉 Test runner получил более гибкий и понятный DSL для фильтрации тестов
👉 Test runner научился запускать тесты из library модулей
👉 Тестовое приложение с Kaspresso. На нем будут проверять test runner
👉 Описали плагин для проверки типовых проблем со сборкой. В нем можно подсмотреть с чем сталкивались и как обходим проблемы.
Полный список изменений здесь
GitHub
Release 2020.4.4 · avito-tech/avito-android
Features
Add new test filters (#332, #329)
Log detailed information of applied test filters (#322, #325)
Can change test filters via CLI (#340)
Can run tests in Android libraries in test runner (#...
Add new test filters (#332, #329)
Log detailed information of applied test filters (#322, #325)
Can change test filters via CLI (#340)
Can run tests in Android libraries in test runner (#...
#JetpackCompose #KotlinMultiplatform
Jetpack Compose для UI на десктопе
Подоспел интересный коммит, где декларативный UI Jetpack Compose используется для UI на десктопе на основе Skia. Вот и подтвердились наши ожидания - Jetpack Compose будет Multiplatform!
Обратите внимание на класс Main
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 at Large: How to Bring Optimized Experiences to the Big Screen
Android - это не только телефоны, но и часы, планшеты, складные устройства, десктопы и телевизоры. Только жалко, что все кроме телефонов разработчиками поддерживает неактивно.
В чем причина такого? Для меня это замкнутый круг: разработчики не адаптируют UI на экраны отличные от смартфонов, потому что такие устройства непопулярны, а устройства непопулярны, потому что мало адаптированного софта.
Автор статьи делится тем как адаптировать приложение под большие экраны, а именно:
👉 Навигация
👉 UI
👉 Способы ввода информации: сенсорный экран, клавиатура + мышь, пульт
👉 Продолжить работу там же где и был пользователь после смены конфигурации устройства: поворот экрана, смена языка, раскрытие устройства и др.
👉 Поддержка множества окон
👉 Drag-&-Drop
Изучить больше о поддержке складных устройств и десктопов (Chrome OS)
Medium
Android at large: how to bring optimized experiences to the big screen
Discover how to build great experiences for the larger display devices: tablets, foldables, laptops, and desktop devices
Для каких устройств адаптируете 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.
Injecting ViewModel — hard to easy
В современной Android разработке очень популярна архитектура MVVM на основе Arch Components. И куда же современное приложение без Dependency Injection (DI).
Создание ViewModel и доставка зависимостей в ее конструктор с помощью DI - нетривиальная задача, так как создать ViewModel просто через конструктор неправильно, нужно делать это через ViewModelProvider.Factory.
В статье разбирается как решить эту задачу с помощью Dagger и Koin.
Medium
Injecting ViewModel — hard to easy
Comparing Dagger 2, Koin and Service Locator approaches
#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
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
👉 Багфикс
Следующая версия будет в мае и уже можно будет обновиться по воздуху
Android 11: Developer Preview 3
Вышла новая предварительная версия Android 11 для разработчиков. Изменений не так много:
👉 Обновления Exit Reason API (возможность понять почему приложение было закрыто)
👉 GWP-ASan для анализа heap, для проверки безопасности файлов
👉 Инкрементальный ADB. Нужно испольвать APK signature scheme v4
👉 Полноценный беспроводной debug
👉 Багфикс
Следующая версия будет в мае и уже можно будет обновиться по воздуху
Android Developers Blog
Android 11: Developer Preview 3
Posted by Dave Burke, VP of Engineering Our teams, like all of you, continue getting used to a new normal. For many of us, that mean...
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 версиях будут вестись работы дальше. Крутое начало!
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 на брендированных экранах.
Make elegant apps with Palette API
Рассказ о забытом, но полезном функционале в Android Jetpack - Palette API. Оно позволяет вам получить набор цветов из Bitmap, что обычно используется для кастомизации status bar, элементов управления и App Bar на брендированных экранах.
Medium
Make elegant apps with Palette API
Even Google seems to have forgotten about it
#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 и большой упор делается на то, что у вас есть возможность пообщаться со спикером после доклада и задать ему интересующие вопросы.
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 с использованием битовых операций
Итоги расследования (цитирую):
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
Поддержка темной и светлой темы в приложениях - важный аспект хорошего современного продукта. Есть определенные правила, которых стоит придерживаться, чтобы достичь эффективную поддержку:
👉 не хардкодить цвета, а только ссылаться на них
👉 переопределить цвета для ночной темы
👉 не использовать для ссылок на цвета названия цвета, а то зачем он применяется
В статье рассматриваются эти правила и предоставляется правила для подключения их в ваш проект
Dark Mode: three Lint checks to help
Поддержка темной и светлой темы в приложениях - важный аспект хорошего современного продукта. Есть определенные правила, которых стоит придерживаться, чтобы достичь эффективную поддержку:
👉 не хардкодить цвета, а только ссылаться на них
👉 переопределить цвета для ночной темы
👉 не использовать для ссылок на цвета названия цвета, а то зачем он применяется
В статье рассматриваются эти правила и предоставляется правила для подключения их в ваш проект
DEV Community
Dark Mode: three Lint checks to help
Three Lint checks to help you developing dark mode on Android
#Interview #LiveStream
Прохождение интервью - это непростой процесс, как и для того проходит, так и для кто проводит. Страх перед нажать кнопку "Отправить резюме" в большую и известную компанию. Обсудим все в живом формате и вы сможете подключиться и задать свои вопросы.
В ходе обсуждения вы сможете подключиться и задать свои вопросы текстом или голосом
Когда: 28 апреля, вторник, 19.00 (Москва)
Где: YouTube канал Android Broadcast
В ходе обсуждения мы затронем:
- Как понять разницу между Junior, Middle, Senior и Lead разработчиком?
- Как много толковых людей попадается на интервью?
- Плохие отзывы - повод отказаться или надо дать шанс компании?
- Можно ли найти идеального кандидата
- Отказ человеку на основе CV
- Влияет ли популярность в сообществе на трудоустройство?
- Почему стоит ходить периодически на собеседования
- Страх перед интервью в большой компании
- Как готовится к собеседованию?
- Выбор компании после оффера
- Куда идти на собеседование и зачем?
Прохождение интервью - это непростой процесс, как и для того проходит, так и для кто проводит. Страх перед нажать кнопку "Отправить резюме" в большую и известную компанию. Обсудим все в живом формате и вы сможете подключиться и задать свои вопросы.
В ходе обсуждения вы сможете подключиться и задать свои вопросы текстом или голосом
Когда: 28 апреля, вторник, 19.00 (Москва)
Где: YouTube канал Android Broadcast
В ходе обсуждения мы затронем:
- Как понять разницу между Junior, Middle, Senior и Lead разработчиком?
- Как много толковых людей попадается на интервью?
- Плохие отзывы - повод отказаться или надо дать шанс компании?
- Можно ли найти идеального кандидата
- Отказ человеку на основе CV
- Влияет ли популярность в сообществе на трудоустройство?
- Почему стоит ходить периодически на собеседования
- Страх перед интервью в большой компании
- Как готовится к собеседованию?
- Выбор компании после оффера
- Куда идти на собеседование и зачем?
#Collections
Item: Consider aggregating elements to a map
Как найти элемент в списке? Пройтись по элементам этого списка и найти тот, который удовлетворяет условию. решение тривиально, но имеет не лучшую сложность O(n), где n - количество элементов в списке.
Для ускорения поиска можно воспользоваться хэш таблицей или ее реализацией - HashMap. Больше подробностей в статье
Item: Consider aggregating elements to a map
Как найти элемент в списке? Пройтись по элементам этого списка и найти тот, который удовлетворяет условию. решение тривиально, но имеет не лучшую сложность O(n), где n - количество элементов в списке.
Для ускорения поиска можно воспользоваться хэш таблицей или ее реализацией - HashMap. Больше подробностей в статье
Medium
Item: Consider aggregating elements to a map
It is not uncommon to have a bigger set of elements we need to access many times. It might be:
#CodeLab
CodeLab "Starting Android Accessibility"
Продолжительность: 16 минут
Сделать приложение, которым могут пользоваться абсолютно все люди - это важная задача инженера. Современный мобильный телефон использует множество людей с ограниченными возможностями и забывать о них нельзя
Google сделал новую codelab в которой можно:
👉 познакомиться с базисами адаптации приложений
👉 как проверить какие проблему по accessibility есть в вашем приложении
👉 как исправить эти проблемы
CodeLab "Starting Android Accessibility"
Продолжительность: 16 минут
Сделать приложение, которым могут пользоваться абсолютно все люди - это важная задача инженера. Современный мобильный телефон использует множество людей с ограниченными возможностями и забывать о них нельзя
Google сделал новую codelab в которой можно:
👉 познакомиться с базисами адаптации приложений
👉 как проверить какие проблему по accessibility есть в вашем приложении
👉 как исправить эти проблемы
#View
Replacing Custom Views with View Binding
Взгляд на то, как можно в некоторых случаях отказаться написания собственной view, а на замену использовать View Binding
Replacing Custom Views with View Binding
Взгляд на то, как можно в некоторых случаях отказаться написания собственной view, а на замену использовать View Binding
Medium
Replacing Custom Views with View Binding
Custom Views can often be overkill. Here’s how we used View Binding as a replacement.