Як моніторити відключення світла з новим додатком «Де світло»
Усі статті, обговорення, новини про Mobile — в одному місці. Підписуйтеся на телеграм-канал!
Досить недавно в мене виникла одна ситуація, яка і надихнула мене розробити додаток.
На районі, де я живу в Києві (Осокорки) вимкнули світло. А в мене ще й таска, яку планував завершити в той день, і як раз потрібен нормальний інтернет (мобільний сильно просідає в такі моменти). Тож вирішив їхати до товариша на Оболонь.
І от, майже доїжджаючи до квартири товариша, на його районі теж вимикають світло. Мобільний звʼязок просів так, що навіть зателефонувати було не можливо, а в той момент це було дуже для мене важливо.
Повертатись до себе — це, знову ж, час, та й я не знав, чи ввімкнули там світло. Вирішили шукати місцину, де є і світло, і інтернет. Знайшли.
І от говоримо з друзями про те, типу, як було б класно, якби був додаток, який може сповіщати, коли в тебе вдома є світло чи ні.
Розробка
Першу версію я почав робити ще в четвер ввечері. Тоді була зроблена маленька частинка, бо після робочого дня хотілось тро[и розвантажитись, вирішив продовжити в суботу.
Повноцінна розробка почалась на вихідних. Я побачив топік на DOU, де розробники обговорюють софт для iOS, за допомогою якого можна автоматизувати телефон, і там були інструкції, які базовому користувачу можуть здатись складними.
Цей був квест на 24 години. Я не спав всю ніч, в неділю додаток вже було розроблено і відтестовано. Зареєстрував домен. Відправив додаток на публікацію в Google Play.
Фічі
Основний принцип роботи додатка дуже простий. Він просто моніторить, чи отримує телефон живлення від розетки, і на основі цих даних повідомляє по SMS про те, чи заряджається зараз телефон. Перетворіть свій додатковий смартфон в датчик для моніторингу наявності енергозабезпечення у вас вдома.
В процесі розробки зʼявилась ідея, щоб це був не просто додаток, а ціла спільнота.
Наразі додаток має такі фічі:
- може сповіщати користувача про те, що зʼявилось або вимкнулось світло (використовуючи SMS, що при поганому звʼязку, коли вимикають світло, більш стабільний канал, чим якщо це робити, використовуючи інтернет);
- можливість додати декілька телефонних номерів, на які будуть відправляти оповіщення;
- за бажанням користувач може долучитись до спільноти та переглядати на карті, де є світло в режимі реального часу. Ця функція працює по принципу взаємодопомоги. Надайте додатку доступ анонімно поширювати вашу геолокацію на сервер, щоб бачити на карті статуси, автоматично надані іншими користувачами додатка, які дозволили поширювати геолокацію;
- простий та інтуїтивно зрозумілий інтерфейс;
- не потребує реєстрації та є безкоштовним. Все прозоро. Просто встанови і користуйся.
Технічна складова
Додаток написаний на мові Dart (framework: Flutter).
При встановленні додатка користувачеві пропонується дозволити роботу в фоновому режимі, щоб операційна система не завершувала процес.
Коли користувач додає телефонний номер, йому буде запропоновано надати також доступ для відправлення SMS-повідомлень, які смартфон буде відправляти у випадку зміни статусу енергозабезпечення.
Також в додатку є можливість переглядати дані на карті. Ці дані формуються наступним чином: коли користувач дозволив доступ до геопозиції, то, окрім SMS, на вказані номери ще буде відправлено запит на сервер ось такого формату:
{
'latitude': 50.4016823,
'longitude': 30.2456267,
'isCharging': true,
'date': 2022-11-07T06:43:59+00:00,
}
При перегляді карти, навпаки, зображаємо найближчі маркери, які були передані іншими користувачами.
Бекенд розробив на Python. Взяв за основу код, який використовував на своєму іншому проєкті (стаття тут).
Наразі вся база — це лише дві таблиці (одна для історії статусів, інша просто містить в собі маркери та має структуру як JSON в запиті на сервер, за виключенням ще одного поля, що містить первинний ключ).
Також використовую RabbitMQ. Коли сервер отримує маркер, то передає його на сервер черг, який слухає Consumer і записує маркер в базу.
Детальніше тут: desvitlo.online
Лінк на додаток в Google Play
Станом на 07.11.2022 15:36, час подачі цього тексту на DOU, додаток ще публікується в Google Play
31 коментар
Додати коментар Підписатись на коментаріВідписатись від коментарів