4.11.4 Логика Синхронизации пользовательских данных

advertisement
Chaos Control High Level Design
Версия продукта: 1.0
Последнее изменение: 09.10.2011
www.tarasov-mobile.com
Содержание
1. Назначение документа
2. О продукте
3. Данные с точки зрения пользователя
3.1
3.2
3.3
3.4
3.5
3.6
Задачи
Проекты
Папки
Контексты
Сбор задач и идей в Chaos Box
Разница между Chaos Box и проектом «Одиночные действия»
4. Дизайн основных функций приложения
4.1 Главный экран приложения
4.1.1
Описание элементов главного экрана
4.1.2
Отличние главного экрана для iOS от остальных платформ
4.2 Нижний тулбар приложения
4.2.1
Функционал тулбара
4.2.2
Исключения
4.3 Отображение задач
4.3.1
Типы задач
4.3.2
Основные элементы UI экрана отображения задач
4.3.3
Отображение элементов в Chaos Box
4.4 Отображение проектов и папок
4.4.1
Описание элементов UI списка проектов и папок
4.5 Отображение контекстов
4.6 Создание задач
4.6.1
Редактирование названия задачи
4.6.2
Добавление примечания к задаче
4.6.3
Альтернативный пример организации контролов в окне создания задачи
4.6.4
Многострочность задач
4.6.5
Назначение проекта/контекста задаче
4.6.6
Задание дат начала/окончания задачи
4.7 Создание проектов
4.7.1
Организация контролов меню создания проектов
4.7.2
Редактирование названия и цели проекта
4.7.3
Альтернативный вариант организации контролов
4.8 Создание контекстов
4.8.1
Интерфейс создания контекста
4.9 Создание папок
4.10 Отображение меню настроек приложения
4.11 Механизм регистрации и синхронизации
4.11.1 Данные, необходимые для создания аккаунта
4.11.2 Механизм начала регистрации аккаунта
4.11.3 Алгоритм регистрации пользователя
4.11.4 Логика синхронизации пользовательских данных
4.11.5 Синхронизация нескольких клиентов
4.11.6 Настройки синхронизации
4.12 Отображение помощи
4.13 Выполнение задач и проектов
5. Общий WorkFlow
5.1 Вызов основных команд главного меню
5.1.1
Главный экран -> Chaos Box
5.1.2
Главный экран -> Due Today
5.1.3
Главный экран -> Проекты
5.1.4
Главный экран -> Контексты
5.1.5
Главный экран -> Поиск
5.2 Работа нижнего тулбара
5.2.1
Любой экран -> Домой
5.2.2
Главный экран –> Добавить
5.2.3
Chaos Box -> Добавить
5.2.4
Due Today -> Добавить
5.2.5
Меню проектов -> Добавить
5.2.6
Конкретная папка -> Добавить
5.2.7
Конкретный проект -> Добавить
5.2.8
Меню контекстов -> Добавить
5.2.9
Конкретный контекст -> Добавить
5.2.10 Любой экран -> Синхронизация
5.2.11 Любой список задач -> Фильтры -> Доступные
5.2.12 Любой список задач -> Фильтры -> Все
5.2.13 Любой список задач -> Фильтры -> Просроченные
5.2.14 Любой список задач -> Фильтры -> Завершенные
5.2.15 Любой экран -> Добавить в Chaos Box
6. Предопределенные данные
6.1 Предопределенные папки
6.1.1
Папка «Работа»
6.1.2
Папка «Личное
6.2 Одиночные действия
6.3 Due Today
6.4 Chaos Box
6.5 Контексты
1. Назначение документа
Данный документ призван описать базовый функционал, интерфейс и WorkFlow версии 1.0 GTD – менеджера,
предназначенного для мобильных платформ iOS (iPhone и iPad), Android (смартфоны), Symbian^3 и WP7. Описание
дизайна основных функций приложения относится конкретно к рассматриваемой версии приложения и может быть
изменено в последующих версиях продукта.
Назначение данного документа состоит в том, чтобы разработчики четко понимали каким образом должно
функционировать и выглядеть мобильное приложение. Тем не менее, дизайн программы составлен на примере iOSверсии продукта и не является законченным вариантом дизайна в плане расположения и функционирования конкретных
контролов на конкретных экранах.
При разработке мобильного приложения для отличных от iOS платформ следует учитывать специфику данных
конкретных платформ при реализации описанного функционала, а также разработке UI приложения.
2. О продукте
Chaos Box – мобильный клиент, призванный обеспечить пользователя инструментарием, позволяющим использовать
систему управления делами и временем GTD (Getting Things Done) на своем мобильном устройстве. Основными
функциями приложения являются:
1)
2)
3)
Объединение задач в Проекты - комплексные задачи, состоящие из элементарных тасков, объединенных
единой конечной целью
Объединение задач в Контексты – наборы разрозненных задач, объединенных едиными условиями выполнения
(конкретное место выполнения, конкретное событие, конкретное время и т.д.)
Быстрый сбор разрозненных задач, идей и заметок в одно место, в котором они впоследствии обрабатываются,
группируются, категоризируются и т.д.
Помимо реализации данного инструментария требуется также реализовать механизм синхронизации данных с
сервером, позволяющий пользователям использовать несколько клиентов на разных устройствах, сохраняя возможность
работы с одними и теми же данными. Таким образом, в целом архитектура сервиса в очень общих чертах выглядит
следующим образом:
Рисунок 1 - Архитектура сервиса
3. Данные с точки зрения пользователя
В данном разделе описывается суть данных, для обработки, отображения и хранения которых предназначен сервис. С
точки зрения пользователя, мобильное приложение работает со следующими данными: задачи, проекты, папки и
контексты. Подробнее о реализации этих сущностей далее в этом разделе.
3.1 Задачи
Задачи – это элементарные составные единицы Проектов. Строго говоря, Задача является единственной достаточной
сущностью, которая необходима для использования приложения. В частности, если пользователь хочет использовать
приложение как простой ToDo-список, то он может просто создавать задачи, не привязывая их ни к контекстам, ни к
проектам. Тем не менее, приложение любые не отсортированные по проектам задачи автоматически помещает в
дефолтный проект «Одиночные действия» при условии, что задача не была создана в Chaos Box. Таким образом, задача
не может не принадлежать какому-то конкретному проекту.
Рисунок 2 - Пример отображение некатегоризированных задач в проекте «Одиночные действия»
Задачи имеют следующие свойства:
Свойство
Присутствие
Пояснение
Название
Обязательно
Примечание
Проект
Опционально
Обязательно
Контекст
Опционально
Дата начала
Опционально
Дата окончания
Опционально
Название задачи. Например «Купить
продукты на ужин»
Текстовое пояснение задачи. Используется
для различных пояснений.
Ссылка на проект, которому принадлежит
задача
Ссылка
на
контекст,
которому
принадлежит задача
Дата, начиная с которой выполнение
задачи актуально
Дата, по истечении которой задача
считается просроченной
При создании задача всегда помещается либо в конкретный проект, в котором она создается, либо в Chaos Box, либо в
проект «Одиночные действия» (см. пункт 3.6)
3.2 Проекты
Проект – это составная задача, которая может быть разбита на одношаговые подзадачи. С точки зрения использования
приложения, проекты представляют собой директории, в которых помещаются задачи, объединенные единой конечной
целью. При этом важно понимать, что термин «Проект» имеет весьма отдаленное отношение к классическому
пониманию проекта, принятого в IT. Задача «Подготовиться к собеседованию», например, - это проект, поскольку
разбивается на множество более мелких задач вроде «Прочитать о компании-работодателе» и «Распечатать карту с
местом расположения офиса». Методика разбиения составных задач (проектов) на элементарные подзадачи идет из
GTD и подробнее описана в документе «Базовые положения GTD». Таким образом, например, может выглядеть список
проектов и содержимое одного из них на мобильном устройстве:
Рисунок 3 - Пример отображения списка проектов и списка задач конкретного проекта
* Здесь и далее синий кружок – обозначение прикосновения пользователя к соответствующему контролу (Tap).
Проекты имеют следующие свойства:
Свойство
Присутствие
Пояснение
Название
Обязательно
Цель проекта
Опционально
Дата начала
Опционально
Дата окончания
Опционально
Название проекта.
Текстовое пояснение цели проекта.
Используется для различных пояснений
аналогично полю «Примечание других
сущностей»
Дата, начиная с которой выполнение
проекта
актуально
(не
передается
вложенным в проект задачам)
Дата, по истечении которой проект
Опционально
Контекст по умолчанию
считается просроченной (не передается
вложенным в проект задачам)
Контекст,
который
по
умолчанию
присваивается
всем
задачам,
создаваемым в данном проекте
3.3 Папки
Папки – это, фактически, каталоги, объединяющие несколько проектов, имеющих какой-то общий признак. Например
«Рабочие проекты» и «Домашние проекты» удобнее хранить отдельно и иметь возможность скрывать неактуальные в
данный момент. Папки необходимы в связи с тем, что при большом количестве созданных проектов (от 20-30 штук, что
весьма вероятно), навигация по приложению усложняется, и данный метод организации упрощает визуальное
представление. Чтобы избежать сложной системы вложенности (проекты, например, можно было бы вкладывать друг в
друга бесконечно), предлагается принять следующую систему организации папок и проектов:





Каждая задача может принадлежать только одному конкретному проекту
Каждый проект может принадлежать только одной папке
Папка обязана находиться в корне каталога проектов
При этом проект не обязательно должен принадлежать какакой-то конкретной папке, в этом случае он
находится в корне каталога проектов на одном уровне с доступными папками
Проекты не могут в себя включать другие проекты
Использование папок не является обязательным и необходимо лишь при надобности более удобной структуризации
проектов. Так, например, выглядит сплошной список всех проектов:
Рисунок 4 - Пример отображения списка проектов без папок
А вот так такой же список проектов может выглядеть с папками:
Рисунок 5 - Пример отображения списка проектов с использованием папок
Из свойств папки имеют только название.
3.4 Контексты
Контексты – имеют почти все отличительные черты проектов за исключением, что объединяют в себе задачи, не
обязательно имеющие общую конечную цель выполнения, а объединенные скорее определенными обстоятельствами
выполнения – в определенном месте, в определенное время и т.д. (см. документ «Базовые принципы GTD»). Не могут
быть вложены в папки.
Рисунок 6 - Пример отображения списка контекстов и списка задач конкретного контекста
Из свойств контексты имеют только название и примечание
3.5 Сбор задач и идей в Chaos Box
Одной из основнополагающих идей GTD является необходимость записывать все возникающие идеи, а также задачи
сразу по мере их появления. Предполагается, что для идей и спонтанно возникающих в течение рабочего дня задач
действует принцип «самая острая память тупее самого тупого карандаша», а их запись автоматически исключает
вероятность того, что забудется какая-то задача или ценная идея.
При этом часто возникает необходимость записи задачи на ходу или в процессе работы над чем-то другим, когда нет
времени задумываться о том, является ли задача, собственно, задачей или проектом. Нужно просто быстро записать
задачу, а заниматься ее обработкой с выставлением соответствующих аттрибутов (подзадачи, даты выполнения,
контексты и т.д.) можно как-нибудь в другой раз. Местом, куда помещаются такие спонтанно созданные записи и
является Chaos Box (см. раздел «Зачем нужен Chaos Box» документа «Основные положения GTD»).
С точки зрения данной версии мобильного приложения, Chaos Box – это обычный проект, со всеми аттрибутами проекта.
Разница лишь в том, что Chaos Box выделен отдельно от всех проектов и с точки зрения представления модулей
мобильного приложения является отдельной сущностью, как и Проекты и Контексты:
Рисунок 7 - Главный экран приложения
3.6 Разница между Chaos Box и проектом «Одиночные действия»
Конкретно в рассматриваемой версии мобильного приложения Chaos Box и «Одиночные действия» содержат задачи, не
принадлежащие каким-либо конкретным проектам. Однако, это две разные сущности по следующим причинам:



В последующих версиях продукта Chaos Box будет содержать, помимо задач, также и заметки, а также иную
текстовую и медиа-информацию
В то время, как Chaos Box содержит элементы, подлежащие последующей обработке (перенос в другие проекты,
преобразование в проект, перенос в иные системы хранения информации и т.д.), «Одиночные действия»
содержат задачи, которые пользователю сложно отнести к каким-либо проектам в силу их природы.
Chaos Box не отображается в списке проектов, «Одиночные действия» - отображаются (оба проекта нельзя
удалить)
4. Дизайн основных функций приложения
В этом разделе описывается дизайн конкретных функций мобильного приложения с описанием соответствующих
экранов и логики работы приложения. Данное описание составлено на примере iOS-версии мобильного приложения,
поэтому для других платформ должно восприниматься как общая рекомендация. Конечный результат при этом для всех
платформ может быть отредактирован в соответствии с особенностями данных платформ.
4.1 Главный экран приложения
Главный экран приложения для iOS выглядит следующим образом:
Рисунок 8 – Главный экран приложения с пояснениями
4.1.1 Описание элементов главного экрана
1 - Название приложения
2 – Пункт меню Chaos Box. При нажатии на данный пункт меню пользователь попадает в список элементов, находящихся
в Chaos Box. В данной версии продукта список элементов Chaos Box ничем не отличается от обычного списка задач
проекта (фактически это показ задач проекта Chaos Box). В дальнейших версиях, однако, Chaos Box будет содержать не
только задачи, но и заметки, а также медиа-информацию (фото, аудио, видео), поэтому внешний вид данного раздела
будет изменен.
3 – Индикатор количества элементов в Chaos Box. Если он пустой, то цифра не показывается (ни в коем случае не «0»).
4 – Пункт меню Due Today. При нажатии пользователь попадает в экран, отображающий список задач, которые должны
быть выполнены сегодня, а также просроченные задачи. При этом сортировка выглядит следующим образом: сначала
просроченные задачи, а потом задачи с датой выполнения сегодня.
5 – Индикация количества задач в Due Today. Первое число – общее число задач, включая просроченные и с датой
выполнения сегодня, а число в скобках – число просроченных задач. Если просроченных задач нет, то показываем одно
число. Если задач нет вообще, то число не показываем.
6 – Пункт меню Проекты. При нажатии пользователь попадает в корневой раздел проектов
7 – Пункт меню Контексты. При нажатии пользователь попадает в раздел контекстов
8 –Пункт меню Поиск. При нажатии пользователь попадает в раздел поиска:
Рисунок 9 – Диалог поиска
Сортировка результатов поиска выглядит следующим образом:
Папки
Проекты
Контексты
Задачи
При этом они визуально определяются с помощью графических элементов, расположенных в начале каждой строки
(рисунки для папки, проекта и контекста и чекбокса для задачи) как показано на рисунке 2. На каждый элемент можно
нажать и либо попасть в меню просмотра задач проекта/контекста, либо проектов папки, либо отредактировать задачу.
9 – Пункт меню Настройки. При нажатии пользователь попадает в соответствующий раздел
10 – Пункт меню Помощь. При нажатии пользователь попадает в соответствующий раздел
11 – Основной тулбар приложения (см. раздел 4.2)
4.1.2 Отличие главного экрана для iOS от остальных платформ
Особенностью iOS является тот факт, что у нас нет никаких дополнительных панелей инструментов помимо тулбара. Во
всех остальных платформах они существуют в том или ином виде, поэтому для WP7, Symbian и Android пункты меню
«Настройки» и «Помощь» можно убрать на вспомогательные панели инструментов, чтобы не загромождать стартовый
экран. Там где это возможно, вероятно, есть смысл убрать из основного меню также и Поиск. В любом случае, судьба
пунктов меню «Поиск», «Настройки» и «Помощь» для указанных платформ решается в индивидуальном порядке.
Остальные же пункты меню обязательны для главного экрана независимо от платформы.
4.2 Нижний тулбар приложения
Нижний тулбар приложения является основным набором инструментов пользователя, предоставляющим доступ к
большинству основных функций приложения, а также некоторым навигационным функциям. Принципиально, чтобы
тулбар был именно нижним, а не верхним, потому как если эти управляющие элементы разместить сверху, то это
существенно снизит UX (надо будет каждый раз тянуться до кнопок).
Функционал панели сводится к тому, чтобы обеспечить пользователя доступом к следующим функциям:





Домой – возвращение на главный экран приложения
Добавить элемент – добавление задачи/проекта/контекста/папки в зависимости от текущего контекста
приложения (в меню просмотра проекта добавляем задачу, в меню просмотра папки добавляем проект, в меню
просмотра контекстов добавляем контекст и т.д.)
Синхронизация – ручной вызов синхронизации
Фильтрация – механизм вызова фильтра, определяющего какой тип объектов показывается в данном контексте
приложения (завершенные/незавершенные задачи и т.д.). Подробнее см. описание механизма фильтрации в
разделах 4.2.1 и 5.2.11-5.2.14
Быстрое добавление объекта в Chaos Box – одна из основ GTD, заключающаяся в возможности быстро добавить
любую запись (задачу, идею, информацию) в Chaos Box для последующего разбора
В связи с тем, что мобильные платформы имеют некоторые различия в принципах навигации, а также ограничения по
максимальному количеству кнопок на тулбаре, конечный вариант тулбара для каждой из ОС индивидуален, однако
нужно стремиться к максимально удобному для пользователя предоставлению доступа к описанным выше функциям.
Тулбар приложения должен быть постоянным и одинаковым на всех экранах приложения, поскольку обеспечивает
доступ к основным его функциям. Некоторые из кнопок тулбара в определенных случаях будут неактивны (например,
Фильтры в главном экране приложения), что вызывает соблазн заменить их для данных экранов другим функционалом.
Тем не менее, лучше их сделать неактивными, чем сбивать пользователя с толку постоянно меняющимися кнопками.
4.2.1 Функционал тулбара
Рисунок 10 – Кнопки нижнего тулбара
1 - Кнопка «Домой»
Возвращает пользователя на главный экран приложения. На главном экране приложения неактивна.
2 - Кнопка «Добавить объект»
В зависимости от контекста выполняет одно из следующих действий:
Текущее местоположение
Главное меню
Меню «Проекты» (корневая директория проектов)
Папка проектов
Проект
Меню контекстов
Контекст
Chaos Box
Due Today
Остальные
Функция
Вызывает модальный диалог с возможностью выбора
создания новой задачи (в этом случае ей по умолчанию
назначается проект «Одиночные действия»), нового
проекта, нового контекста (см. раздел 5.2.2)
Вызывает модальный диалог с возможностью выбора
создания новой папки или нового проекта (см. раздел
5.2.5)
Вызывает диалог создания нового проекта, которому по
умолчанию присвоена текущая папка (см. раздел 5.2.6)
Вызывает диалог создания новой задачи, которой по
умолчанию присвоен данный проект (см. раздел 5.2.7)
Вызывает диалог создания нового контекста (см. раздел
5.2.8)
Вызывает диалог создания новой задачи, которой по
умолчанию присвоен данный контекст, а также проект
«Одиночные действия» (см. раздел 5.2.9)
Вызывает диалог создания новой задачи, проект которой
по умолчанию Chaos Box (см. раздел 5.2.3)
Вызывает диалог создания новой задачи, проект которой
по умолчанию «Одиночные действия», а дата выполнения
задана сегодняшним числом (см. раздел 5.2.4)
Неактивна
В случаях, когда кнопка неактивна (в Настройках, хелпе и т.д.) нужно заменять соответствующую иконку на специальный
ее вариант (затененный).
3 - Кнопка «Синхронизировать»
Вызывает синхронизацию. При нажатии на кнопку в случае, если пользователь еще не залогинился, автоматически
показывает диалог регистрации/логина. Кнопка активна всегда.
4 - Фильтры
Показывает модальное окно с одной из опций фильтрации текущего представления задач и проектов. Служит для того,
чтобы можно было легко посмотреть, например, только просроченные задачи или только доступные задачи. Или в том
случае, когда есть потребность посмотреть только выполненные задачи. Настройка фильтров одна глобальная и
действует для всех экранов приложения (не нужно ее отдельно запоминать для каждого проекта).
Фильтры, которые используются в приложении (см. также разделы 5.2.11-5.2.14):
Фильтр
Все
Просроченные
Доступные
Оставшиеся
Завершенные
Описание
Показывает все задачи и проекты, включая уже
завершенные
Показывает все просроченные задачи (дата выполнения
находится в прошлом)
Показывает все просроченные задачи, а также задачи, дата
начала которых задана и находится в прошлом, либо не
задана, а дата окончания в будущем или сегодня или не
задана.
Все задачи, кроме завершенных
Показывает все завершенные задачи
Фильтры применяются только к задачам (папки, контексты, а также невыполненные проекты показываются всегда.
Выполненные проекты показываются при выборе фильтров Завершенные и Все).
Дефолтный фильтр – Оставшиеся. При этом независимо от того, какой пользователь фильтр выбрал последним, при
новом запуске приложения активен всегда дефолтный фильтр.
Если пользователь находится на экране приложения, не подразумевающим отображение пользовательских данных
(Главный экран, настройки и т.д.), то кнопка неактивна.
5 - Поместить в Chaos Box
Вызывает функцию записи задачи/идеи/информации в Chaos Box. Фактически происходит вызов диалога создания
задачи, но с предопределенным проектом Chaos Box (см. 5.2.15). Кнопка активна всегда.
4.2.2 Исключения
Особенностью операционных систем iOS, Android и WP7 является наличие четко определенных положений кнопки
«Назад», применяемой для навигации по приложению. При этом находится она не на нижнем тулбаре (хардварная
кнопка в Android и WP7, софтварная в iOS). В Symbian же с недавних пор принято кнопку «Назад» помещать на нижнем
тулбаре в том месте, где на рисунке 1 расположена кнопка «Домой». В этом случае пришлось кнопку Домой вынести на
верхний тулбар, а на нижнем на ее месте разместить кнопку «Назад». Подобный подход допускается использовать в
случае необходимости.
4.3 Отображение задач
Задачи могут быть только частью какого-либо проекта (включая Chaos Box и Одиночные действия). При открытии проекта
список задач выглядит примерно следующим образом:
Рисунок 11 – отображение списка задач проекта
На рисунке изображен пример отображение задач проекта «Подготовить описание дизайна мобильного приложения»,
состоящего из 9 задач (на экране уместились 8 из них). Использование шрифтов, цветов и иных параметров отображения
остается на усмотрение разработчика. Данный пример, тем не менее, демонстрирует некоторые элементы логики
отображения задач в зависимости от их параметров. В частности, задачи, имеющие разные статусы активности
отображаются разным цветом. Кроме того, важной особенностью методики отображения названий как задач, так и
проектов/контекстов/папок является стремление всегда показывать название соответствующей сущности целиком, не
обрезая на полуслове длинные названия. Названия сущностей имеют определенное ограничение на длину (см. раздел
4.6), но никогда и нигде не обрезаются – это важный элемент UX, относящийся в равной степени как к задачам, так и к
проектам/контекстам/папкам.
4.3.1 Типы задач
Задачи разного типа имеют различные цветовые обозначения (определяются логикой мобильного приложения без
участия сервера):
●
●
●
●
Просроченные задачи – дата выполнения данных задач находится в прошлом. Выделяются красным цветом
Активные задачи – дата начала задачи находится в прошлом, дата выполнения – сегодня, или в будущем, или
отсутствует. Также к активным задачам относятся задачи без даты начала, но с датой выполнения сегодня.
Выделяются зеленым цветом.
Доступные задачи – не имеют даты начала задачи, дата окончания может как присутствовать, так и
отсутствовать. Исключение – задачи с датой выполнения сегодня, тогда это активная задача. Выделяются
черным цветом.
Неактивные задачи – дата начала задачи находится в будущем. Выделяются серым цветом.
4.3.2 Основные элементы UI экрана отображения задач
Некоторые пояснения к элементам UI окна отображения задач приведены ниже:
Рисунок 12 – элементы UI/UX отображения задач
1 – информация о количестве задач в данном проекте. Показывает количество задач проекта, соответствующее данному
конкретному фильтру. В данном случае учтена специфика iOS-приложений, заключающаяся в том, что кнопка «Назад»
(элемент 2) располагается всегда в левом верхнем углу экрана на верхнем тулбаре, который также содержит и кнопку
«Правка» (элемент 3). При этом, в подобных приложениях обычно на месте количества задач пишут название проекта,
но оно никогда там целиком не умещается. Поэтому название проекта в нашем случае вынесено в элемент 4, а
пустующее место на верхнем тулбаре занято указанием количества задач проекта. Для платформ, отличных от iOS
присутствие данного элемента необязательно.
2 – кнопка возврата на предыдущий экран (аналогично кнопке «Назад»). В данном конкретном случае при нажатии на
эту кнопку пользователь попадает в папку «Работа», в которой находится данный рассматриваемый проект «Подготовить
описание мобильного приложения». Для платформы Symbian данный элемент находится на месте кнопки «Домой»
нижнего тулбара, а для WP7 и Android не используется вообще, поскольку эти платформы оснащены хардварной
кнопкой «Назад».
3 – Кнопка редактирования текущих задач (в первоначальной версии лишь позволяет удалить выбранные задачи). При
нажатии список изменяется в соответствии со стандартным поведением аналогичных приложений для iOS:
Рисунок 13 – редактирование списка задач
Важно обратить внимание, что кнопка «Правка» в данном случае меняет свое название на «Готово», нажатие на которую
приводит к выходу из данного режима. Нажатие на красный кружок ведет к удалению задачи. В остальном, поведение
приложения в данном режиме не меняется. Что касается платформ, отличных от iOS, то удаление задач может
осуществляться иными способами (с помощью контекстного меню, например).
4 – Область отображения названия проекта, в котором сейчас находимся. Название проекта может содержать до трех
строк текста (аналогично пользователь может ввести максимум три строки текста в названии при создании проекта).
Нажатие на эту область никак не обрабатывается.
5 – Кнопка показа цели проекта (окно показа цели проекта полностью повторяет аналогичное, вызываемое при
редактировании цели проекта и описываемое в разделе 4.7.2).
6 – Чекбокс, который служит для того, чтобы отметить, что задача выполнена. При нажатии на него задача исчезает, если
пользователь предварительно не выбрал фильтр «Все». Аналогично при показе задач в режиме «Завершенные» данный
чекбокс должен быть уже отмечен (в этом случае, при повторном нажатии на чекбокс задача вновь становится
незавершенной с заданными ранее параметрами) – см. раздел 5.2.12.
7 – Собственно, текст задачи. Может содержать до трех строк текста. В данном случае показан пример просроченной
задачи. Весь текст выделен красным цветом
8 – Дата выполнения задачи. Если задача должна быть выполнена вчера, сегодня или завтра, то пишем соответствующим
словом. В противном случае пишем дату в формате dd.mm.yyyy (в последущих версиях добавим другие варианты
отображения времени).
9 – Пример активной задачи
10 – Пример доступной задачи с заданной датой выполнения
11 – Пример доступной задаче с незаданной датой выполнения (но, возможно, заданной датой начала задачи)
12 – Пример неактивной задачи (с датой выполнения в будущем). В данном примере неудачно подобран цвет, он
должен быть серым
При клике на конкретную задачу вызывается окно редактирования задачи, полностью повторяющее аналогичное из
раздела «Создание задачи» за исключением того, что поля параметров задачи уже заполнены.
4.3.3 Отображение элементов в Chaos Box
В данной версии мобильного приложение список элементов в Chaos Box полностью повторяет по своей сути список
задач любого проекта (см. раздел 5.1.1)
4.4 Отображение проектов и папок
Проекты отображаются следующим образом:
Рисунок 14 – Отображение списка проектов
В данном случае рассматривается список проектов, находящихся в папке «Работа». Для каждого проекта выводится
общее количество задач в проекте (в соответствии с текущим фильтром), а также количество просроченных задач.
4.4.1 Описание элементов UI списка проектов и папок
На данном ресунке изображена корневая директория пункта меню «Проекты», содержащая как папки, так и проекты, не
ассоциированные с конкретными папками:
Рисунок 15 – Отображение списка папок и проектов с пояснениями
1 – верхний тулбар, обладающий почти всеми теми же свойствами, что и аналогичный для задач. Заголовок отображает
название текущего расположения (либо название конкретной папки, в которой находимся, как на предыдущем рисунке,
либо «Проекты»). Нажатие на кнопку «Правка» действует аналогичным задачам образом.
2 – индикатор того, что данный элемент является папкой, кнопкой не является
3 – название папки, а также индикатор количества находящихся в ней проектов
4 – иконка проекта, не является отдельной кнопкой
5 – название конкретного проекта (может содержать до 3 строк текста)
При нажатии на каждый из проектов открывается соответствующий ему список задач, отображающийся как показано в
пункте «Отображение задач».
4.5 Отображение контекстов
Механизм отображения контекстов полностью повторяет механизм отображения проектов за исключением лишь
названий соответствующих лейблов, иконок контекстов и отсутствия дополнительного уровня вложенности в виде папок.
Задачи в контекстах отображаются точно также, как задачи в проектах (см. раздел 5.1.4).
4.6 Создание задач
При создании задачи пользователь должен иметь возможность задать следующие аттрибуты:
Аттрибут
Текст задачи
Примечание к задаче
Дата начала выполнения задачи
Срок выполнения задачи (дата)
Проект
Обязательность
Да
Нет
Нет
Нет
Да
Контекст
Нет
Значение по умолчанию
Нет
Нет
Нет
Значение даты начала выполнения задачи, если есть
Текущий проект, либо Chaos Box, либо Одиночные
действия (см. 4.2.1)
Нет
4.6.1 Редактирование названия задачи
Организация контролов остается на усмотрение разработчика. Ниже приведены примеры и базовые рекоммендации по
организации процесса создания задачи:
Рисунок 16 - редактирование названия задачи
При создании задачи, а также создании проектов/контекстов/папок показывать нижний тулбар необязательно.
4.6.2 Добавление примечания к задаче
Добавление примечания к задаче осуществляется путем вызова экрана редактирования названия и примечания как
показано ниже:
Рисунок 17 - Редактирование название таска и добавление примечания
4.6.3 Альтернативный пример организации контролов в окне создания задачи
В качестве альтернативного примера организации интерфейса создании задачи можно привести соответствующий экран
текущей версии приложения для Symbian:
Рисунок 18 – окно создания задачи в клиенте для Symbian
4.6.4 Многострочность задач
Важно отметить, что при вводе длинного названия задачи необходимо делать переносы на новую строку, делая
название многострочным, а не продолжать отображать одну строку, которая уже не помещается в ширину экрана.
Никогда и нигде не должно быть такой ситуации, что мы показываем название задачи, проекта, контекста и т.д. не
полностью. Если название длинное, то показываем его в несколько строк, ограничивая, при этом, пользователя в
допустимой длине названия на этапе создания. В частности, для названия задачи максимальное число строк – 3 (см.
пример выше). Для примечания ограничение по длине строки выбирается на усмотрение разработчика.
4.6.5 Назначение проекта/контекста задаче
Пример задания проекта/контекста для задачи приведен ниже.
Рисунок 19 - Меню выбора проекта/контекста
В данном случае пользователю сначала предлагается выбор проекта из существующих. Доступно текстовое поле, в
котором пользователь может начать вводить название проекта (список соответствующим образом динамически
изменяется). Если пользователь вводит название, которое отсутствует в списке созданных проектов, то может его тут же
создать (см. иллюстрацию).
4.6.6 Задание дат начала/окончания задачи
Принцип выбора даты начала/окончания задачи предельно прост (для каждой из ОС свои контролы для этого):
Рисунок 20 – выбор дат начала/окончания задачи
4.7 Создание проектов
При создании проектов пользователь имеет возможность задавать следующие аттрибуты:






Название проекта
Цель проекта (в API тоже самое Memo, но по-другому названное в интерфейсе приложения)
Дата начала
Дата окончания
Контекст по умолчанию (для создаваемых в проекте задач)
Папка
4.7.1 Организация контролов меню создания проектов
Аналогично задачам, организация контролов зависит от конкретной мобильной ОС и остается на усмотрение
разработчика. В целом и общем, при создании задач, проектов, контекстов и папок предлагается использовать единую
логику организацию интерфейса, отличающуюся лишь аттрибутами конкретной сущности. Так, например, интерфейс
создания проектов предполагается сделать аналогичным интерфейсу создания задач:
Рисунок 21 – меню создания проекта
При этом выбор дат начала и конца действия проекта, а также выбор контекста по умолчанию и папки проекта
аналогичны описываемому выше механизму выбора проекта для задачи.
4.7.2 Редактирование названия и цели проекта
Важной отличительной особенностью проекта от задачи, контекста и папки является замена «примечания» на «цель
проекта». Впрочем, с точки зрения API, это то же самое текстовое поле memo, что используется для других сущностей.
Рисунок 22 – редактирование названия и цели проекта
4.7.3 Альтернативный вариант организации контролов
В качестве примера также можно рассмотреть текущую реализацию в Symbian-версии. В данном случае примечание к
проекту не вынесено в отдельное окно, а находится под названием проекта. Вообще говоря, можно использовать и тот, и
тот подходы. Решается в индивидуальном порядке для каждой платформы. На рисунке 24 название проекта, кстати,
отображается ровно так, как не должно быть – длинное название не влезло в одну строку.
Рисунок 23 – вариант отображения меню создания проекта
4.8 Создание контекстов
При создании контекстов пользователь имеет возможность задавать следующие аттрибуты:


Название контекста
Примечание
4.8.1 Интерфейс создания контекста
Интерфейс создания контекста максимально упрощен:
Рисунок 24 – создание нового контекста
В данном случае сразу вызываем окно редактирования названия контекста и примечания к нему. Максимальное
количество строк для названия контекста – 2.
4.9 Создание папок
При создании папок проектов пользователь имеет возможность задавать следующие аттрибуты:


Название папки
Примечание
С точки зрения интерфейса, механизм создания папок ничем не отличается от механизма создания контекстов.
4.10 Отображение меню настроек приложения
Меню настроек приложения ничем особенно не примечательно и содержит необходимые настройки, состав которых
определяется спецификой каждой конкретной платформы. В минимальном варианте настройки должны содержать
пункт «Sync options», позволяющий настроить синхронизацию и создать пользовательский аккаунт:
Рисунок 25 – Экран настроек
Также сюда можно помещать любые опции настроек (состав которых будет расширен в последующих версиях).
4.11 Механизм регистрации и синхронизации
Регистрация пользователей необходима с целью осуществления синхронизации данных (задач, проектов, контекстов и
т.д.) с сервером и, соответственно, другими мобильными устройствами, на которых пользователи используют
приложение. При всей важности функционала, тем не менее, для полноценной работы с клиентом регистрация не
обязательна. Нормальная работа клиента должна обеспечиваться и без создания аккаунта пользователя.
4.11.1 Данные, необходимые для создания аккаунта
Для регистрации нового аккаунта пользователя должно быть достаточно лишь его Email'а и пароля. Специфика продукта
(мобильное приложение, ограниченные возможности ввода данных) подразумевает максимальную простоту всех
действий, поэтому лишние телодвижения в виде запроса от пользователей подтверждения регистрации по email, запрос
дополнительных данных, а также необходимость создания/ввода логина, отличного от Email, нежелательны.
4.11.2 Механизм начала регистрации аккаунта
Поскольку синхронизация данных, вообще говоря, функция опциональная, то и регистрация пользователя в системе
должна выполняться лишь в двух случаях: либо при попытке ручной синхронизации, либо в Настройках приложения (см.
рисунок X). В обоих случаях дальнейший порядок действий выглядит как показано на рисунке 27.
4.11.3 Алгоритм регистрации пользователя
Рисунок 26 - Базовая логика механизма регистрации аккаунта
Рисунок 27
Рисунок 28
Рисунок 29
Важно отметить, что при такой логике реализации процесс настройки аккаунта максимально упрощен. Все сделано для
уменьшения количества необходимых со стороны пользователя телодвижений для начала работы независимо от того
есть у него уже аккаунт, нет аккаунта или он забыл пароль от имеющегося аккаунта. В частности, если пароль введен
неправильно, то сразу предлагается выслать его на почту без дополнительных манипуляций. Кроме того, пароль не
скрывается звездочками, поскольку в условиях использования мобильного устройства это только мешает. В данном
случае, жертвуя необходимой лишь 1% гиков секьюрностью, мы упрощаем жизнь подавляющему большинству
пользователей.
4.11.4 Логика Синхронизации пользовательских данных
Параметры синхронизации могут настраиваться в соответствующем разделе настроек, но по умолчанию логика
следующая:



Синхронизация выполняется (в фоне) при старте приложения. При этом важно предусмотреть плавность
интерфейса и непрерывность работы программы, если пользователь уже начал что-то делать
Для Symbian- и Android-версий: синхронизация выполняется с определенным интервалом времени, обновляя
базу в фоне. По умолчанию раз в 60 минут
Для Symbian- и Android-версий: синхронизация выполняется при закрытии приложения, если пользователем
были внесены изменения в базу
4.11.5 Синхронизация нескольких клиентов
Независимо от фактического времени синхронизации клиентов, наиболее актуальными считаются данные, созданные
позже, независимо от того, когда конкретно данный клиент был синхронизирован с сервером. Таким образом, на
стороне сервера и мобильных клиентов необходимо предусмотреть механизм разрешения конфликтов (когда клиент с
устаревшей ревизией имеет, тем не менее, более актуальные данные). Алгоритм синхронизации данных описан в
документе GTD Sync.
4.11.6 Настройки синхронизации
Настройки синхронизации выглядят следующим образом:


Включено/выключено
Когда синхронизировать:
[чекбокс] При запуске
[чекбокс] При выходе*
[Выбор] Периодически: 15 мин, 30 мин, 120 мин, и т.д., не задано*
*Если возможно. В частности в первой итерации iPhone и WP7-версий сделать, вероятно, не получится.
Точное представление настроек остается на усмотрение разработчика. Пример отображения настроек приведен на
рисунке 7:
Рисунок 30 - Настройки синхронизации
4.12 Отображение помощи
Пункт меню помощи представляет собой простой справочник, содержащий несколько статей по аналогии с OmniFocus:
Рисунок 31 – Пункт меню «Помощь» (на примере OmniFocus)
Перечень статей и локализации представлен в документе «Chaos Control Help»
4.13 Выполнение задач и проектов
Задачи в любом хранилище (проект, контекст, Chaos Box, Due Today и т.д.) отмечаются выполненными посредством
стандартного для такого рода приложений отмечания соответствуюдего чекбокса (см. рисунок на Workflow 5.12.4).
Проект же отмечается выполненным посредством соответствующей кнопки в меню редактирования проекта (конкретная
реализация остается на усмотрение разработчика). Если в проекте не остается незавершенных задач, это не приводит к
автоматическому завершению проекта.
5. Общий Workflow
В данном разделе на иллюстрациях показано как приложение реагирует на действия пользователя.
5.1 Вызов основных команд главного меню
Обработка нажатий на кнопки главного меню.
5.1.1 Главный экран -> Chaos Box
5.1.2 Главный экран -> Due Today
5.1.3 Главный экран - > Проекты
5.1.4 Главный экран -> Контексты
5.1.5 Главный экран -> Поиск
5.2 Работа нижнего тулбара
В данном разделе рассматривается логика работы приложения при нажатии пользователем кнопок нижнего тулбара.
5.2.1 Любой экран -> Домой
5.2.2 Главный экран -> Добавить
5.2.3 Chaos Box -> Добавить
5.2.4 Due Today -> Добавить
5.2.5 Меню проектов -> Добавить
5.2.6 Конкретная папка -> Добавить
5.2.7 Конкретный проект -> Добавить
5.2.8 Меню Контекстов -> Добавить
* только без bla bla bla
5.2.9 Конкретный контекст -> Добавить
5.2.10 Любой экран -> Синхронизация
Если пользователь еще не осуществил вход:
Если пользователь уже осуществил вход, то синхронизация выполняется в фоне, значек анимируется (как – обсуждается
индивидуально).
5.2.11 Любой список задач -> Фильтры ->Доступные
5.2.12 Любой список задач -> Фильтры -> Все
5.2.13 Любой список задач -> Фильтры -> Просроченные
5.2.14 Любой список задач -> Фильтры -> Завершенные
5.2.15 Любой экран -> Добавить в Chaos Box
6. Предопределенные данные
Мобильное приложение должно по умолчанию содержать предустановленные проекты/контексты, чтобы пользователь,
во-первых, с первых минут видел что представляет собой функционал, а во-вторых, ознакомился с ним на практике еще
до момента ввода своих собственных данных. Поэтому приложение должно по умолчанию быть с созданными
контекстами вроде «На работе», «Online» и т.д., а также проектами вроде «Изучить Chaos Box». Проекты Chaos Box и
«Одиночные действия» тоже, фактически, являются такими предопределенными проектами.
6.1 Предопределенные Папки
По умолчанию должны быть созданные папки:
6.1.1 Папка «Работа»
Русское название: Работа
Русское примечание: Рабочие проекты
Английское название: Business
Английское примечание: Business Projects
Папка по умолчанию пуста
6.1.2 Папка «Личное»
Русское название: Личное
Русское примечание: Проекты, связанные с семейными делами, личным развитием и так далее
Английское название: Personal
Английское примечание: Family related, self improvement and all other personal projects
Папка содержит проект:
Русское название проекта: Ознакомиться с приложением Хаос-контроль
Английское название проекта: Get familiar with Chaos Control app
Проект содержит задачи:
1. Текст задачи (Rus/Eng): Прочитать в Справке как привести дела в порядок с использованием приложения Хаосконтроль/Check out the Help menu to learn how to get things done with Chaos Control App
Примечание задачи (Rus/Eng): Справка находится в главном меню приложения/You can access Help and reference
materials from the main menu of the app
Дата выполнения задачи: сегодня (то есть в день первого запуска приложения)
Остальные параметры задачи не заданы
2.
Текст задачи (Rus/Eng): Настроить синхронизацию задач между несколькими устройствами/Setup tasks sync
between several mobile and desktop devices
Примечание задачи (Rus/Eng): Просто нажмите на значок синхронизации на нижней панели инструментов или
воспользуйтесь пунктом меню «Настройки»/Just press sync button on the toolbar or navigate to the settings menu
Дата выполнения задачи: сегодня (то есть в день первого запуска приложения)
Остальные параметры задачи не заданы
3.
Текст задачи (Rus/Eng): Посетить сайт Хаос-контроля: www.chaos-control.mobi/Check out the Chaos Control service
web-page: www.chaos-control.mobi
Контекст задачи: В сети
Остальные параметры задачи не заданы
6.2 Одиночные действия
Проект «Одиночные действия» (One-step actions) содержит единственную задачу:
Текст задачи (Rus/Eng): заказать книгу «Тайм-драйв» Глеба Архангельского/Order «Getting Things Done» book by David
Allen
Контекст задачи: Когда есть свободные 15 минут
Остальные параметры задачи не заданы
6.3 Due today
Due today содержит те две задачи из единственного проекта папки Личное, которые предназначены для выполнения
сегодня (в день первого запуска программы)
6.4 Chaos Box
Chaos Box содержит единственную запись:
Текст записи (Rus/Eng): Доступ к Хаос-контролю с ПК и других мобильных устройств: www.chaos-control.mobi/Chaos
Control is avaliable for PC/Mac and other mobile devices at www.chaos-control.mobi
Остальные параметры записи не заданы
6.5 Контексты
Предустановленные контексты (Rus/Eng):
Дома/@home
В офисе/@office
С утра/In the morning
В гараже/@garage
Когда есть свободные 15 минут/If got some free time
В сети/Online
Download