Советы по уведомлениям в Android

  Рет қаралды 9,269

Android Broadcast. Все об Андроид разработке

Android Broadcast. Все об Андроид разработке

Күн бұрын

#AndroidBroadcast #Уведомления #ЛучшиеПрактики
Рассказываю про уведомления в Android: почему вам стоит уделить время их интеграции, какие сложности скрывает API уведомлений в Android и что может сделать FCM. Помимо прочего представляю свою библиотеку Android Notification DSL
Полезные ссылки:
📰 Telegram канал с полезными материалами для Android разработчиков ttttt.me/android_broadcast
💰 Поддержать проект bit.ly/3sratqQ
🔗 Вакансии в AvitoTech: команда "Speed" bit.ly/3qtC0H2 и команда "Performance" bit.ly/2JAc384
🔗 Библиотека Android Notification DSL github.com/kirich1409/Android...
🔗 Руководство по уведомления в Android dandroid.com/guide/topics/ui/...
🔗 Notification Compat Builder d.android.com/reference/andro...
🔗 Firebase Cloud Messaging (FCM) firebase.google.com/docs/clou...
🔗 Все теги для Android уведомлений в FCM firebase.google.com/docs/reference/fcm/rest/v1/projects.messages#androidconfig
🔗 Генерация Smart Reply с Google ML Kit developers.google.com/ml-kit/...
🔗 Слайды speakerdeck.com/krlrozov/uvli...
Таймкоды:
0:00 Интро
0:56 Важная новость
2:26 В чем сила уведомлений
4:22 Эволюция уведомлений
7:23 Проблемы Android SDK
10:28 Ошибки разработчиков
13:48 Что нет так с NotificationCompat
17:31 Библиотека Android Notification DSL
21:31 Firebase Cloud Messaging
24:02 Заключение

