×

Проблема із застосунками реального часу і відсутність попередження у описі

Усі статті, обговорення, новини про Mobile — в одному місці. Підписуйтеся на телеграм-канал!

Сьогодні з’явився застосунок «Повітряна тривога» на ios та андроїд що попереджає про повітряну тривогу, паблішер Ajax systems, зроблено конторою з Хмельницького Stfalcon LLC

Дуже потрібна річ, але я не можу не поділитись своїми думками з тим, що з цим не так:

Опис:

«Встановіть застосунок Повітряна тривога, щоб миттєво отримувати сповіщення системи цивільної оборони у вибраній області України. Застосунок не потребує реєстрації та сповіщає про повітряну, хімічну, техногенну або інші види тривог системи цивільної оборони навіть у беззвучному режимі смартфона.

...

Це єдиний застосунок, що підтримує критичні сповіщення. Це означає, що звук тривоги буде завжди надходити з максимальним рівнем гучності смартфону. Для цього обов’язково надайте усі відповідні дозволи застосунку після встановлення. Важливо! Критичні сповіщення можна вимкнути в будь-який момент в налаштуваннях застосунку.»

І вже 500 000 інсталів, вельми круто.

Але...

Судячи з опису люди очікують на надійне оповіщення, але насправді все не так. В принципі немало однозіркових відгуків вже про це сигналізують.

Я пишу тільки про андроїд застосунок, бо саме тут маю досвід 10+ років, хоча в айфонах не думаю що сильно щось відрізняється.

Скачавши apk та кинувши його у Android Studio можна впевнитись, що весь застосунок це просто фасад над Firebase Cloud Messaging без ніяких Survivability прийомів, а це значить, що доставка пушей може приходити у будь-який час, як зручно 1)планувальнику пушей гугл, а також 2) політики енергозбереження на телефоні.

1) проблема у тому що у гугл є жорсткі ліміти на пуш повідомлення і часто про це не задумються, плюс гугл боти що бачать велику кількість пушей у нового застосунку можуть блокувати масову розсилку перевіряючи чи це не спам фрод

2) З введенням у андроїд Doze and Standby із швидким пробудженням застосунку з’явились великі проблеми, особливо це було помітно на Xiaomi але потім розповсюдилось на всі популярні бренди, навіть сайт з цією проблемою є: dontkillmyapp.com

Поки застосунок не заробив репутацію останні андроїди використовують різні кошики програм, що мають різний пріоритет, так от високий пріорітет лише у месенжерів типу фейсбук по блату — це можна подивитись у налаштуваннях оптимізацій енергозбереження, всі інші застосунки зазвичай песимізуються якщо їми весь час не користуватись.

До чого я веду — чи то альтруїзм чи то бажання похайпитись, але розробник не попереджає, а може і не усвідомлює що звичайні пуш нотифікації у поточній реалізації річ вельми примхлива, а задача яку хоче вирішити застосунок потребує реалтайму, чого firebase аж ніяк не гарантує. І про це потрібно застерігати, щоб люди як мінімум шукали додаткові джерела про повітряну небезпеку.

Що б можна було зробити

1) запустити Foreground Service з системним повідомленням і додати не тільки пасивний прийом повідомлень, але й періодичний пуллінг поточного стану(да, буде жерти батарею бо потрібно блокувати глибокий сон системи)

2) скоріш нереалістичний, але гарантований правильний варіант рішення задачі — єдиний хто має realtime режим роботи на android — це Google Play Services — Google використовує його щоб нотифікувати про стихійні лиха, відслідкувати втрату телефону, та також було використано для аналізу розповсюдження covid. Тобто домовитись з Google про апі та використовувати вже готову інфраструктуру екстренного повідомлення

3) наскільки я знаю у мобільних операторів теж є схожий функціонал зашитий у сім карту

Може ще є вендор специфічні api але за такий проміжок часу таке не зробити.

Хочу зробити підсумок — розробники, розрізняйте Realtime/Schedule режими, повідомляйте про нюанси особливо коли йдеться про моменти від яких може залежати чиєсь життя, не працюйте з технологіями як чорний ящик та не чекайте неможливого

👍ПодобаєтьсяСподобалось1
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Є API з якого можна тягнути інфу?

Також шукав API, але здається все що є це брати дані з телеграм каналу — t.me/air_alert_ua
На карті тривог також звідти беруть дані — war.ukrzen.in.ua/alerts

Таки якесь диво сталось і пункт 2 запрацює, більше не потрібно буде ніяких застосунків чи телеграм чатів! helping Ukraine

Якщо не рахувати, що вони будуть отримувати від нас алерти, то дійсно не потрібно буде більше )

поправте, будь ласка, з Хмельницького, а не Хмельницька )

Я досі не розумію, чому оповіщення не робиться через старий, добрий смс.

Пілікне, в кращому випадку, і заглохне. А тут таки верещить.

Тільки я не про застосунок говорив, а про самих мобільних операторів, які можуть слати смс з тривогою. Застосунок є тільки у тих, хто його встановив. Оператори ж могли б охватити одразу майже 100% населення.

Київстар вже запустив через Cell Broadcast

Так, сьогодні в Києві тривога була 6 разів, а застосунок спрацював всього двічі. Другий відбій прийшов через 2 години післі відбою, оголошеного на телеграм-каналі КМДА.

Також слід додати, так як багато хто ддосить рашку, інтернет канали перевантажені і тут чим ближче сервер до клієнтів тим надійніше, але глобальний файрбейс тільки сповільнюється

Налагоджували процес роботи з оператором. Зараз має бути ок

Дякую. Розглянем

Долаток розроблений за участі команд Stfalcon і Ajax Systems (технічна реалізація їхня)

Бачив ваш пост, що публічне API поки не планується і цілком розумію імовірну причину — запобігти зловживанню API та перевантаженню. Однак парсити повідомлення з телеграмівського каналу @air_alert_ua теж дуже ненадійно, а мати додаткове джерело повідомлень в режимі реального часу в такому форматі, який було б легко опрацьовувати, було б дуже круто.

Чи не розглядали ви, скажімо, ідею створення ще одного каналу — скажімо, @air_alert_ua_json (кєк) або щось подібне? Впевнений, українські деви дуже б оцінили таку річ. :) Моя ціль — написати відкрите безкоштовне API для отримання інформації про тривоги, не перевантажуючи існуючі сервіси. Фінансуватиму з власних коштів.

Update: Накидав отаку річ — alerts.com.ua. Дані беруться з телеграм-каналу @air_alerts_ua, однак парсити області поки що по-людськи не вдається, оскільки немає де взяти коректний список областей/громад/районів/міст/etc, та й формат повідомлень може змінюватись і щоразу ламатиме API. Буду вдячний за будь-який внесок з вашого боку!

Сорі, тільки побачив цей комент. Я так розумію, що питання вже неактуальне )?

Підписатись на коментарі