#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.
#Coroutines
Deep recursion with coroutines
Рецепт от Романа Елизарова как Kotlin Coroutine могут эффективно решить задачи, которую требуют рекурсивного обхода на примере поиска глубины бинарного дерева.
Deep recursion with coroutines
Рецепт от Романа Елизарова как Kotlin Coroutine могут эффективно решить задачи, которую требуют рекурсивного обхода на примере поиска глубины бинарного дерева.
Medium
Deep recursion with coroutines
Kotlin Coroutines go beyond asynchronous programming. We can use them to write deep recursive functions.
#Coroutines
Coroutines and exceptions: things to know
Вроде как Coroutine должны были упростить нам асинхронный код, но вот обработка исключений в них оказалась нетривиальной задачей.
В статье разбираются с различными поведением когда выбрасывается исключение
Coroutines and exceptions: things to know
Вроде как Coroutine должны были упростить нам асинхронный код, но вот обработка исключений в них оказалась нетривиальной задачей.
В статье разбираются с различными поведением когда выбрасывается исключение
Rock and Null
Coroutines and exceptions: things to know
When everything goes according to plan, no need to worry about weird behavior from coroutines. What happens though when exceptions are thrown?
#Android11
High refresh rate rendering on Android
Мы привыкли к тому, что на отрисовку одного кадра у нас есть 16.6 мс т.к. современные устройства имеют дисплей 60 Hz. Но это уже стало не совсем правдой, т.к. современные флагманы уже имеют частоту 90 Hz и даже 120!
В Android 11 появились возможность для того, чтобы получать информацию о частоте обновления дисплея и сообщать какую стоит использовать, если ваше приложение не может поддерживать частоту дисплея.
High refresh rate rendering on Android
Мы привыкли к тому, что на отрисовку одного кадра у нас есть 16.6 мс т.к. современные устройства имеют дисплей 60 Hz. Но это уже стало не совсем правдой, т.к. современные флагманы уже имеют частоту 90 Hz и даже 120!
В Android 11 появились возможность для того, чтобы получать информацию о частоте обновления дисплея и сообщать какую стоит использовать, если ваше приложение не может поддерживать частоту дисплея.
Android Developers Blog
High refresh rate rendering on Android
Posted by Ady Abraham, Software Engineer For a long time, phones have had a display that refreshes at 60Hz. Application and game dev...
#Интервью #Видео
Опыт проведения Android собеседований: как вести и какие требования
Доступна запись стрима, где Кирилл Розов и Денис Неклюдов ответили на вопросы про собеседования, раскрыли тайны и постарались развеять мифы и убеждения.
Также вы можете выиграть курс о том как прокачаться в навыке прохождения интервью. Условия:
- Подписаться на YouTube канал
- Оставить комментарий с историей о интервью
- Дождаться розыгрыша 4 мая
Опыт проведения Android собеседований: как вести и какие требования
Доступна запись стрима, где Кирилл Розов и Денис Неклюдов ответили на вопросы про собеседования, раскрыли тайны и постарались развеять мифы и убеждения.
Также вы можете выиграть курс о том как прокачаться в навыке прохождения интервью. Условия:
- Подписаться на YouTube канал
- Оставить комментарий с историей о интервью
- Дождаться розыгрыша 4 мая
YouTube
Опыт проведения Android собеседований: как вести и какие требования
Прохождение интервью - это непростой процесс, как и для того проходит, так и для кто проводит. Страх перед нажать кнопку "Отправить резюме" в большую и известную компанию. Обсудим все в живом формате и вы сможете подключиться и задать свои вопросы.
Своим…
Своим…
DevJobAccelerator - Карьерный акселератор для разработчиков
Совсем скоро стартует курс от Дениса Неклюдов и Екатерины Петровой о том, как прокачать свои скиллы прохождения интервью и попасть в топовые компании со всего мира.
Первый вебинар состоится 5 мая и будет бесплатным, а вот за следующий надо платить, но подписчикам канала скидка 20% по промокоду Broadcast.
Можно получить курс бесплатно - участвуйте в конкурсе из предыдущего поста.
Совсем скоро стартует курс от Дениса Неклюдов и Екатерины Петровой о том, как прокачать свои скиллы прохождения интервью и попасть в топовые компании со всего мира.
Первый вебинар состоится 5 мая и будет бесплатным, а вот за следующий надо платить, но подписчикам канала скидка 20% по промокоду Broadcast.
Можно получить курс бесплатно - участвуйте в конкурсе из предыдущего поста.
getmatch.ru
Работа в IT-индустрии, вакансии и резюме, поиск работы — getmatch
getmatch помогает работодателям найти качественных специалистов, а кандидатам — работу в IT-сфере: разработка, тестирование, дизайн, аналитика, менеджмент и др.
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, теперь не нужно переключаться между окнами
Run the Android Emulator directly in Android Studio
В Android Studio 4.1 Canary 8 добавили встроенный эмулятор прямо в Android Studio, теперь не нужно переключаться между окнами
#AndroidStudio
ПШЕ AndroidStudio или как использовать VCS Tools по полной
Разбор интересных возможностей Git для разработчика и как эффективно можно с ними работать из Android Studio. Все подробно и со скриншотами
ПШЕ AndroidStudio или как использовать VCS Tools по полной
Разбор интересных возможностей Git для разработчика и как эффективно можно с ними работать из Android Studio. Все подробно и со скриншотами
Хабр
ПШЕ AndroidStudio или как использовать VCS Tools по полной
ПШЕ AndroidStudio или как использовать VCS Tools по полной - Все хорошо, только перед влитием обязательно засквошь коммиты. - Заскво...Что? Примерно такая реакци...
#Jetpack #CameraX
Display a camera preview with PreviewView
CameraX - это библиотека из Android Jetpack, цель которой упростить задачи разработчиков, связанных с камерой.
Одной из таких задач является отображение текущего изображения с камеры. Для таких задач появилась специальная view - PreviewView.
В статье раскрываются особенности работы и возможности:
👉 Особенности
👉 Когда используется
👉 Режима масштабирования
👉 Управление камерой (MeteringPointFactory)
Display a camera preview with PreviewView
CameraX - это библиотека из Android Jetpack, цель которой упростить задачи разработчиков, связанных с камерой.
Одной из таких задач является отображение текущего изображения с камеры. Для таких задач появилась специальная view - PreviewView.
В статье раскрываются особенности работы и возможности:
👉 Особенности
PreviewView
👉 Когда используется
SurfaceView
, а когда TextureView
для отрисовки превью👉 Режима масштабирования
👉 Управление камерой (MeteringPointFactory)
Medium
Display a camera preview with PreviewView
Android Jetpack CameraX: PreviewView