Что вы используете для отправки события в UI (например, для показа Toast) из ViewModel?
Anonymous Poll
39%
StateFlow
27%
SharedFlow
20%
Channel
5%
Другой подход (пишите в комментариях)
9%
Не участвую
🔥11👍4
Руководство по Push уведомлениям (12м)
В статье раскрывается
👉 Что такое пуш, а что уведомление и почему их нужно различать.
👉 Как работают пуш уведомления.
👉 Какие виды пушей и уведомлений могут быть в вашем приложении.
👉 Что влияет на доставку пушей.
👉 Почему доставка пуша не означает, что уведомление было показано.
👉 Как узнать, что пуши не доходят
👉 Что можно сделать, чтобы спасти пуши.
Я уверен, что вы знаете кому стоит это отправить 😁
#android
В статье раскрывается
👉 Что такое пуш, а что уведомление и почему их нужно различать.
👉 Как работают пуш уведомления.
👉 Какие виды пушей и уведомлений могут быть в вашем приложении.
👉 Что влияет на доставку пушей.
👉 Почему доставка пуша не означает, что уведомление было показано.
👉 Как узнать, что пуши не доходят
👉 Что можно сделать, чтобы спасти пуши.
Я уверен, что вы знаете кому стоит это отправить 😁
#android
💯24🔥12👍9
Поиск баланса между рекламной монетизацией и покупками внутри приложения (IAP) — главный тренд игровой аналитики 2024 года
Почитал интервью с Даниилом Восторговым, Product Owner в AppMetrica
Ключевые достижения сервиса 2024 года
👉 Количество приложений с AppMetrcia превысило 60 000
👉 Подключили интеграцию с трекинговыми системами (AppsFlyer, Adjust и др.) для объединения данных из разных источников.
👉 Запустили инструмент «Инсайты»
👉 Внедрили предиктивную аналитику
Итоги рынка рекламы в мобильных приложениях
👉 Компании фокусируются на работе с текущими пользователями
👉 Интерес к ML и AI растет
Что ждать в 2025 году:
👉 Дальнейший поиск баланса между IAP и рекламой в игровых приложениях.
👉 Упор на автоматические инсайты и удобство использования аналитики.
👉 Новые инструменты для повышения дохода без ухудшения UX.
Как вы видите баланс между IAP и рекламой в своих приложениях? Какую роль сыграет AI? Делитесь в комментариях!
#appmetrica #aналитика
Почитал интервью с Даниилом Восторговым, Product Owner в AppMetrica
Ключевые достижения сервиса 2024 года
👉 Количество приложений с AppMetrcia превысило 60 000
👉 Подключили интеграцию с трекинговыми системами (AppsFlyer, Adjust и др.) для объединения данных из разных источников.
👉 Запустили инструмент «Инсайты»
👉 Внедрили предиктивную аналитику
Итоги рынка рекламы в мобильных приложениях
👉 Компании фокусируются на работе с текущими пользователями
👉 Интерес к ML и AI растет
Что ждать в 2025 году:
👉 Дальнейший поиск баланса между IAP и рекламой в игровых приложениях.
👉 Упор на автоматические инсайты и удобство использования аналитики.
👉 Новые инструменты для повышения дохода без ухудшения UX.
Как вы видите баланс между IAP и рекламой в своих приложениях? Какую роль сыграет AI? Делитесь в комментариях!
#appmetrica #aналитика
👍6
Media is too big
VIEW IN TELEGRAM
В процессе перевода проекта на Jetpack Compose рано или поздно появляются вопросы: зачем нам вообще фрагменты, активити и вьюмодели, ведь можно реализовать навигацию прямо между Composable-функциями.
В приложении Мой Beeline разработчики двигаются в сторону компонентного подхода с помощью Decompose, так как он показался нам самым надёжным и стройным в своей красоте.
Своим докладом Павел Королев хочет показать, что жизнь за пределами стека Google существует. А также поделиться опытом, учитывая количество существующего кода, модульность проекта и стремление остаться в балансе с простотой решения.
#android #compose #навигация #decompose
Please open Telegram to view this post
VIEW IN TELEGRAM
👍45🔥12❤7
Что не так с этим кодом? (Код на Kotlin 2.1.0)
Ответ можно найти в статье
Ответ можно найти в статье
// Описываются события который могут происходить в UI
// чтобы потом отправить в код логики обработки
sealed interface UiEvent {
/** Выбран элемента из списка */
data class UserProfileClicked(val userId: UserId) : UiEvent
/** Нажатие на кнопку подтверждения действия */
data object ConfirmClicked : UiEvent
}
@JvmInline
value class UserId(val id: String)
class MyViewModel: ViewModel() {
// Какое-то состояние экрана
private val _state = MutableStateFlow<State>(State.Default)
val state = _state.asStateFlow()
fun onUiEvent(event: UiEvent) {
// Обработка события из UI
}
}
🤯33👍5🔥1
Обзор способов (EN,6м) как показать картинку в App Widget при использование Glance (Compose для App Widget). Начинают с R.drawable и заканчивают интеграцией с ContentProvider и Glide
#android #appwidget #jetpack #glance #compose
#android #appwidget #jetpack #glance #compose
👍13❤5
This media is not supported in your browser
VIEW IN TELEGRAM
🤯 Что не так с использование object и data class читайте в статье на Хабре (3м)
Буду очень признателем вашим лайкам текста на Хабре
#kotlin #android
Буду очень признателем вашим лайкам текста на Хабре
#kotlin #android
🎉26🤯12🔥7👍4👏2
👉 Появилась библиотека с запросами для Gemini
👉 Добавили возможность тестировать
Android Backup and Restore. Собираете Backup на одном устройстве и проверяете восстановление на другом. Работает с физическими устройствами и эмуляторами, но надо чтобы были Google Play Services
#android #androidstudio #gemini
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22🔥7
TestParameterInjector - test runner для JUnit 4 и 5, который запускается тестовые методы с разными комбинациями значенияй параметров/полей. Сможете проверить разные случа и повысить процент покрытия тестами.
Вот тут можно почитать подробнее о преимуществах решения от Google
#тестирование #google
Вот тут можно почитать подробнее о преимуществах решения от Google
#тестирование #google
👍12❤4🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Compose Preview Function Creator - плагин для Android Studio, чтобы быстро генерировать превью для Composable функций
#androidstudio #android #compose
#androidstudio #android #compose
👍76🔥8🤯4
🤯 Поиск по Maven Central закрывается
Столкнулся с ситуацией, что не могу найти свой новый опубликованный артефакт на официальном поисковике Maven Central - search.maven.org. Причина - он закрывается и будет заменён на central.sonatype.com. Подробности читайте тут
Как итог - я не могу зарегистрироваться в Google Play SDK Console из-за того что там для проверки используется поиск через старый портал 😂
#maven
Столкнулся с ситуацией, что не могу найти свой новый опубликованный артефакт на официальном поисковике Maven Central - search.maven.org. Причина - он закрывается и будет заменён на central.sonatype.com. Подробности читайте тут
Как итог - я не могу зарегистрироваться в Google Play SDK Console из-за того что там для проверки используется поиск через старый портал 😂
#maven
🤯50🔥11👍4
Голосуйте за свою самую любимую фичу Kotlin в опросе в @kotlin_broadcast
💯5👍3
🎉 Вышел стабильный релиз ViewBindingPropertyDelegate 2.0
Мажорная версия обновилась из-за изменения работы библиотеки под капотом. На смену использования Lifecycle для отслеживания события создания/уничтожения View в Activity/Fragment пришли ActivityLifecycleCallback и FragmentLifecycleCallback, что позволило избавиться от багов при переключении Fragment и других моментов.
Последствием такого стало удаление множества API, которое писалось как необходимая часть для корректной работы. Например, библиотека под капотом не выполняет никаких проверок на то корректный ли момент для получения View сейчас, а полностью полагается на поведение системы и Jetpack библиотек.
Следствием таких изменение стало смена пакета API c
Знаю, что в эру Compose вам уже и не нужна эта библиотека, но точно не все перешли на Compose и пользователи решения остаются!
Если вы найдёте баги или проблемы - пишите в комментариях под постом или создавайте issue
#android #viewbinding #AndroidBroadcast
Мажорная версия обновилась из-за изменения работы библиотеки под капотом. На смену использования Lifecycle для отслеживания события создания/уничтожения View в Activity/Fragment пришли ActivityLifecycleCallback и FragmentLifecycleCallback, что позволило избавиться от багов при переключении Fragment и других моментов.
Последствием такого стало удаление множества API, которое писалось как необходимая часть для корректной работы. Например, библиотека под капотом не выполняет никаких проверок на то корректный ли момент для получения View сейчас, а полностью полагается на поведение системы и Jetpack библиотек.
Следствием таких изменение стало смена пакета API c
com.github.kirich1409.viewbindingpropertydelegate на dev.androidbroadcast.vbpd, а также id артефакта в Maven Central. Это позволит работать версии 1.X и 2.X быть подключенным в проект одновременно и делать миграцию поэтапно. Либо просто выполним глобальную замену строки со старым пакетом на новый!Знаю, что в эру Compose вам уже и не нужна эта библиотека, но точно не все перешли на Compose и пользователи решения остаются!
Если вы найдёте баги или проблемы - пишите в комментариях под постом или создавайте issue
#android #viewbinding #AndroidBroadcast
11👍65🔥21❤5🤯3
Кофе для автора ☕️
Нравится канал @android_broadcast ? Поддержите автора, угостив чашкой кофе. Больше энергии — больше контента!
Нравится канал @android_broadcast ? Поддержите автора, угостив чашкой кофе. Больше энергии — больше контента!
3🤯18👍7💯3
Forwarded from AvitoTech
Открываем набор на оплачиваемую стажировку 🔥
Вы спрашивали, вы ждали, и вот мы возвращаемся с анонсом стажировки для разработчиков! 6 месяцев, от 25 часов в неделю и 5 направлений: Frontend, Backend, iOS, Android и QA.
Сразу отвечаем на возможные вопросы:
🔵 работа из офиса, удалённо или в гибридном формате на выбор;
🔵 зарплата обсуждается на этапе интервью;
🔵 после программы в компании остаются 80% стажёров.
А ещё вы будете решать реальные задачи бизнеса вместе с разработчиками Авито. Звучит круто!
💻 Узнать требования для каждого направления и попробовать свои силы можно тут.
#avitostart
Вы спрашивали, вы ждали, и вот мы возвращаемся с анонсом стажировки для разработчиков! 6 месяцев, от 25 часов в неделю и 5 направлений: Frontend, Backend, iOS, Android и QA.
Сразу отвечаем на возможные вопросы:
А ещё вы будете решать реальные задачи бизнеса вместе с разработчиками Авито. Звучит круто!
#avitostart
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥4
Начиная с Android 16, будут игнорироваться аттрибуты манифест и API, которые используются для ограничения ориентации и размера окна приложения, что нацелено на опыт пользователей с большим экраном.
По простому - разработчикт будут обязаны поддержать поворот экрана и большие экраны, или ваше приложение будет выглядеть плохо (растягиваться)
#android16 #планшет
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯181🎉17👍13🔥4👏1
🎉 Вышла первая Beta Android 16
Что нового:
👉 Лучшая поддержка больших экранов
👉 Новый тип уведомлений - Live Updates. Похоже на Live Activity из iOS
👉 Поддержка кодека Advanced Professional Video (APV), который используется для записи в проффессиональнызх видео и монтажа
👉 Camera2 API сможет определять нужно ли включить ночной режим
👉 Поддержка вертикального текста
👉 Улучшения accessibility
👉 Ranging API - определение расстояния и угла между Android устройством и удаленным девайсом на основе разных технологий
👉 Изменения под капотом в ART VM приведут к тому что не все приложения будут работать корректно на Android 16. Надо перекомпилировать код и выпускать обновление!
👉 Predictive Back Gesture будет включен для всех приложений с Android 16 и выше.
👉 Predictive Back Gesture теперь поддерживает 3-кнопочную навигацию
👉 Изменения в поведении API
Все подробности в отдельных постах в @android_broadcast
Еще год назад в феврале мы получали только первую Developer Preview, а в 2025 уже первая Beta в январе!
#android16
Что нового:
👉 Лучшая поддержка больших экранов
👉 Новый тип уведомлений - Live Updates. Похоже на Live Activity из iOS
👉 Поддержка кодека Advanced Professional Video (APV), который используется для записи в проффессиональнызх видео и монтажа
👉 Camera2 API сможет определять нужно ли включить ночной режим
👉 Поддержка вертикального текста
👉 Улучшения accessibility
👉 Ranging API - определение расстояния и угла между Android устройством и удаленным девайсом на основе разных технологий
👉 Изменения под капотом в ART VM приведут к тому что не все приложения будут работать корректно на Android 16. Надо перекомпилировать код и выпускать обновление!
👉 Predictive Back Gesture будет включен для всех приложений с Android 16 и выше.
👉 Predictive Back Gesture теперь поддерживает 3-кнопочную навигацию
👉 Изменения в поведении API
Все подробности в отдельных постах в @android_broadcast
Еще год назад в феврале мы получали только первую Developer Preview, а в 2025 уже первая Beta в январе!
#android16
🔥26👍6❤1
Все устройства Google Pixel 6 и выше могут вступить в Beta программу и получить первую Beta Android 16 по воздуху.
#android16
#android16
🔥12👍3🎉1
Notification Live Updates в Android 16
Добавили новый стиль уведомлений - ProgressStyle, который позволяет задать текущий прогресс, иконки для начала, конца и текущей позиции, добавлять разные сегменты и точки.
Подробности по новому типу уведомлений читайте тут
Рекомендуется интегрировать приложениям в сфере доставки и навигации. Пишите свои комментарии каким категориям приложений еще подойдет
#android16
Добавили новый стиль уведомлений - ProgressStyle, который позволяет задать текущий прогресс, иконки для начала, конца и текущей позиции, добавлять разные сегменты и точки.
Подробности по новому типу уведомлений читайте тут
Рекомендуется интегрировать приложениям в сфере доставки и навигации. Пишите свои комментарии каким категориям приложений еще подойдет
#android16
❤36👍4
🔥30👍8❤2🤯1