Де світло? Айтішник створив застосунок, що сповіщає про наявність світла вдома: ось як він працює
Mobile & Web Software Engineer Сергій Дуб створив застосунок, який допомагає дистанційно дізнаватись, чи є вдома світло.
Mobile & Web Software Engineer Сергій Дуб створив застосунок, який допомагає дистанційно дізнаватись, чи є вдома світло.
«Недавно в мене виникла одна ситуація, яка й надихнула мене розробити додаток. На районі, де я живу в Києві (Осокорки), вимкнули світло. А в мене ще й таска, яку планував завершити в той день, і якраз потрібен нормальний інтернет (мобільний сильно просідає в такі моменти). Тож вирішив їхати до товариша на Оболонь. І от, майже доїжджаючи до квартири товариша, на його районі теж вимикають світло. Мобільний звʼязок просів так, що навіть зателефонувати було неможливо, а в той момент це було дуже для мене важливо. Повертатись до себе — це, знову ж таки, час, та і я не знав, чи ввімкнули там світло. Вирішили шукати місцину, де є і світло, і інтернет. Знайшли. І от говоримо з друзями про те, типу, як було б класно, якби був застосунок, який може сповіщати, коли в тебе вдома є світло», — описав він процес створення апки на форумі DOU.
Першу версію Сергій почав робити ще в будні. Тоді була зроблена маленька частинка, бо після робочого дня хотілось трохи розвантажитись, вирішив продовжити в суботу.
Повноцінне розроблення почалося на вихідних. Це був квест на 24 години. Розробник не спав усю ніч, у неділю додаток уже було розроблено та протестовано. Зареєстрував домен. Відправив застосунок на публікацію в Google Play.
Основний принцип роботи застосунку дуже простий. Він просто моніторить, чи отримує телефон живлення від розетки, і на основі цих даних повідомляє через SMS про те, чи заряджається зараз телефон. Перетворіть свій додатковий смартфон у датчик для моніторингу наявності енергозабезпечення у вас удома.
У процесі розроблення зʼявилась ідея, щоб це був не просто застосунок, а ціла спільнота.
Наразі застосунок має такі фічі:
Додаток написаний на мові Dart (framework: Flutter).
При встановленні додатка користувачеві пропонується дозволити роботу в фоновому режимі, щоб операційна система не завершувала процес.
Коли користувач додає телефонний номер, йому буде запропоновано надати також доступ для відправлення SMS-повідомлень, які смартфон буде відправляти у випадку зміни статусу енергозабезпечення.
Також у застосунку є можливість переглядати дані на карті. Ці дані формуються наступним чином: коли користувач дозволив доступ до геопозиції, то, окрім SMS, на вказані номери ще буде відправлено запит на сервер ось такого формату:
При перегляді карти, навпаки, зображаємо найближчі маркери, які були передані іншими користувачами.
Бекенд розроблено на Python. Узяв за основу код, який використовував на своєму іншому проєкті.
Наразі вся база — це лише дві таблиці (одна для історії статусів, інша просто містить в собі маркери та має структуру, як JSON у запиті на сервер, за винятком ще одного поля, що містить первинний ключ).
Також використовую RabbitMQ. Коли сервер отримує маркер, то передає його на сервер черг, який слухає Consumer і записує маркер в базу.
Детальніше тут: desvitlo.online
Лінк на додаток у Google Play (станом на 07.11.2022 застосунок ще публікується в Google Play).