5.7 KiB
5.7 KiB
Diff: Почта (веб forbion ↔ нативный feature/mail)
Итерация 1 (по mail/081). Вход — карта mail.md (живой forbion, аккаунт cloude, read-only) +
код модуля feature/mail на 91aaaba. Тип: Ф — функционал, Д — дизайн/вёрстка.
Приоритет: P1 (болит/ядро), P2 (заметно), P3 (мелочь/косметика).
Статус: open — есть в вебе, нет/иначе в нативе; device? — требует проверки на устройстве.
Общий вывод: нативный клиент функционально зрелый — расширенный поиск (все поля), подтверждение прочтения, важность/спам/метки/переместить/создать задачу/создать событие/ запланированная отправка уже есть и совпадают. Ниже — только реальные пробелы.
Функциональные
| # | Элемент / функция | В вебе (forbion) | В нативе (feature/mail) |
Тип | Приор. | Статус |
|---|---|---|---|---|---|---|
| 1 | Черновики | Папка «Черновики» + композер сохраняет и восстанавливает черновик | Композер не сохраняет черновик — набранное теряется (MailComposeViewModel) |
Ф | P1 | open |
| 2 | Композер «⋯» → «Текстовые шаблоны» | Вставка шаблона/подписи в тело письма | Текстовые блоки только в настройках (MailRepository), в композер не вставляются |
Ф | P2 | open |
| 3 | Композер «⋯» → «Умный подборщик» (smart picker) | Есть (вставка ссылок/упоминаний/виджетов) | Нет | Ф | P3 | open |
| 4 | Меню письма → «Ответить встречей» | Создание ответа-приглашения (iMIP) | Нет (есть смежное «Создать событие» MailComponents.kt:1254) |
Ф | P3 | open |
| 5 | Меню письма → «Скачать письмо» (.eml) | Выгрузка исходника письма | Нет | Ф | P3 | open |
| 6 | Меню письма → «Редактировать как новое сообщение» | Открывает композер с телом письма | Нет | Ф | P3 | open |
| 7 | Действие «Архивировать» над письмом | Отдельная кнопка «в архив» | Нет отдельного пункта; архив только через «Переместить» (MailComponents.kt:1259) |
Ф | P3 | open |
Дизайн / вёрстка
| # | Элемент | В вебе (forbion) | В нативе | Тип | Приор. | Статус |
|---|---|---|---|---|---|---|
| 8 | Подписи виртуальных папок | «Непрочитанное», «Избранные» | «Непрочитанные», «Избранное» (MailRepository.kt:672-673) |
Д | P2 | open |
| 9 | Порядок папок | Приоритетные→Входящие→Непрочитанное→Избранные→Черновики→Отправленные→Спам→Корзина | Входящие→Непрочитанные→Избранное→Отправленные→Черновики→Архив→Корзина→Спам (MailRepository.kt:671-680) |
Д | P2 | open |
| 10 | Быстрые действия строки списка | Inline-иконки при наведении (✉/🌿/🗑/⋯) | Свайп справа-налево (f7SwipeFromRightToDismiss) |
Д | P3 | device? |
Требуют device-сверки (карта live не покрыла)
| # | Что | Причина | Статус |
|---|---|---|---|
| A | Экран открытого письма/треда: панель действий (Ответить/Переслать/Архив/Спам/Корзина/Удалить), меты, вложения, HTML-тело | live не проходился — открытие непрочитанного = запись \Seen; структура достроена по MessageView.vue+макетам |
device? |
| B | Модалка «Параметры эл. почты» по подразделам (native — 6 разделов) | JS-модалка, live не раскрыта по пунктам | device? |
| C | Диалоги «Изменить метки» / «Переместить» / «Запланированная отправка» — состав форм | live не раскрывались (пишущие) | device? |
| D | Действия «⋯» по папке и по аккаунту в шторке навигации | live не раскрывались | device? |
| E | Проверить #10: hover-иконки vs свайп — не артефакт ли desktop-web на узком экране | нужен реальный мобильный web/устройство | device? |
Примечание по методу
- Пункт #10 помечен
device?: наблюдённые inline-hover-действия могут быть поведением desktop-web в узком вьюпорте, а не мобильным паттерном — до проверки на реальном мобильном не тащить в реализацию. - Метрику ≤2% (mail/081 п.2) считаю по чек-листу «элементы+функции на экран» — жду формулу лида.