Где свет? Айтишник создал приложение, извещающее о наличии света дома: вот как оно работает
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).