Пікірлер: 38
@AndroidBroadcast
@AndroidBroadcast 3 жыл бұрын
📰 Telegram канал с полезными материалами для Android разработчиков ttttt.me/android_broadcast 💰 Поддержать проект через Boosty boosty.to/androidbroadcast или Patreon bit.ly/2TBOzlu
@danieldefo7801
@danieldefo7801 3 жыл бұрын
Спасибо! Информативно. Хочется еще!
@AndroidBroadcast
@AndroidBroadcast 3 жыл бұрын
Примерно через неделю будет новый выпуск. Просто как избавить от try-catch для асинхронных операций
@maxsimpleapps
@maxsimpleapps 3 жыл бұрын
Спасибо большое, как всегда годнота 😊 Эх, нам бы в эфире побольше таких ребят, как Кирилл и жизнь бы проще стала на порядок.
@AndroidBroadcast
@AndroidBroadcast 3 жыл бұрын
Спасибо
@user-sankarsana
@user-sankarsana 3 жыл бұрын
Круто! Спасибо.
@fliker2309
@fliker2309 Жыл бұрын
Спасибо за видео и библиотеку!✌️👍
@rustamsitdikov
@rustamsitdikov 3 жыл бұрын
Большое спасибо за интересный выпуск!
@AndroidBroadcast
@AndroidBroadcast 3 жыл бұрын
Рад что понравилось
@yakovweber9596
@yakovweber9596 3 жыл бұрын
Как всегда топ видео.
@AndreyDerkach8
@AndreyDerkach8 3 жыл бұрын
побольше таких роликов, молодец Кирилл
@AndroidBroadcast
@AndroidBroadcast 3 жыл бұрын
Спасибо
@channelsecondname
@channelsecondname 2 жыл бұрын
Хорошо и понятно излагает, рекомендую.
@AndroidBroadcast
@AndroidBroadcast 2 жыл бұрын
Спасибо 😏
@valeryklachkov7062
@valeryklachkov7062 3 жыл бұрын
Кирилл, спасибо за библиотеку! Вчера заиспользовал в своём проекте и очень доволен. Приятная библиотека, хорошая работа была проделана. Единственное, что неочевидно - каналы уведомлений всё так же приходится создавать руками
@AndroidBroadcast
@AndroidBroadcast 3 жыл бұрын
Буду рад услышать обратную связь. Библиотека все еще в разработке, могут быть баги
@tequilaonelove
@tequilaonelove 3 жыл бұрын
Большое спасибо за видео, хотелось бы увидеть еще выпуски про Service() , вместе с применением этих самых уведомлений: 1) Запуск и остановка Service() с корректным взаимодействием с уведомлениями и работа в background. 2) Как правильно убирать/запускать/обновлять уведомление, чтобы не получить ANR из-за "закрученных гаек" Android'а или из-за случайно( или нет) забытой разработчиком остановкой работы сервиса в background и есть ли какие то хаки? Из своего опыта есть история, длинною в жизнь.. о применении к уведомлению стиля, например androidx.media.app.NotificationCompat.MediaStyle(), который в свою очередь тащит за собой MediaSession и другие надстройки и костыли, для того чтоб уведомление и текст начал вычисляться и окрашиваться из "LargeIcon" в который собственно отправляется Bitmap в виде обложки музыкальной композиции..И это просто боль)) . После всех настроек и подготовки, код готового Notification.Builder в конечном итоге стал дико огромным... Да и плюс еще PendingIntent'ы, которые привязывают кнопки управления плеером (Play/Pause, Previous, Next) и т.д. В конечном итоге развернул всё в модуле Koin и спрятал, чтоб глаза больше не видели...И вроде бы всё хорошо, но за всё время использования и тестирования работы уведомлений, так до конца и не стало понятно, как разрешить или запрещать смахивать уведомление свайпом (Например смахивать только когда воспроизведение остановлено, и запретить это при активном воспроизведении). На что именно влияют флаги START_NOT_STICKY, STAR_STICKY и др.., возвращаемые методом onStartCommand() в Service и что будет если вернуть вместо флагов строку super.onStartCommand(...) ? При этом после того как убрали уведомление (или до этого?), необходимо не забыть остановить работу в background, либо вовсе убить сервис, иначе можно получить ANR (может произойти случайно, на разных версиях ОС, и не понятно что именно привело к этому, так как краш-лог не очень информативен) опять таки из-за закрученных гаек Android'ом, о работе сервиса в background. В общем сделать нужный и правильный билдер , + вывести уведомление с внешним видом который требуется, + всё это без обращения к customViews стало головной болью и оставило долгозаживающие шрамы в памяти..
@AndroidBroadcast
@AndroidBroadcast 3 жыл бұрын
По поводу темы Service я подумаю, но мне кажется что лучше будет раскрыть фоновую работу в современной Android разработке. История - супер! Очень нравится когда слышишь реальные проблемы
@sonicCat
@sonicCat 3 жыл бұрын
По поводу запрета смахивания уведомления если аудио проигрывается, достаточно подробно написано в официальной доке: developer.android.com/guide/topics/media-apps/audio-app/building-a-mediabrowserservice. Т.е. достаточно запустить foreground service, который подразумевает наличие уведомления. Если сделать все как там написано и обработать нажатие на кнопки как описано здесь developer.android.com/guide/topics/media-apps/audio-app/mediasession-callbacks уведомление будет смахиваться только если аудио не проигрывается. Сам по этому гайду player писал.
@iv2649
@iv2649 3 жыл бұрын
Спасибо за интересный обзор! Единственное, в нем не хватило упоминаний про режим DOZE и как с ним жить. Возможно это тема для отдельного обсуждения, но было бы интересно услышать твое мнение и подход к этой "проблеме".
@AndroidBroadcast
@AndroidBroadcast 3 жыл бұрын
Doze - это про работу приложений в режими экономии энергии, а видео было про API уведомлений. Возьму на заметку тему про эту тему
@alekseishcherbakov785
@alekseishcherbakov785 3 жыл бұрын
передал в ivi =)
@AndroidBroadcast
@AndroidBroadcast 3 жыл бұрын
Спасибо!
@pavloffme
@pavloffme 2 жыл бұрын
странно, почему-то нет доступа к Библиотеке Android Notification DSL, просто не скачивается в проект
@AndroidBroadcast
@AndroidBroadcast 2 жыл бұрын
Проверь руководство по настройке github.com/androidbroadcast/Android-Notification-DSL
@ruslanerdenoff7866
@ruslanerdenoff7866 3 жыл бұрын
Добрый день, спасибо большое за информацию и библиотеку. Столкнулся с такой проблемой, что приложение получает FCM сообщения но через 15 минут уходит в background там оно стопится и даже FCM сообщения не приходят, пробовал запрашивать permission на отключение "оптимизация батареи" чтобы в whitelist добавить и чтобы Doze не было, но проблему не решило, можете пожалуйста подсказать как здесь быть :( P.S. запрос на включены ли уведомления есть)
@AndroidBroadcast
@AndroidBroadcast 3 жыл бұрын
Сходу не скажу. Надо знать версию ОС, производителя и пр. аспекты. Каждый вендор делает кучу своих независимых оптимизаций
@dimka11ggg
@dimka11ggg 3 жыл бұрын
Что делать с Meizu, Xiaomi и другими системами где, уведомления не приходят без кучи действий со стороны пользователя (включить уведомления, включить фоновый режим, отключить оптимизацию энергопотребления и т.д. и т.п.)
@AndroidBroadcast
@AndroidBroadcast 3 жыл бұрын
Включать в приложение инструкцию для пользователя как из включить, по аналогии как это с браузера и делают
@alexandernifanin7366
@alexandernifanin7366 3 жыл бұрын
Большое спасибо! Не успел прослушать до конца, может быть, упоминалось: 1) Раньше значки были монохромными, задавались бело-прозрачным PNG через .setSmallIcon(R.drawable.ic_notification_icon). Сейчас приложения стали выдавать цветные значки. Как это сделать? Также замечал, что цветной значок при неправильной установке на одних устройствах выглядел уменьшенным, на других мог быть белым квадратом. 2) Есть проблема, что на старых устройствах (Android 4) при получении 10 уведомлений они выстраиваются в ряд в StatusBar. На более свежих Андроидах больше 2 уведомлений группируется. 3) Можно сделать разное поведение уведомлений при многократном получении. Например, добавлять в очередь или заменять уведомление более свежим. 4) В Андроиде сделано так, что если открыли приложение из уведомления (открыли активность с параметрами из intent), то мы переходим к какому-то экрану (взятому из intent). Если затем выйти из приложения и открыть его через меню (два раза нажать на квадратную кнопку), оно стартует опять с теми же параметрами и опять переходит к этому экрану. Интересно, это как-то отменяется? Ведь экран уже может быть неактуальным (например, нельзя смотреть информацию по заявке, т.к. она отменена). Наверное, придётся делать проверки в коде. 5) Вы упомянули про notification и data. Это тоже интересная тема, т.к. с доставкой уведомлений много мороки. Как лучше поступать - слать data или notification + data? 6) Есть Silent-уведомления и целый раздел работы с чатами через пуши. 7) Разные производители телефонов могут препятствовать доставке пушей. Иногда время доставки увеличивается до 15 минут.
@AndroidBroadcast
@AndroidBroadcast 3 жыл бұрын
1) Цвет значков зависит от производителя устройства. Google делает их всегда монохромными, а вот тот же Samsung цветными 2) Есть группировка уведомлений в API, но может быть и часть системой делаться 3) Из коробки такого нет, только если вы сами будете управлять этим по id уведомлений 4) Управлять этим можно через специальные флаги в Intent, также можно запустить на Activity из уведомления, а послать Broadcast, который запустит Acitvity 5) Если у вас простые уведомления - notification, если вам нужны не только уведомления или более сложная логика построения их - data 6) Не понял.Что за "Silent уведомления"?
@alexandernifanin7366
@alexandernifanin7366 3 жыл бұрын
@@AndroidBroadcast Silent push notification. Сперва они появились на iOS. Возможно, для бэкенда ещё есть проблема в разделении пушей по ОС. На web не слать, на iOS - так, на Андроид - так.
@AndroidBroadcast
@AndroidBroadcast 3 жыл бұрын
В Android они были сколько я помню Push уведомления
@alexandernifanin7366
@alexandernifanin7366 3 жыл бұрын
@@AndroidBroadcast Недавно узнал, что уведомления могут сигнализировать не только о том, что они доставлены или прочитаны, но и о том, что их смахнули, не открывая. Странно, что об этом почти нет информации и мало кто использует.
@AndroidBroadcast
@AndroidBroadcast 3 жыл бұрын
Да, вообще плохо используют возможности (
@user-ee9pg9kd8f
@user-ee9pg9kd8f 3 жыл бұрын
8
@denisk3852
@denisk3852 2 жыл бұрын
Спасибо за либу
@AndroidBroadcast
@AndroidBroadcast 2 жыл бұрын
Она только заброшена, но надо к ней вернуться
Как выбрать поддерживаемую версию Android: minSdk, targetSdk, compileSdk
20:01
Android Broadcast. Все об Андроид разработке
Рет қаралды 5 М.
Миграция с LiveData на Coroutines Flow
25:02
Android Broadcast. Все об Андроид разработке
Рет қаралды 29 М.
бесит старшая сестра!? #роблокс #анимация #мем
00:58
КРУТОЙ ПАПА на
Рет қаралды 3,4 МЛН
Получилось у Вики?😂 #хабибка
00:14
ХАБИБ
Рет қаралды 6 МЛН
Khó thế mà cũng làm được || How did the police do that? #shorts
01:00
Binder - как устроена работа с несколькими процессами в Android
56:44
Android Broadcast. Все об Андроид разработке
Рет қаралды 25 М.
Новости мобильной разработки 2024.2
35:19
Android Broadcast. Все об Андроид разработке
Рет қаралды 2,9 М.
Android. Пишем приложение - будильник.
23:08
Sergey Arkhipov Java Tutorials
Рет қаралды 30 М.
Роман Елизаров - Корутины в Kotlin
59:04
JPoint, Joker и JUG ru
Рет қаралды 62 М.
Распознавание лиц и поз за 40 минут. Денис Неклюдов, Lyft
46:34
Android Broadcast. Все об Андроид разработке
Рет қаралды 10 М.