Проблема із застосунками реального часу і відсутність попередження у описі
Усі статті, обговорення, новини про 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 режими, повідомляйте про нюанси особливо коли йдеться про моменти від яких може залежати чиєсь життя, не працюйте з технологіями як чорний ящик та не чекайте неможливого
18 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів