Как пет-проект помогает программисту развиваться и отдыхать от рутины
Расскажи, как появилась идея твоего пет-проекта
Я заинтересовался умным домом ещё до прихода в Яндекс. Мне нравилась идея Google Nest Hub — планшета, который управляет домом. Кроме управления устройствами он может контролировать сон, проигрывать аудио- и видеоконтент. Мне всегда хотелось чего-то подобного, но Google Nest Hub не адаптирован под российских пользователей: часть функций не работает, русского языка нет.
Я подумал, что могу и сам сделать приложение, которое будет мне нравиться. Появились азарт и желание разобраться, как всё устроено. Так возник мой проект «Капитолий».
Твой проект связан с умным домом Яндекса или это отдельная разработка?
Это отдельная разработка, но мой проект не автономен, завязан на сервисах Яндекса. Если грубо, это надстройка над системой, ещё одна «поверхность», с которой можно управлять умным домом Яндекса. Я пользуюсь реверс-инжинирингом: потихоньку разбираю приложение «Дом с Алисой», смотрю, что и как устроено.
У системы умного дома есть огромное комьюнити и много открытых разработок, на которых строится моё приложение. Например, есть проект Home Assistant — большая платформа для умного дома. У них есть несколько интеграций с Яндексом, оттуда я многое беру себе. Все эти проекты — Open Source, можно пользоваться ими как источником вдохновения или подсматривать реализацию интересных фишек.
А как в компании относятся к тому, что ты работаешь над своим проектом?
Я получаю огромное количество поддержки, в том числе от людей, которые занимаются умным домом. Несколько раз публиковался на внутренних ресурсах Яндекса, рассказывал о том, чем занимаюсь.
Я не создаю конкурента приложению Яндекса и не планирую зарабатывать на этом. Для меня это возможность отвлечься от рутины и почувствовать детский азарт. Пет-проект приятен тем, что в нём нет бизнес-ограничений. Можно заниматься исключительно фичами, реализовывать любые свои задумки, пробовать новые технологии. Уехало что-то на три пикселя — да и ладно.
Что уже получилось реализовать в приложении и какие планы?
Сейчас в приложении поддерживается управление всеми устройствами, кроме камер: лампочки включаются, кондиционеры дуют, датчики передают показания. Пока главная боль — камера. Сложно найти хорошую, которая бы без проблем пробрасывалась в экосистему Яндекса. Также из «Капитолия» можно управлять Яндекс Станцией и слушать музыку. Но хочу встроить Яндекс Музыку в само приложение.
В планах — настроить локальное управление умным домом. На это есть большой запрос от пользователей. Как сейчас работает умный дом? Мы говорим колонке с Алисой: «Включи свет на кухне». Она распознаёт текст и отправляет команду на сервер Яндекса. Тот распознаёт производителя устройства и отправляет ему запрос. Производитель отправляет команду лампочке включиться. Это долго и нестабильно.
Функция локального управления — когда устройства находятся в одной сети Wi-Fi и общаются напрямую между собой. К этому я и стремлюсь. Ещё занимаюсь редизайном: хочется, чтобы визуально тоже было красиво. Например, недавно добавил цветовое оформление — когда всё приложение окрашивается в цвет обоев. Пользователи оценили.
Когда ты находишь время на всё это?
Поначалу я тратил всё своё свободное время — пока не начал ругаться с супругой. В том числе уделял проекту все выходные. Потом понял, что начинаю выгорать, и снизил темп.
У меня нет чёткого графика, когда я должен сесть за проект. В этом, кстати, большой плюс пет-проектов: ты не скован никакими рамками. Если нет ресурса, можешь ничего не делать.
У твоего приложения уже есть пользователи?
Да, у меня маленький канал в «Телеграме» — на 200 человек. В основном те, кто уже интересовался умным домом и пробовал разработки. Хочется больше пользователей, не хватает обратной связи и запроса на фичи. Фидбек сильно подстёгивает продолжать работу над проектом.
Что порекомендуешь тем, кто тоже хочет сделать пет-проект, ищет идеи и думает, с чего начать?
Всё начинается с того, что есть проблема, но нет готового решения. Например, для меня было важно, чтобы на кухне стояло устройство, которое работает так, как мне хочется.
Главное — не нужно выдавливать из себя желание и мотивацию. Иначе такой проект быстро надоест. В первую очередь это творчество и закрытие реальной собственной боли. У каждого есть проблемы, которые можно автоматизировать. Посмотрите вокруг себя: что хотелось бы сделать качественнее и приятнее?
Здорово, когда получается попробовать новые технологии. Таким образом люди из моего окружения изучали новые языки программирования. А ещё некоторые так перешли из веба в мобильную разработку. Они попробовали перевести в другой формат то, что у них есть. В итоге словили большой кураж и остались в новой сфере.
Если не будет ресурсов — ну и ладно, никто вас не поругает. Не нужно бояться, что рано или поздно проект закончится. У всего есть жизненный цикл. Если это принесло удовольствие и фан, значит, всё было не зря.