Рассказываем, как инициативная группа R&D red_mad_robot создала лаконичное и красивое приложение для управления временем с использованием Live Activity и Dynamic Island. Его уже можно скачать в AppStore.
Кто такие R&D
Инициативная группа, которая отслеживает, исследует и тестирует технологические тренды, помогает проектным командам, усиливает проекты и делает новые на основе свежих фичей платформ. Подробно о работе команды и результатах мы рассказали в этом материале.
Осенью 2022 года команда R&D прорабатывала новые фичи iOS 16 и думала, что можно на них прикрутить.
Решили, что пора бы изучить, что такое Live Activity и Dynamic Island. И в итоге пошли так глубоко, что зацепили весь WidgetKit. Первое, что реализовали на их основе, — это ROBODORO, приложение, которое поможет пользователю попробовать себя в роли личного тайм-менеджера и потестировать принцип помодоро.
В команду проекта вошли трое: iOS-разработчик Петя Тартынских и экс-дизайнеры интерфейсов Алина Игнатьева и Кристина Широкова.
Таймер на основе механики помодоро — не первая идея, которая пришла в голову команде. Ребята брейнштормили и придумывали, что можно вывести на виджет. Среди идей были такие:
1_
Отображать в Live Activity сбор денег на подарки. В виджете показана сумма и прогресс-бар — на нём можно видеть прогресс.
2_
Отслеживать котировки криптовалют.
3_
Следить за статусом задач. На экране висит плашка задачи, на ней видно, на каком она этапе, — например, у аналитика, в ожидании согласования и т. д.
Но самым удобным и понятным вариантом с Live Activity показался таймер помодоро. На его основе команда решила сделать полноценное приложение. После этого Алина Игнатьева стала накидывать концепт приложения.
Как работали и что получилось
Дизайнеры и разработчики работали в плотной связке, но в первую очередь прорабатывали дизайн-концепцию. Было важно найти баланс между простотой реализации и пользой. Чтобы функций хватало для удобства пользования, но при этом была не очень сложная и долгая реализация.
Сначала мы с Кристиной прорабатывали UX/UI, а потом созванивались с Петей и уточняли, какие есть ограничения, — что можно сделать, а что нельзя. Так же делали, когда возникали вопросы по поводу особенностей Live Activity и Dynamic Island, — тоже спрашивали разработчиков.
Сначала это был простой таймер, состоящий из одного экрана с отображением времени и кнопками, — старт, пауза, стоп.
Но хотелось облегчить жизнь роботам, поэтому остановились на полноценном трекере активности, куда они могли бы вносить свои задачи, а потом точно записывать в Watcher — программу для отслеживания рабочего времени. И поэтому нужно было отобрать и задачи.
Было важно сделать не очень просто, но и не слишком усложнить, поэтому команда искала рабочие решения. Например, так было с хранением данных. Данные в ROBODORO хранятся всего неделю — и это непривычно.
Конечно, было бы здорово хранить все свои таски за все периоды, но для этого понадобились бы специальные фильтры, а это потребовало бы большей работы с точки зрения дизайна, UX и разработки.
Поэтому в приложении есть предупреждение для пользователя о том, что данные хранятся только неделю:
Есть экран с двумя показателями:
со средним временем, затраченным на задачи в неделю,
с общим количеством времени на текущий момент.
У всех таймеров, которые мы смотрели в качестве референсов, огромный сложный бэкенд. А мы решили отделаться малой кровью и выводить эти два виджета — средний дневной фокус и общее количество фокусных минут. Надеемся, что в дальнейшем модуль статистики будет расширяться и обретёт более информативные формы.
Цветовое решение приложения выбирали не как на рабочих проектах, продумывая смыслы до мелочей, а на вкус дизайнера. Подложки с паттернами взяли из другого проекта, где они не пригодились, чтобы разграничить фокус, брейк и лонг-брейк.
Работа заняла около двух месяцев. В конце декабря согласовали все макеты, а в конце января 2023 года уже выкатили бета-версию.
При запуске приложения есть небольшой онбординг на английском языке, который поясняет, кто мы такие, что и зачем сделали.
После онбординга — настройки параметров таймера, количества сессий и размера «помидоров». Можно указать и название задачи.
Например, ввожу название «Делаю макеты», ставлю таймер, и он показывает, сколько ты был в фокусе конкретно по этой задаче. И будет легче внести эти сведения в Watcher — видно, что целый час ты занимался конкретным проектом.
Если ошибся или опечатался в названии задачи, её можно удалить. Удаление происходит не по свайпу, как обычно, а по тапу: об этом есть специальная подпись для пользователя — она появляется при первом запуске приложения.
Плюс такой практики ещё и в том, что дизайнер не зависит от арт-директора. Моё включение было только в том, чтобы помочь с каким-то вопросом, а всё остальное Алина делала сама, и мне кажется, что это классная прокачка для дизайнера любого уровня.
В процессе работы над приложением обнаружили два существенных ограничения в интерактивной работе виджетов. Первое заключалось в том, что любое нажатие на кнопку на Live Activity и Dynamic Island открывало основное приложение. И хотя в стандартном таймере или проигрывателе от Apple это предусмотрено, у нас на тот момент не было возможности это обойти. Второе ограничение связано с изменением состояния виджетов.
Изменения происходят в двух случаях: или идут сигналы от основного приложения, что подразумевает, что оно активно и развернуто прямо сейчас, или приходит специальный пуш с сервера. Сейчас у нас нет серверной части, а весь поинт Activity в том, что оно отображается на заблокированном экране, когда iOS приостанавливает сигналы от активных приложений. Поэтому пришлось смириться с тем, что при достижении таймера в активити нулевой отметки цвет фона никак автоматически не изменяется.
Вероятно, в будущем добавятся возможности по обновлению состояний Live Activity и Dynamic Island.
Таймер работает в свёрнутом режиме, и оставшееся время отображается в Live Activity и Dynamic Island. Есть интерактивные кнопки, которые ставят его на паузу.
Когда таймер доходит до нуля, телефон пиликает и вибрирует — это опционально, можно выключить.
Что дальше
В середине января 2024 года мы выкатили приложение в AppStore. Все довольны и процессом, и результатом. Обычно на проектах много ограничений, а в задачах команды R&D — полная свобода действий, энтузиазм и вдохновение.
Есть небольшой бэклог задач, который планируем реализовать. Например, сделать так, чтобы можно было проваливаться в карточку задачи или запускать те таски, которые уже начаты. И сделать отдельный модуль статистики — по дням и неделям. А ещё есть идея сделать целый набор мини-приложений от red_mad_robot и выкладывать их хабом — следите за обновлениями.
Над материалом работали:
текст — Ника Черникова,
редактура — Виталик Балашов,
иллюстрации — Юля Ефимова.