malahov.io

Три часа до PWA

После подачи заявки не остановиться: ещё три часа — и приложение стало устанавливаемым PWA, днём его увидела жена, вечером — друзья. И первые тесты на живучесть записи.

Автор: Georg Malahov

Заявка ушла вчера вечером, 1 марта, но остановиться я не смог: ночью просидел ещё три часа. Зато сделал из приложения PWA — Progressive Web App, когда веб-приложение устанавливается на телефон или десктоп и ощущается как нативное, без адресной строки и прочих элементов браузера. Заодно починил зум, который в мобильном приложении не нужен, научил поле даты открывать календарь вместо клавиатуры на полэкрана, прибил заголовок чата сверху, а по нажатию на микрофон запись теперь стартует сразу — и сразу загружается при остановке. Плюс коррекции для iOS, чтобы системные элементы ничего не перекрывали. Напоследок вычистил из демо-пользователя мусор и пошёл спать.

Смысл всей этой ночной возни простой: от «достал телефон» до «говорю» должно быть минимум движений. Иконка на домашнем экране, тап — открылось приложение, тап по микрофону — уже пишет. Каждый лишний клик на этом пути стоит дороже любой фичи.

Утром показал обновлённое приложение жене. А вечером мы были в гостях у друга, и получилась незапланированная презентация. Демонстрировал с локальной машины, и без VPN не работала загрузка файлов — то есть показ вышел неполный. Но реакция всё равно удивила: люди не ожидали, сколько всего уже сделано и что базовый сценарий покрыт от начала до конца — наговорил, сохранилось, нашлось, ответило. Один из друзей сразу стал думать вслух про следующие шаги: кому это продавать и как развивать. Приятно, когда твой проект начинают обсуждать как продукт, а не как игрушку.

Между делом я проверял приложение на живучесть — так, как будет пользоваться нормальный человек, а не я. Заблокировал телефон на середине записи и продолжил говорить: как будто бы пишет. Переключился из браузера в Telegram — и вот тут поймал неприятное: запись останавливается, хотя визуально всё продолжается. Человек будет говорить в пустоту и потеряет сказанное. Для продукта, чья главная ценность — «наговорил и забыл», это худший из возможных багов, и я пока не знаю, как правильно его решить: браузер засыпает и режет фоновую запись, тут нужны какие-то обходные пути.

Из этих выходных я выношу простую вещь: за два дня продукт прошёл путь от телеграм-бота до устанавливаемого приложения, которое не стыдно показать. Дальше — довести до ума мелочи из списка и ждать ответа по заявке. И побольше таких показов и тестов: баг с умирающей записью я бы в одиночку за клавиатурой не поймал никогда.