Рассказываем, как инициативная группа R&D red_mad_robot создала лаконичное и красивое приложение для управления временем с использованием Live Activity и Dynamic Island. Его уже можно скачать в AppStore.


Кто такие R&D

Инициативная группа, которая отслеживает, исследует и тестирует технологические тренды, помогает проектным командам, усиливает проекты и делает новые на основе свежих фичей платформ. Подробно о работе команды и результатах мы рассказали в этом материале.

Вот эти люди
Вот эти люди

Откуда взялась идея

Осенью 2022 года команда R&D прорабатывала новые фичи iOS 16 и думала, что можно на них прикрутить.

Решили, что пора бы изучить, что такое Live Activity и Dynamic Island. И в итоге пошли так глубоко, что зацепили весь WidgetKit. Первое, что реализовали на их основе, — это ROBODORO, приложение, которое поможет пользователю попробовать себя в роли личного тайм-менеджера и потестировать принцип помодоро.

Артём Ковалёв, iOS-разработчик red_mad_robot

В команду проекта вошли трое: iOS-разработчик Петя Тартынских и экс-дизайнеры интерфейсов Алина Игнатьева и Кристина Широкова.

Таймер на основе механики помодоро — не первая идея, которая пришла в голову команде. Ребята брейнштормили и придумывали, что можно вывести на виджет. Среди идей были такие:

  1. Отображать в Live Activity сбор денег на подарки. В виджете показана сумма и прогресс-бар — на нём можно видеть прогресс.

  2. Отслеживать котировки криптовалют.

  3. Следить за статусом задач. На экране висит плашка задачи, на ней видно, на каком она этапе, — например, у аналитика, в ожидании согласования и т. д.

Но самым удобным и понятным вариантом с Live Activity показался таймер помодоро. На его основе команда решила сделать полноценное приложение. После этого Алина Игнатьева стала накидывать концепт приложения.

Как работали и что получилось

Дизайнеры и разработчики работали в плотной связке, но в первую очередь прорабатывали дизайн-концепцию. Было важно найти баланс между простотой реализации и пользой. Чтобы функций хватало для удобства пользования, но при этом была не очень сложная и долгая реализация.

Сначала мы с Кристиной прорабатывали UX/UI, а потом созванивались с Петей и уточняли, какие есть ограничения, — что можно сделать, а что нельзя. Так же делали, когда возникали вопросы по поводу особенностей Live Activity и Dynamic Island, — тоже спрашивали разработчиков.

Алина Игнатьева, экс-дизайнер интерфейсов red_mad_robot

Сначала это был простой таймер, состоящий из одного экрана с отображением времени и кнопками, — старт, пауза, стоп.

Так изначально выглядел таймер
Так изначально выглядел таймер

Но хотелось облегчить жизнь роботам, поэтому остановились на полноценном трекере активности, куда они могли бы вносить свои задачи, а потом точно записывать в Watcher — программу для отслеживания рабочего времени. И поэтому нужно было отобрать и задачи.

Петя Тартынских, iOS-разработчик red_mad_robot

Так ребята ушли от простого помодоро к более сложному: теперь каждый запуск приурочен к какой-то реальной задаче.

Было важно сделать не очень просто, но и не слишком усложнить, поэтому команда искала рабочие решения. Например, так было с хранением данных. Данные в ROBODORO хранятся всего неделю — и это непривычно.

Конечно, было бы здорово хранить все свои таски за все периоды, но для этого понадобились бы специальные фильтры, а это потребовало бы большей работы с точки зрения дизайна, UX и разработки.

Кристина Широкова, экс-дизайнер интерфейсов red_mad_robot

Поэтому в приложении есть предупреждение для пользователя о том, что данные хранятся только неделю:

Есть экран с двумя показателями:

  • со средним временем, затраченным на задачи в неделю,

  • с общим количеством времени на текущий момент.

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

Алина Игнатьева, экс-дизайнер интерфейсов red_mad_robot

Цветовое решение приложения выбирали не как на рабочих проектах, продумывая смыслы до мелочей, а на вкус дизайнера. Подложки с паттернами взяли из другого проекта, где они не пригодились, чтобы разграничить фокус, брейк и лонг-брейк.

Не было задачи очень подробно прорабатывать концепцию, закладывать глубокие смыслы, что-то с чем-то метчить. Делали это по кайфу, глубоко не вдаваясь. Просто понравился фон и шрифт, взяли в работу.

Кристина Широкова, экс-дизайнер интерфейсов red_mad_robot

Работа заняла около двух месяцев. В конце декабря согласовали все макеты, а в конце января 2023 года уже выкатили бета-версию.

При запуске приложения есть небольшой онбординг на английском языке, который поясняет, кто мы такие, что и зачем сделали.

После онбординга — настройки параметров таймера, количества сессий и размера «помидоров». Можно указать и название задачи.

Например, ввожу название «Делаю макеты», ставлю таймер, и он показывает, сколько ты был в фокусе конкретно по этой задаче. И будет легче внести эти сведения в Watcher — видно, что целый час ты занимался конкретным проектом.

Алина Игнатьева, экс-дизайнер интерфейсов red_mad_robot

Если ошибся или опечатался в названии задачи, её можно удалить. Удаление происходит не по свайпу, как обычно, а по тапу: об этом есть специальная подпись для пользователя — она появляется при первом запуске приложения.

Плюс такой практики ещё и в том, что дизайнер не зависит от арт-директора. Моё включение было только в том, чтобы помочь с каким-то вопросом, а всё остальное Алина делала сама, и мне кажется, что это классная прокачка для дизайнера любого уровня.

Кристина Широкова, экс-дизайнер интерфейсов red_mad_robot

В процессе работы над приложением обнаружили два существенных ограничения в интерактивной работе виджетов. Первое заключалось в том, что любое нажатие на кнопку на Live Activity и Dynamic Island открывало основное приложение. И хотя в стандартном таймере или проигрывателе от Apple это предусмотрено, у нас на тот момент не было возможности это обойти. Второе ограничение связано с изменением состояния виджетов.

Изменения происходят в двух случаях: или идут сигналы от основного приложения, что подразумевает, что оно активно и развернуто прямо сейчас, или приходит специальный пуш с сервера. Сейчас у нас нет серверной части, а весь поинт Activity в том, что оно отображается на заблокированном экране, когда iOS приостанавливает сигналы от активных приложений. Поэтому пришлось смириться с тем, что при достижении таймера в активити нулевой отметки цвет фона никак автоматически не изменяется.

Петя Тартынских, iOS-разработчик red_mad_robot

Вероятно, в будущем добавятся возможности по обновлению состояний Live Activity и Dynamic Island.

Таймер работает в свёрнутом режиме, и оставшееся время отображается в Live Activity и Dynamic Island. Есть интерактивные кнопки, которые ставят его на паузу.

Когда таймер доходит до нуля, телефон пиликает и вибрирует — это опционально, можно выключить.

Что дальше

В середине января 2024 года мы выкатили приложение в AppStore. Все довольны и процессом, и результатом. Обычно на проектах много ограничений, а в задачах команды R&D — полная свобода действий, энтузиазм и вдохновение.

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


Над материалом работали:

  • текст — Ника Черникова,

  • редактура — Виталик Балашов,

  • иллюстрации — Юля Ефимова.

Чтобы ничего не пропустить, следи за развитием цифры вместе с нами:

Да пребудет с тобой сила роботов! ????

Комментарии (0)