Реализовывали поддержку Android Enterprise в production приложениях?
Anonymous Poll
5%
Да
20%
Нет
68%
Что это?
8%
Не участвую в опросе
#SQLite #Performance
Android Room Hidden Costs
При использовании Room Android разработчики зачастую использую реактивные стримы (RxJava, Coroutines Flow) для получения всех изменений в данных. Важная особенность этого процесса, что при вставке любых данных выполняется повторный запрос в БД. В статье разбирается как можно оптимизировать это.
Полноценно сделать это не получилось, также автор не разобрал что будет в случае выполнения транзакций.
Android Room Hidden Costs
При использовании Room Android разработчики зачастую использую реактивные стримы (RxJava, Coroutines Flow) для получения всех изменений в данных. Важная особенность этого процесса, что при вставке любых данных выполняется повторный запрос в БД. В статье разбирается как можно оптимизировать это.
Полноценно сделать это не получилось, также автор не разобрал что будет в случае выполнения транзакций.
Как правильно идентифицировать Android-устройства
Вопрос уникальной идентификации устройства/пользователя зачастую стоит при разработке приложений. Все хотят собрать много данных, независимо от сервисов аналитик.
В статье автор разбирает различные подходы к идентификации пользователя в современной Android разработке с учетом всех ограничений. Обратите внимание на 2 библиотеки: Android-device-identification и Fingerprint-android.
Вопрос уникальной идентификации устройства/пользователя зачастую стоит при разработке приложений. Все хотят собрать много данных, независимо от сервисов аналитик.
В статье автор разбирает различные подходы к идентификации пользователя в современной Android разработке с учетом всех ограничений. Обратите внимание на 2 библиотеки: Android-device-identification и Fingerprint-android.
#Стажировка
Как устроены технические стажировки Авито
У вас есть возможность получить опыт работы в одной из крутейшей компании России, научиться работать в Scrum. Помимо всего прочего стажировка оплачиваемая , удаленная и вас будет свой наставник - инженер из Авито. Вы будете решать боевые задачи с первого дня!
Все позиции на стажировку можно найти здесь. После успешной стажировки вы сможете стать полноценным сотрудником Авито.
Как устроены технические стажировки Авито
У вас есть возможность получить опыт работы в одной из крутейшей компании России, научиться работать в Scrum. Помимо всего прочего стажировка оплачиваемая , удаленная и вас будет свой наставник - инженер из Авито. Вы будете решать боевые задачи с первого дня!
Все позиции на стажировку можно найти здесь. После успешной стажировки вы сможете стать полноценным сотрудником Авито.
#Android11
The Quick Developers Guide to Migrate Their Apps to Android 11
Для всех тех кто не обновляет свои приложения до последней версии targetSdk, только когда Google заставит, рекомендую ознакомиться со статьей, в которой автор разбирает обновления в коде:
👉 Foreground Service Type
👉 Доступ с местоположению в фоне
👉 Одноразовые разрешения (One-Time Permissions)
👉 Scoped Storage
👉 Ограничения на доступ к другим приложениям
👉 Уведомления
👉 Отслеживание показа IME
👉 AsyncTask Deprecated
👉 Множество ограничений и изменений в поведении Toast
The Quick Developers Guide to Migrate Their Apps to Android 11
Для всех тех кто не обновляет свои приложения до последней версии targetSdk, только когда Google заставит, рекомендую ознакомиться со статьей, в которой автор разбирает обновления в коде:
👉 Foreground Service Type
👉 Доступ с местоположению в фоне
👉 Одноразовые разрешения (One-Time Permissions)
👉 Scoped Storage
👉 Ограничения на доступ к другим приложениям
👉 Уведомления
👉 Отслеживание показа IME
👉 AsyncTask Deprecated
👉 Множество ограничений и изменений в поведении Toast
#Flow #Coroutines
FlowBinding 1.0.0 уже в релизе (EN)
Для всех кто любит реактивное программирование, использовал библиотеку RxBinding возрадуйтесь - теперь у вас есть стабильная версия binding на основе Coroutines Flow
FlowBinding 1.0.0 уже в релизе (EN)
Для всех кто любит реактивное программирование, использовал библиотеку RxBinding возрадуйтесь - теперь у вас есть стабильная версия binding на основе Coroutines Flow
Когда провести стрим с подведением итогов 2020 года от Android Broadcast?
Final Results
32%
В этом году
12%
В следующем году
7%
Вообще не надо
29%
Без разницы, смотрю в записи
12%
Лучше текстовый пост
8%
Не участвую в опросе
#SQLite
Полнотекстовый поиск FTS3, FTS4 и FTS5 в Android
Full Text Search (FTS) - инструмент, который позволит вам эффективно искать данный в SQLite БД. Одной из явных отличительных особенностей ее является поддержка Unicode, что позволяет делать текстовый поиск не только в латинице
В статье разбирается:
👉 как работать с FTS в Android
👉 что происходит под капотом (виртуальные таблицы)
👉 сравнение различных версий FTS
👉 интеграция FTS 5 через отдельную библиотеки (придется отдельно подключать SQLite)
Полнотекстовый поиск FTS3, FTS4 и FTS5 в Android
Full Text Search (FTS) - инструмент, который позволит вам эффективно искать данный в SQLite БД. Одной из явных отличительных особенностей ее является поддержка Unicode, что позволяет делать текстовый поиск не только в латинице
В статье разбирается:
👉 как работать с FTS в Android
👉 что происходит под капотом (виртуальные таблицы)
👉 сравнение различных версий FTS
👉 интеграция FTS 5 через отдельную библиотеки (придется отдельно подключать SQLite)
#Performance
Вышел LeakCanary 2.6
👉 Отслеживание утечек View из диалогов, после того как те скрываются
👉 Отслеживание утечек Service
👉 Добавлена возможность настройки, какие watcher-ы должны быть установлены по умолчанию
👉 Дамп heap когда экран устройства выключается
👉 Новый артефакт leakcanary-android-release, который используется для анализа heap в релизных билдах (эксперементально). Например, для отправки в аналитику
👉 Plumber: исправление утечек из AOSP
👉 Фиксы багов и минорные улучшения
Вышел LeakCanary 2.6
👉 Отслеживание утечек View из диалогов, после того как те скрываются
👉 Отслеживание утечек Service
👉 Добавлена возможность настройки, какие watcher-ы должны быть установлены по умолчанию
👉 Дамп heap когда экран устройства выключается
👉 Новый артефакт leakcanary-android-release, который используется для анализа heap в релизных билдах (эксперементально). Например, для отправки в аналитику
👉 Plumber: исправление утечек из AOSP
👉 Фиксы багов и минорные улучшения
#UI #Material
MAD Skills Material Design Components: Wrap-Up
Подведение итогов третьей темы в MAD Skills - «Material Design Component» (далее MDC).
Что было:
👉 Зачем использовать MDC?
👉 Material тема и ее применения в приложениях
👉 Темная тема
👉 Material Motion
👉 Советы сообщества
👉 Сессия Live Q&A
Помимого видео вы найдете статьи в блоге на Medium и примеры приложений
MAD Skills Material Design Components: Wrap-Up
Подведение итогов третьей темы в MAD Skills - «Material Design Component» (далее MDC).
Что было:
👉 Зачем использовать MDC?
👉 Material тема и ее применения в приложениях
👉 Темная тема
👉 Material Motion
👉 Советы сообщества
👉 Сессия Live Q&A
Помимого видео вы найдете статьи в блоге на Medium и примеры приложений
#Compose #GraphQL
Jetpack Compose and GraphQL, a very merry combination!
Jetpack Compose - прекрасный декларативный подход, так горячо ожидаемый Android разработчиками. Да и не только мобильными, ведь Compose - мультиплатформенное решение.
В статье разбирается как совместить работу GraphQL в вариации от Apollo, пагинации и Compose.
Конечно, будет круто, если будет возможность не писать предварительно запросы для Apollo, а чтобы библиотека смогла брать соответствующие названия свойства для GraphQL и собирать запросы динамически во время работы приложения. Пока все в статике, но со временем в Android разработку могут прийти подходы работы с GraphQL как в JS фреймворках.
Jetpack Compose and GraphQL, a very merry combination!
Jetpack Compose - прекрасный декларативный подход, так горячо ожидаемый Android разработчиками. Да и не только мобильными, ведь Compose - мультиплатформенное решение.
В статье разбирается как совместить работу GraphQL в вариации от Apollo, пагинации и Compose.
Конечно, будет круто, если будет возможность не писать предварительно запросы для Apollo, а чтобы библиотека смогла брать соответствующие названия свойства для GraphQL и собирать запросы динамически во время работы приложения. Пока все в статике, но со временем в Android разработку могут прийти подходы работы с GraphQL как в JS фреймворках.
#Architecture
Работа с толстофичами: как разобрать слона на части и собрать обратно
В статье вы найдете
👉 Описание подхода разбиения функциональности приложения на реактивные black box компоненты
👉 Проблемы при разработке больших фич
👉 Декомпозиция фичи на систему реактивных black box на практическом примере из приложения hh
👉 Как связать атомарные фичи в функциональность одного экрана
👉 Преимущества подхода разбиения фич на атомарные реактивные компоненты
👉 Проблемы подхода и возможные пути их решения
Статья показывает практическое использование MVI для декомпозиции бизнес логики приложения, но подход к проектированию системы реактивных компонентов может быть интересен и за пределами MVI.
Работа с толстофичами: как разобрать слона на части и собрать обратно
В статье вы найдете
👉 Описание подхода разбиения функциональности приложения на реактивные black box компоненты
👉 Проблемы при разработке больших фич
👉 Декомпозиция фичи на систему реактивных black box на практическом примере из приложения hh
👉 Как связать атомарные фичи в функциональность одного экрана
👉 Преимущества подхода разбиения фич на атомарные реактивные компоненты
👉 Проблемы подхода и возможные пути их решения
Статья показывает практическое использование MVI для декомпозиции бизнес логики приложения, но подход к проектированию системы реактивных компонентов может быть интересен и за пределами MVI.
This media is not supported in your browser
VIEW IN TELEGRAM
VideoLayout - библиотека, которая упростит вам интеграцию видео в UI. В отличие от стандартной VideoView имеет лучшую производительность для видео фонов с меньшим количеством строк.
#AndroidBroadcast
Итоги года для Telegram канала Android Broadcast в инфографике от tgstat. Подробнее здесь
Спасибо всем подписчикам канала, что вы здесь. Ставьте лучики ☀️, чтобы зарядить создателей проекта на будущий год и пишите в личку @krlrozov, если есть что сказать больше
Итоги года для Telegram канала Android Broadcast в инфографике от tgstat. Подробнее здесь
Спасибо всем подписчикам канала, что вы здесь. Ставьте лучики ☀️, чтобы зарядить создателей проекта на будущий год и пишите в личку @krlrozov, если есть что сказать больше
Android — Keeping Release and Debug Installed All the Time
Тестируете приложение на личном устройстве? Для самого помню какая это боль когда разрабатываешь и пользуешься приложением в жизни. Приходится искать второе устройство (хорошая компания обычно предоставляет) либо использовать эмулятор.
Самый простой способ делать тестирование и не сносить релиз - сделать разные application id для разных типов сборок. Главное не забывайте класть ресурсы в нужную папку, правильно настроить все сторонние интеграции (Firebase, HMS, GMS и пр.)
Тестируете приложение на личном устройстве? Для самого помню какая это боль когда разрабатываешь и пользуешься приложением в жизни. Приходится искать второе устройство (хорошая компания обычно предоставляет) либо использовать эмулятор.
Самый простой способ делать тестирование и не сносить релиз - сделать разные application id для разных типов сборок. Главное не забывайте класть ресурсы в нужную папку, правильно настроить все сторонние интеграции (Firebase, HMS, GMS и пр.)
#Architecture #Navigation #Jetpack
Navigation Component-дзюцу, vol. 4 – Переоценка
Не так давно вышла серия статей «Navigation Component-дзюцу» из 3 частей, где автор рассказал о куче проблема с Navigation Arch Component и как команда боролась с ними.
После "Навигационной битвы" на YouTube канале Android Broadcast Влад помог Паше, автору статьи, решить проблемы с которыми они столкнулись. В четвертой части статьи вы найдете пересмотр костылей и как правильно стоило все использовать, чтобы убрать кучу лишнего кода.
Navigation Component-дзюцу, vol. 4 – Переоценка
Не так давно вышла серия статей «Navigation Component-дзюцу» из 3 частей, где автор рассказал о куче проблема с Navigation Arch Component и как команда боролась с ними.
После "Навигационной битвы" на YouTube канале Android Broadcast Влад помог Паше, автору статьи, решить проблемы с которыми они столкнулись. В четвертой части статьи вы найдете пересмотр костылей и как правильно стоило все использовать, чтобы убрать кучу лишнего кода.
#IntelliJ
В IntelliJ IDEA 2020.3.1 добавлена поддержка Apple Silicon
Новый релиз любимой IDE помимо фиксов багов в 2020.3 привнёс поддержку Apple Silicon. Все кто уже успел купить Mac на новых процессорах возрадуйтесь.
В IntelliJ IDEA 2020.3.1 добавлена поддержка Apple Silicon
Новый релиз любимой IDE помимо фиксов багов в 2020.3 привнёс поддержку Apple Silicon. Все кто уже успел купить Mac на новых процессорах возрадуйтесь.
This media is not supported in your browser
VIEW IN TELEGRAM
#AndroidBroadcast
Этот год выдался очень необычным и непривычным для всего мира и IT индустрии в частности. Многим из нас пришлось перебраться домой и работать удаленно. Тусовки сообщества трансформировались из оффлайн посиделок в онлайн. И я думаю, что это сделало нас крепче и глобальнее.
В новом году желаю тебе всего самого наилучшего, возвращения оффлайн формата, профессионального и карьерного роста! Ты лучший(ая)!
2021 - это год Android Broadcast. Для меня проект уже стал основным занятием, которое я буду развивать намного активнее. Новые форматы, контент и пользу русскоязычному сообществу.
Спасибо всем тем кто писал добрые слова и поддерживал проект, моя уверенность в проекте и новый шаг в его развитии - это отчасти ваша заслуга.
Кирилл Розов, создатель Android Broadcast
Этот год выдался очень необычным и непривычным для всего мира и IT индустрии в частности. Многим из нас пришлось перебраться домой и работать удаленно. Тусовки сообщества трансформировались из оффлайн посиделок в онлайн. И я думаю, что это сделало нас крепче и глобальнее.
В новом году желаю тебе всего самого наилучшего, возвращения оффлайн формата, профессионального и карьерного роста! Ты лучший(ая)!
2021 - это год Android Broadcast. Для меня проект уже стал основным занятием, которое я буду развивать намного активнее. Новые форматы, контент и пользу русскоязычному сообществу.
Спасибо всем тем кто писал добрые слова и поддерживал проект, моя уверенность в проекте и новый шаг в его развитии - это отчасти ваша заслуга.
Кирилл Розов, создатель Android Broadcast
Вышел ViewBindingPropertyDelegate 1.4.0
Что нового:
👉 Поддержка ViewHolder и ViewGroup
👉 Упрощение использования viewBinding в Activity
👉 Больше поддержки inflate в различных компонентах
👉 Улучшение производительности при использовании рефлексии
👉 Минорные улучшения и исправления
Что нового:
👉 Поддержка ViewHolder и ViewGroup
👉 Упрощение использования viewBinding в Activity
👉 Больше поддержки inflate в различных компонентах
👉 Улучшение производительности при использовании рефлексии
👉 Минорные улучшения и исправления
Forwarded from Kotlin Multiplatform Broadcast
#JVM
Tonnes of fun with Kotlin
Kotlin упростил жизнь разработчиков, закрыв множество кода от глаз, генерируя его. Но не всегда так очевидно и нужно быть внимательным:
👉 Extention функции не всегда статические методы
👉 Inline классы не всегда встраиваются в код, а используются как обычные классы
👉 Неочевидное перекрытие имен c extention функциями и обычными
👉 Особенности работы методов по умолчанию в интерфейсах неочевидны в каждом случае
Tonnes of fun with Kotlin
Kotlin упростил жизнь разработчиков, закрыв множество кода от глаз, генерируя его. Но не всегда так очевидно и нужно быть внимательным:
👉 Extention функции не всегда статические методы
👉 Inline классы не всегда встраиваются в код, а используются как обычные классы
👉 Неочевидное перекрытие имен c extention функциями и обычными
👉 Особенности работы методов по умолчанию в интерфейсах неочевидны в каждом случае