Files
f7cloud_mobile/docs/app-map/tasks.diff.md
T
b-mob-tasks 82e260fbf5 docs(app-map): карта Задач + diff итерация 1 (из кода v0.17.1)
tasks.md — дерево экранов + всплывающие меню поимённо (mail/087).
tasks.diff.md — веб↔натив, Ff=16.7% Fd=41.5% по 8 экранам, бэклог P1-P5.
STATUS.md — строка tasks обновлена.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-13 05:47:52 +00:00

8.8 KiB
Raw Blame History

Diff: Задачи (Tasks) — итерация 1 (2026-07-13)

Ff_app: 16.7% · Fd_app: 41.5% (среднее по 8 экранам, невзвешенно) · n-a: 0

Сверка веб (nextcloud/tasks v0.17.1 + тема) ↔ натив (feature/tasks: TasksScreen, TasksComponents, TasksViewModel, TasksRepository, TasksSmartLists). Метки: [Ф|Д] (функционал/дизайн) · [open|done|n-a]. Это первый прогон — счётчики честно низкие: натив покрывает базовый CRUD + группировку + движок умных списков (в коде, не в UI). Живую визуал-сверку на forbion (bmob-*, mail/085) добавлю следующим проходом — сейчас diff из кода.

Прошу приоритизацию: предлагаемый порядок P1→P5 в конце.


Экран 1. Панель навигации (списки + умные коллекции) — Ff 14.3% · Fd 40%

Ф (14, open 12):

  • [Ф][open] умные коллекции в панели (Важное/Сегодня/Неделя/Все/Текущие/Завершённые) — движок TasksSmartLists готов, в UI не выведены
  • [Ф][open] счётчики-бейджи на коллекциях
  • [Ф][done] открыть реальный список
  • [Ф][open] «Добавить список» (MKCALENDAR) — сейчас мёртвая кнопка
  • [Ф][open] выбор цвета при создании списка
  • [Ф][open] drag-сортировка списков
  • [Ф][open] drag задачи на коллекцию (retag priority/complete/today/week)
  • [Ф][open] открыть Корзину
  • [Ф][done] открыть Настройки
  • [Ф][open] «⋯» списка: поделиться · [Ф][open] изменить · [Ф][open] копировать ссылку · [Ф][open] экспорт · [Ф][open] удалить/unshare Д (5, open 3): [Д][open] композиция (коллекции+корзина) · [Д][open] иконки коллекций · [Д][open] вид счётчика · [Д][done] активный пункт (фон) · [Д][done] строка списка (40dp/иконка)

Экран 2. Список задач — Ff 38.9% · Fd 75%

Ф (18, open 11):

  • [Ф][done] создать задачу (быстрый ввод) · [Ф][open] создать несколько из вставки
  • [Ф][open] фильтр по меткам · [Ф][open] сброс фильтра
  • [Ф][open] выбор порядка сортировки (10 вариантов) · [Ф][done] направление ↑/↓
  • [Ф][open] «Загрузить завершённые» (по списку/всем)
  • [Ф][done] чекбокс выполнения · [Ф][done] открыть деталь · [Ф][done] поиск по тексту
  • [Ф][done] добавить подзадачу · [Ф][done] удалить задачу
  • [Ф][open] «⋯»: переключить важность (star) · [Ф][open] показать/скрыть подзадачи · [Ф][open] показать/скрыть завершённые подзадачи
  • [Ф][open] индикатор pin · [Ф][open] индикатор «есть заметка» Д (8, open 2): [Д][done] группировка по сроку · [Д][done] зона завершённых · [Д][done] строка задачи · [Д][done] бейдж даты · [Д][done] пусто-состояние · [Д][done] чекбокс · [Д][open] звезда приоритета в строке · [Д][open] иконки/вид меню сортировки-фильтра

Экран 3. Деталь задачи — Ff 30% · Fd 66.7%

