Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Добавить Push-уведомления #11

Open
kulakovt opened this issue May 22, 2017 · 6 comments
Open

Добавить Push-уведомления #11

kulakovt opened this issue May 22, 2017 · 6 comments

Comments

@kulakovt
Copy link
Member

kulakovt commented May 22, 2017

Приложение должно оповещать пользователя о появлении новых встреч. События должны фильтроваться согласно списку выбранных Сообществ (#6). При появлении нового события пользователю должно приходить Push-уведомление. А так же на иконке приложения должны появиться цифры с количеством предстоящих событий. Также необходимо рассмотреть дополнительные платформо-специфичные возможности информирования (имена, фото спикеров на Тайле).

Уведомление должно приходить только после того, как новая Встреча сохранилась в Приложении. Т.е. не должно быть ситуации, когда пользователь переходит по Уведомлению, а в приложении новый митап не отображается ввиду устаревшей версии Аудита.

Технически, список всех Встреч хранится в Audit → Meetups.

У пользователя должна быть возможность в любое время включить и отключить Push-уведомления в Настройках приложения.

@kulakovt
Copy link
Member Author

Для этой услуги обязательно нужен сторонний сервер. Например:
https://azure.microsoft.com/en-us/pricing/details/notification-hubs/
Базового плана (500 устройств) нам для полноценной работы не хватит. Поэтому фичу Push-уведомлений можно будет сделать платной.

@kulakovt
Copy link
Member Author

kulakovt commented Feb 3, 2018

Ещё есть App Center Push SDK.

@kulakovt kulakovt modified the milestone: Новости Feb 3, 2018
@pfedotovsky
Copy link
Contributor

@AnatolyKulakov

Нужно решить, как мы обновляем контент в приложении.

Есть два вида серверных push уведомлений - silent (пользователь не знает, что пришел пуш) и обычные (UI с уведомлением пользователя). Доставка silent уведомлений под iOS не гарантируется (https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/pushing_updates_to_your_app_silently).

Под Android прямо сейчас механизм следующий:

  • при обновлении Audit (коммит в master), посылается silent push уведомление
  • приложение под Android обновляет контент
  • если обновление успешно, то показывается пуш о новом митапе

Тут есть минусы:

  • под iOS такой подход не сработает из-за негарантированной доставки
  • возможно, что митап еще не готов к публичного анонсу после коммита в master
  • приложение само должно понимать, что появился новый митап и показывать соотв. уведомление. Но что если добавилось несколько митапов?

Я предлагаю следующее:

  • сделать silent push для iOS & Android, которые вызывают обновление контента в приложении. Никакого уведомления пользователю не показывается
  • посылать обычный пуш вручную, когда митап готов к анонсу. При получении пуша приложение будет проверять версию и, если нужно, обновляться. Есть риск, что обновление упадет, и тогда митапа не будет в приложении. Но на мой взгляд, это лучше, чем если вообще нет уведомления.

@kulakovt
Copy link
Member Author

Мне текущее поведение под Android видится правильным.

  1. Насколько это актуальная проблема? "Не гарантируется" это какой процент потерь в реальном мире? Должна быть статистика или "гарантированный" процент, иначе бы эту функциональность вообще никто не предоставлял.
  2. Если был коммпит в master, это значит что митап готов к публичному анонсу (технически это и есть сам анонс).
  3. Если добавилось несколько митапов, значит нужно показать несколько уведомлений. Это не страшно (при условии что у всех должен быть настрон фильтр Добавить поддержку multi-tenant режима #6), ибо в одном городе такого никогда не бывает.

Не нужен никакой "второй ручной шаг" для посылки уведомления. Это усложнение системы и обременение Оператора, чего хочется избегать.

Мне кажется что текущая стратегия на Android правильная. А опасения на iOS чисто теоретические и на практике не существуют.

@pfedotovsky
Copy link
Contributor

Под iOS доставка ее гарантируется - об этом говорит официальная документация. Как следствие, нельзя гарантировать обновление приложения.

Да, наверное будет везти, но полагаться на это в продакшене я бы не стал. Как минимум, не следует обманывать пользователя и говорить, что теперь всегда будет приходить пуш о новом митапе.

@kulakovt
Copy link
Member Author

Эта гарантия в любом случае будет больше чем надёжность нашего приложения и нашей ифраструктуры. Также это не единственный способ обновления, приложение должно ещё обновляться при открытии. С учётом всего этого, silent уведомлений нам должно хватить с головой.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants