Это история о том, как я выпустил в свет свой небольшой продукт на весьма нишевый девайс, но ведь все когда-то начинается с малого не так ли?
Почему Pebble
Эти часы проходили со мной около восьми лет. За это время компания успела обанкротится и несколько раз сменить владельцев, но как оказалось это не конец.
Как я начал делать вотчфейсы
Этот дух восстающего из пепла стартапа и общий подъем в комьюнити вдохновил меня на то чтобы сделать свой небольшой продукт для этой системы, тем более мне как раз хотелось попробовать вайбкодинг.
Пока я разбирался, как всё устроено, успел сделать несколько вотчфейсов. С каждым новым проектом приходило лучшее понимание воркфлоу – определился со стеком, разобрался, как эффективнее работать с эмулятором, и наконец подружился с GitHub. С этими знаниями я подошёл к созданию своего последнего, на момент написания статьи, вотчфейса.
Детали
Самой простой задачей было сделать внешний вид: к этому моменту у меня уже был макет в Figma, и я понимал, как лучше пользоваться нейронкой, чтобы ускорить перенос визуала в код.

Но просто перенести картинку было бы скучно. Мне хотелось сделать что-то, что передавало бы дух самой Pebble, поэтому я принялся добавлять детали.
Анимация запуска
Хотелось добиться эффекта, когда при включении вотчфейса по всей сетке в рандомных местах начинают загораться пиксели, и из этого хаоса постепенно проявляются цифры – спустя множество итераций идея все же воплотилась – стоит сказать, что большая часть времени была потрачена именно в попытках оптимизировать и отполировать анимацию.
Вибропаттерн
Далее мне хотелось, чтобы анимация давала небольшую физическую отдачу, как Haptic на технике Apple. В качестве референса вибропаттерна я взял одну из оригинальных вибраций Pebble OS1 и сильно ее кастомизировал. В результате получился паттерн из едва заметных постукиваний, который по ощущениям точно совпадает с анимацией – её таймингами и пейсом.
Настройки
Pebble SDK позволяет кастомизировать почти любой элемент вотчфейса, если разработчик это заложил. Я выделил несколько опций, которые точно должны быть: 24/12-часовой формат времени, возможность отключить вибрацию/анимацию и выбор темы.
После небольшого ресёрча я заметил, что некоторым пользователям не хватает вибро-индикации прошедшего часа – классической функции цифровых часов. Решил тоже её добавить: теперь проигрывается короткий едва ощутимый паттерн, который аккуратно сигнализирует, что стукнул следующий час.
Отдельно поработал над видом страницы настроек. Вместо голого HTML, который обычно встречается в конфигурациях вотчфейсов, я постарался привести все к более привычному современному пользователю интерфейсу.
Выпуск в свет
Я остался доволен полученным результатом и решил поделиться вотчфейсом с комьюнити и выложить его в стор2.
Чтобы чуть поднять охват и убедится, что багов нет3 я написал сообщение в коммьюнити владельцев Pebble в Discord и несколько человек даже поделились фотографиями своих часов с моим вотчфейсом.

В целом реакция была положительной и я подумал почему бы не запостить про это в Twitter – перед сном решил набросать небольшое сообщение, отметил аккаунт Эрика Магиковски и нажал на кнопку “Post”.

Что я планирую делать дальше
Я думаю о том, чтобы реализовать еще несколько вотчфейсов из моей Figma в код, также у меня есть идея сделать темплейт для конфигуратора вотчфейса базирующийся на легковесном web-фреймворке Astro, чтобы любой желающий смог быстро набросать аккуратный интерфейс настроек вотчфейса.
Footnotes
-
Это стало возможно благодаря тому, что систему в начале этого года опенсорснули и я смог найти код конкретного вибропаттерна.
-
Название вотчфейса – General Magic – отсылка к одноимённой компании, стартапу из 1990-х, который ещё до BlackBerry и iPhone придумал то, что позже стало называться мессенджером и смартфоном. Её основателями были выходцы из раннего Apple — Энди Херцфельд, Билл Аткинсон, Джоанна Хоффман и Сьюзан Кэр. Кстати, очень советую документалку про них.
-
Один баг все же выявился – на старых моделях из 2014 – анимация проигрывалась в несколько раз медленее чем задумывалось – об этом мне написал один пользователь на странице issue в GitHub. Пришлось слегка упростить ее для Сlassic, так как их технические характеристики были гораздо слабее тех что есть в Pebble Time и они просто не тянули анимацию.