Ф (20, open 14):

  • [Ф][done] правка заголовка · [Ф][done] срок · [Ф][open] дата начала · [Ф][open] «весь день»
  • [Ф][open] статус (Требует действия/В процессе/Отменено/Очистить) · [Ф][open] классификация
  • [Ф][done] приоритет · [Ф][open] %-выполнения (слайдер)
  • [Ф][open] метки · [Ф][open] локация · [Ф][open] URL · [Ф][open] смена списка задачи
  • [Ф][open] напоминания (до старта/до срока/дата-время) · [Ф][done] заметка/описание
  • [Ф][open] закрепить (pin) · [Ф][open] показать в Календаре · [Ф][open] показать в Deck
  • [Ф][open] экспорт · [Ф][done] удалить · [Ф][done] переключить выполнение Д (6, open 2): [Д][done] лейаут шита · [Д][open] вкладки Подробно/Заметки · [Д][done] pill-поля · [Д][done] нативные пикеры · [Д][done] типографика · [Д][open] слайдеры приоритет/%

Экран 4. Параметры задач (Настройки) — Ff 0% · Fd 50%

Ф (2, open 2): [Ф][open] список по умолчанию (не персистится) · [Ф][open] видимость коллекций (2 варианта вместо 3, неактивно — надо 3-state + SharedPreferences + влияние на панель) Д (2, open 1): [Д][done] композиция шита · [Д][open] контрол 3-state (Скрыта/Видима/Авто)

Экран 5. Правка/создание списка — Ff 0% · Fd 0% (экрана нет в нативе)

Ф (3, open 3): [Ф][open] имя списка · [Ф][open] цвет · [Ф][open] сохранить (PROPPATCH) Д (1, open 1): [Д][open] модалка правки

Экран 6. Шаринг списка — Ff 0% · Fd 0% (нет в нативе)

Ф (4, open 4): [Ф][open] поиск пользователей/групп · [Ф][open] выдать доступ · [Ф][open] список получателей · [Ф][open] отозвать Д (1, open 1): [Д][open] модалка шаринга

Экран 7. Корзина — Ff 0% · Fd 0% (нет в нативе)

Ф (4, open 4): [Ф][open] список удалённых · [Ф][open] восстановить · [Ф][open] очистить · [Ф][open] сортировка по дате Д (1, open 1): [Д][open] модалка/таблица корзины

Экран 8. Диалоги создания — Ff 50% · Fd 100%

Ф (2, open 1): [Ф][done] создать задачу · [Ф][open] создать несколько из вставки Д (1, open 0): [Д][done] диалог создания


Итог и предлагаемый приоритет

Ff_app = (14.3+38.9+30+0+0+0+0+50)/8 = 16.7%; Fd_app = (40+75+66.7+50+0+0+0+100)/8 = 41.5%. Обе далеко от 98% — Задачи требуют нескольких итераций. Крупные функциональные дыры (по влиянию на Ff):

  • P1 — Умные коллекции в UI (TasksListNavView + счётчики + 3-state видимость с персистом). Движок готов (TasksSmartLists), это «дешёвый» большой прирост Ff экрана 1. Мой модуль.
  • P2 — Управление списками: рабочее «Добавить список» + цвет, «⋯» списка (переименовать/цвет/ удалить/экспорт/копировать ссылку), шаринг. Часть — core DAV (PROPPATCH/MKCALENDAR/share) — согласую с тобой ДО (образец у calendar). Мой модуль + core-точки.
  • P3 — Богатая деталь: старт-дата/весь день, статус, %-слайдер, метки, локация/URL, смена списка, напоминания, pin. Метки/напоминания — крупные подсистемы; уточню объём.
  • P4 — Сортировка (10 порядков) + фильтр по меткам вместо тумблера; «Загрузить завершённые».
  • P5 — Корзина (DAV trashbin) — навигация/core, вероятно твой ход.

Вопросы к тебе: (1) порядок P1–P5 ок? (2) метки (tags) и напоминания (VALARM) — беру целиком в feature/tasks или это кросс-модульное (метки шарятся с Календарём)? (3) Корзину относить в мой модуль или это core/навигация? (4) экраны 5/6/7 считать полноценными (тянут среднее в 0) или частью экрана навигации — уточни методику усреднения для «отсутствующих» экранов.