Карта экранов (обновлена 17.08.2026)
Публичная версия, собрана 16.09.2026, правлена 02.10.2026. Живой документ проектирования: состав экранов и состояний, зафиксированный текстом до отрисовки. Дата в заголовке — дата самого документа, она и стоит в карточке артефакта. Публикуется артефактом журнала кейса.
Что убрано: реальный лицевой счёт на карточке поставщика заменён заглушкой, сняты шесть рабочих пометок. Состав экранов, обоснования и отклонённые решения — как были.
Статус: живой документ, не вердикт-док. Правится по ходу проектирования, дата в шапке обновляется. Правило заморозки на него не распространяется.
Границы. Дизайн-активы и их обоснования — product.md §5, единственный владелец; здесь они упоминаются по номерам, а не переспорены заново. Статус гипотез — Реестр_. Решения, риски и to-do — product.md.
Назначение. Что рисуем, что не рисуем, что находится на каждом экране, в каких состояниях, и что уходит в UI против вайрфреймов.
Онбординг
O1 — Что это
Один экран, скипаемый. Никаких каруселей и обещаний — сразу превью заполненного экрана находок (O3/N1), потому что именно он показывает то, чего не делает никто: «семь получателей, вот кто они, вот здесь ты переплачиваешь». Список счётчиков (S1) на эту роль не годится — выглядит как любое ЖКХ-приложение.
Превью явно помечено как пример. Путь до своего такого же — одно действие.
Риск: показать красивый заполненный экран и высадить в пустой. Смягчается тем, что O2 идёт следующим шагом.
O2 — Загрузка чеков
Сколько просим: три, принимаем один. Формулировка: «Хватит одного — покажу, кому ты платишь. С тремя найду, где считают не по счётчику».
| Чеков | Что открывается |
|---|---|
| 1 | Получатели, ЛС, суммы, адрес |
| 2 | Диффы: новый получатель, изменение суммы |
| 3 | Детекция норматива — ниже трёх константа неотличима от совпадения |
| 4–6 | Удвоения, догоны, смена тарифа |
| 12 | Годовая сумма по получателю → долг против сдвига по времени |
Загрузка N файлов — не N действий. Мультивыбор и share target. Интерфейс обязан это показывать, иначе пользователь оценит работу по числу файлов, а не по числу тапов.
Откуда брать чеки — блок из трёх карточек по убыванию надёжности:
- Почта — Платосфера отправляет чек на e-mail при каждой оплате (в документе есть поле «e-mail покупателя»). Поиск в почте достаёт всю историю сразу. Инструкция не устареет, потому что почта — не чужое приложение.
- История в агрегаторе — Платосфера, Квартплата+. Точный путь по экранам не проверен, см. открытые вопросы.
- Банк — формат банковский, может не подойти. Упоминается с оговоркой.
Каждая карточка несёт дату проверки. Обязательная строка «не нашёл — поищи в почте».
Как файл попадает в приложение:
- Share target (основной путь) — приложение регистрируется приёмником PDF. Из Платосферы или из почты: «Поделиться» → наше приложение. Ноль файлового менеджмента. Нативный Android-паттерн, одна строка в манифесте, работает с любым источником.
- Файловый пикер (фолбэк) — мультивыбор, для тех, кто уже скачал.
Состояния: пусто · выбраны файлы · разбор идёт · разобрано частично («3 из 5, два файла не распознались») · не распозналось ничего → ручной ввод.
Деградация — две ступени, обе надёжные: PDF → ручной ввод. Распознавание фото квитанции из MVP исключено (см. «Что не рисуем»).
Прогресс-шкалы «здоровья» здесь нет. До загрузки данных нет, пустая шкала выглядит сломанной. Вместо неё — обещание текстом.
O3 — Что нашлось
Экран-герой продукта. Результат разбора, размеченный по слоям достоверности:
7 получателей. Генерация Сибири, Квадис, Горводоканал, Новосибирскэнергосбыт, САХ, Фонд модернизации ЖКХ НСО, Росгосстрах.
Из них 5 — ресурсники и УК, 1 — регоператор по мусору, 1 — страховая.
⚠ Горячая вода: сумма не меняется третий месяц — похоже, считают не по твоему счётчику.
⚠ Росгосстрах появился один раз — необязательная страховка, 180 ₽.
Нашёл 3 вопроса · около 200 ₽ в месяц
Каждая строка тапабельна, разворачивается в объяснение. Внизу — «Всё верно» / «Тут ошибка».
Обязательная оговорка о неполноте: «Нашёл 5 получателей за этот период. Знаешь других — добавь или загрузи ещё чеки». Основание: в январском чеке автора было 4 получателя из 7.
Сводка — счётчик находок и деньги, не процент. Обоснование см. «Что не рисуем».
Экономия: O3 — это N1 в состоянии «только что нашёл». Один макет, разные шапка и CTA.
O4 — Ожидаемые приборы (скипаемый)
Из услуг в чеке выводится, какие приборы должны существовать. Не предзаполнение прибора (в чеке нет ни номеров, ни мест, ни разрядности), а предзаполненное ожидание — оно ценнее, потому что учит.
Судя по чекам, у тебя должны быть счётчики:
Холодная вода — Горводоканал берёт за «Воду»
Горячая вода — Генерация Сибири берёт за «Горячую воду»
Электричество — Новосибирскэнергосбыт
За водоотведение и отопление приборов обычно нет — считают от воды и по площади.
Проверь: чего-то нет или есть лишнее — поправь.
Требуется таблица «услуга → бывает ли индивидуальный прибор». Она может ошибаться (поквартирное отопление), отсюда обязательное «проверь».
Онбординг не заставляет заводить приборы. Ценность выдана до работы. Заведение предлагается здесь со скипом и повторно контекстно — из S1 и из находки «считают по нормативу» («заведи счётчик, покажу разницу»).
Таб 1 — Счётчики
S1 — Экран объекта (главный)
App bar: адрес. Больше одного объекта — выпадающий переключатель.
Карточка состояния месяца — одна строка, меняется по календарю:
- «Передать с 23 по 25 — осталось 2 дня» (единый день передачи, актив №6)
- «Окно закрыто. Показания сохранены, напомню 20-го»
- Краевой: пересечение пустое → «Одной датой не обойтись: Горводоканал до 25, НЭС с 23. Минимум два захода»
- Краевой: окно неизвестно → «У Квадиса окно не выяснено — позвони и запиши»
Строка находок — одна, только если находки есть: «⚠ 3 вопроса по начислениям → » ведёт в N1. Не блок и не шкала: S1 про снять и передать, уводить с него внимание нельзя.
Список приборов. Двухстрочный ListItem, ~72–88 dp:
| Слот | Содержание |
|---|---|
| Leading | иконка типа ресурса |
| Headline | «Горячая, в ванной» |
| Supporting | «310 · 23.06» |
| Trailing | компактное поле ввода + иконка камеры |
| Условная третья строка | предупреждение |
Зоны тапа разведены, раскрытия нет:
- тап по имени/иконке → S2 паспорт
- тап по полю → клавиатура, ввод на месте
Прятать ввод за тап или дропдаун нельзя: это главное действие экрана. Скрытие главного действия — это Госуслуги.Дом, от которых отстраиваемся, и боль Александры. По Нильсену — нарушение видимости.
Предупреждения под полем (актив №4, условные, только у затронутого прибора):
- «Расход 40 м³ при среднем 4 — перепроверь»
- «Меньше предыдущего — так не примут»
- «Генерация Сибири держит 341,925. Отправка 310 будет отклонена → почему»
- «Окно закрылось 25-го. Сохраню, но в этом месяце посчитают по среднему»
Правила ввода: сохранение локальное, поштучное, без кнопки подтверждения — мы журнал, а не форма. Ввод доступен всегда независимо от окна. Клавиатура числовая, «Далее» перебрасывает в следующее поле.
Блок отправки — сгруппирован по поставщику, потому что канал у каждого свой. Единой кнопки «отправить всё» не существует:
Горводоканал · 3 прибора · SMS → Отправить
Генерация Сибири · 1 прибор · только личный кабинет → Скопировать и открыть
Квадис · 1 прибор · окно неизвестно → Скопировать
Empty state: список ожидаемых приборов из O4 с приглашением завести. Отдельная подсказка «Не знаешь, какой горячий? Покажу, как определить» → объяснялка, тема 3.
S2 — Паспорт прибора
Герой — расхождения, не график. Четыре числа одного прибора в одном месте актив №8
Ты снял: 310 · 23.06
Горводоканал: 310 ✓ · по прибору
Генерация Сибири: 341,925 · на 31,9 больше · по нормативу
Квадис: 70,0 · не обновлялось с 01.08.2025
Тап по строке → что это значит и что делать. Блок расхождений сам по себе призыв к действию; приписки вроде «+5% к здоровью» не добавляем.
Ниже:
- История показаний и график расхода — два представления, м³ и ₽
- Поверка: дата, обратный отсчёт, акт (фото/PDF), «что делать и кому звонить»
- Идентификация: имя, место установки, фото, номер, тип ресурса, разрядность
- Привязки: поставщики и лицевые счета этого прибора
- Действия: редактировать, удалить
S3 — Добавление и редактирование прибора
Пошагово: тип ресурса → имя → место установки (+ фото) → номер → разрядность → привязка к поставщикам → текущее показание.
Шаг разрядности — отдельный экран. Не текст, а картинка табло с подсвеченными чёрными и красными разрядами и вопросом «сколько у тебя чёрных?». Дальше приложение не даёт ввести число не той длины. Объяснение работает один раз, валидация — всегда. Основание: Кирилл, месяцы неверных показаний; deep-research: ошибка превращает 13 м³ в 1124 м³.
S4 — Камера
Видоискатель, рамка, автофонарик. Распознанное значение подставляется в поле и остаётся редактируемым. Фото уходит в паспорт как след.
Состояния: не распозналось · распозналось с низкой уверенностью · ок.
Только цифры счётчика (ML Kit, on-device). Текст квитанции камерой не читаем — см. «Что не рисуем».
S5 — Отправка (боттом-шит, не экран)
Что отправляем, куда, каким каналом, предпросмотр текста. После действия — «Записал: 3 прибора, Горводоканал, 23.07 в 14:05» (личная квитанция переданного, актив №3). Явная оговорка: фиксируем отправленное, доставку не подтверждаем.
Таб 2 — Начисления
N1 — Обзор
Сверху — находки, отсортированные по деньгам:
⚠ Горячая вода — по нормативу. Третий месяц одна сумма. Около 200 ₽/мес мимо.
⚠ Капремонт вдвое больше обычного в марте. Это за два периода или выросла ставка?
⚠ Новый получатель: Росгосстрах, 180 ₽. Появился один раз.
✓ ТКО — на одного проживающего. Похоже, верно.
Сводка сверху: «3 вопроса · около 200 ₽ в месяц».
Полнота данных — отдельно и честно названа: «Заполнено 5 из 7 поставщиков», «У 2 приборов не указана поверка». Это про наши данные, и подписано именно так. Процент здесь допустим, потому что вычисляется.
Ниже — лента чеков по месяцам с итогами и индикатором «есть находки». Кнопка «Загрузить чек» + напоминание в первых числах месяца.
Empty state: «Загрузи чеки — покажу, за что ты платишь» (для пропустивших онбординг).
N2 — Разбор одного чека
Дата, итог, получатели с суммами. По каждой строке вердикт: по прибору · по нормативу · фиксированный платёж · новый получатель · нетипичная сумма. Ссылка на исходный PDF.
Обязательная оговорка внизу: чек покрывает только оплаченное через этот агрегатор; отсутствие строки не значит отсутствие начисления.
N3 — Карточка находки
Четыре блока:
- Что нашёл — «Горячую воду считают не по твоему счётчику»
- Как понял — таблица трёх месяцев, где ГВС стоит, а соседи гуляют. Показываем доказательство, не просим верить
- Сколько стоит — расчёт с датой проверки ставки; если ставка неизвестна — «сколько именно, сказать не могу, нужен тариф»
- Что делать — вход в процедуру (X2)
Кнопка «Это не так» — пользователь отклоняет находку, она больше не всплывает. Приложение может ошибаться, и интерфейс это признаёт.
Таб 3 — Поставщики
Самый предзаполняемый раздел продукта: после разбора чеков он сразу непустой. Буквальный ответ на задачу Блока А «назови всех своих поставщиков».
Три слоя достоверности (сквозной принцип раздела)
Из твоего чека
- Что в нём
- Название, ЛС, услуги, суммы
- Как показан
- Факт, спорить не с чем
Из справочника
- Что в нём
- Канал, окно, формат, телефоны
- Как показан
- С датой проверки + «сообщить, что устарело»
Неизвестно
- Что в нём
- Окно Квадиса, локальные процедуры, контакты
- Как показан
- Пустое поле + «позвони и запиши»
Различение — на уровне самих строк, не дисклеймером внизу. Это интерфейсное решение риска №11 и то, что проверяется в Блоке Б: если пользователь на вопрос «откуда приложение это знает?» отвечает верно — работает.
P1 — Список
Карточка на поставщика:
ООО «Генерация Сибири» · ресурсник
Отопление, горячая вода · ЛС XXXXXXXXXX
Показания передавать нужно · окно 15–25
⚠ Считают по нормативу
Проверено 23.07.2026
Для САХ и Фонда: «передавать нечего, начисляют сами» + параметр начисления (число проживающих, площадь). Это ответ на вопрос «должен ли я им что-то передавать?», который Никита себе задать не смог.
P2 — Карточка поставщика
- Кто это — ресурсник, УК, регоператор, фонд, страховая + контекстная объяснялка «чем РСО отличается от УК»
- Лицевой счёт, услуги, приборы этого поставщика
- Канал, окно, формат сообщения
- Контакты и процедуры: известное — от нас, локальное — «позвони и запиши»
- Дата проверки + «сообщить, что устарело» на видном месте
- Метод начисления и параметр
Сквозное
X1 — Объяснялка
Контекстные боттом-шиты, три глубины: ответ → «почему так устроено» → «что делать, если у тебя иначе». Дизайн-актив — контекстный вход (актив №2), а не раздел помощи.
1 Кто мои поставщики, РСО vs УК
- Где всплывает
- P1 (шапка), P2 («кто это»), O3
- Источник боли
- Никита, Данил, самоаудит
2 Какие цифры передавать: чёрные vs красные
- Где всплывает
- S3 шаг разрядности; S1 при вводе числа не той длины
- Источник боли
- Кирилл; deep-research
3 Какой счётчик горячий, где он
- Где всплывает
- S3 шаг типа ресурса; S1 empty state; O4
- Источник боли
- Самоаудит («потрогал рукой»)
4 По счётчику или по нормативу
- Где всплывает
- N3 «как понял»; S2 строка расхождения; P2 метод
- Источник боли
- Самоаудит, Маргарита
5 До какого числа, что при пропуске
- Где всплывает
- S1 карточка месяца; P2 окно
- Источник боли
- Все; заблуждение Витали
6 Не приняли / пришёл норматив — что делать
- Где всплывает
- X3; N3 блок «что делать»; S2 расхождение
- Источник боли
- Самоаудит §6
7 Поверка: когда, кто вправе, где акт
- Где всплывает
- S2 блок поверки; напоминание на S1
- Источник боли
- Оксана, Кирилл
Проверка на полноту: у каждой темы минимум два входа, ни один не в разделе «Помощь».
X2 — Процедуры
Темы 6 и 7 длинные — экран с чтением подряд. Входы всё равно контекстные: из находки (N3), из карточки поверки (S2), из разбора отказа (X3).
Содержание процедуры исправления: акт поверки → акт контрольных показаний → заявление на корректировку. ПП 354 объясняется как механика, а не как документ: пропустил — три месяца по среднему, дальше норматив, за оплаченные закрытые периоды пересчитывать не обязаны. Ссылка на постановление — внизу мелким, как источник.
X3 — «Не приняли показания?»
актив №5 Не наш экран ошибки: отказ произошёл в чужом приложении, перехватить причину невозможно. Это диагностика — список того, что мог написать чужой сервис, с расшифровкой каждого варианта и выходом в процедуру (X2).
X4 — Настройки
Объекты · напоминания · бэкап · обратная связь · юридика · о приложении.
«О приложении»: название «По счётчику», версия, ссылка на стор. Внутри интерфейса аббревиатуры «ЖКХ» и «ЖКУ» не используются — только конкретные слова («начисления», «поставщики», «квитанция»); обоснование в шапке product.md.
Обратная связь: открывает почтовый клиент с предзаполненным адресатом. Не личная почта автора — отдельный адрес под проект, он же контакт разработчика в сторе.
Юридика: политика конфиденциальности и пользовательское соглашение. Требования сторов не проверены, см. открытые вопросы. На этап 1 это одна строка в макете.
X5 — Краевые состояния
Пустые списки · ошибка парсера · частичный разбор · потеря распознавания · пустое пересечение окон · устаревшая запись справочника · прибор без привязки к поставщику · находка отклонена пользователем.
Приоритет этапа 1
Экранов и элементов — 19. За 2–3 недели в UI-качестве рисуется не всё.
В UI (10): O2 · O3 · S1 · S2 · S3 · N1 · N3 · P1 · P2 · X3 (O3 и N1 делят макет — фактически 9 отрисовок)
Состояния и шиты внутри отрисованных экранов: S5 · X1 · предупреждения на S1 · три слоя достоверности на P1/P2
Вайрфреймы или этап 2: O1 · O4 · S4 · N2 · X2 · X4 · X5
Десять экранов покрывают все восемь дизайн-активов и все семь тем объяснялки. Остальное показывается вайрфреймом с подписью.
Что не рисуем и почему
Убранное объясняет продукт лучше добавленного.
| Что | Почему отклонено |
|---|---|
| Очередь отправки (конвейер из 6 каналов) | 0/9 пользователей SMS/email/ботов. Артефакт убитой гипотезы, в архив |
| Прогресс-бар «ЖКХ здоровье» | Склеивает полноту наших данных с состоянием чужих финансов; посчитать нечем (неизвестны прописанные, площадь, долги); веса пришлось бы выдумать — прямое нарушение «не выдумывать метрики»; и обесценивает честно снятую метрику времени. Заменён на счётчик находок + отдельно названную полноту данных |
| Четвёртый таб (обратная связь) | Таб — самая дорогая недвижимость навигации; отдавать её экрану на один визит нельзя. Ушло в X4 |
| OCR текста квитанции | Tesseract + rus.traineddata — неделя ради запасного пути. ML Kit кириллицу не поддерживает (проверено 28.07.2026). Облачный OCR ломает local-first. Оставлено: PDF → ручной ввод |
| Автоопределение поставщиков по адресу | Датасета нет; карта каналов дала 1 попадание из 4 и перепутала организации. Заменено разбором чеков самого пользователя |
| Собственный экран отказа | Отказ происходит в чужом приложении, причину перехватить невозможно. Заменено на предупреждение до отправки (актив №4) + диагностику (X3) |
| Раздел «Помощь» | Объяснение нужно в момент вопроса, а не в меню, куда не ходят |
Очередь отправки (конвейер из 6 каналов)
- Почему отклонено
- 0/9 пользователей SMS/email/ботов. Артефакт убитой гипотезы, в архив
Прогресс-бар «ЖКХ здоровье»
- Почему отклонено
- Склеивает полноту наших данных с состоянием чужих финансов; посчитать нечем (неизвестны прописанные, площадь, долги); веса пришлось бы выдумать — прямое нарушение «не выдумывать метрики»; и обесценивает честно снятую метрику времени. Заменён на счётчик находок + отдельно названную полноту данных
Четвёртый таб (обратная связь)
- Почему отклонено
- Таб — самая дорогая недвижимость навигации; отдавать её экрану на один визит нельзя. Ушло в X4
OCR текста квитанции
- Почему отклонено
- Tesseract +
rus.traineddata— неделя ради запасного пути. ML Kit кириллицу не поддерживает (проверено 28.07.2026). Облачный OCR ломает local-first. Оставлено: PDF → ручной ввод
Автоопределение поставщиков по адресу
- Почему отклонено
- Датасета нет; карта каналов дала 1 попадание из 4 и перепутала организации. Заменено разбором чеков самого пользователя
Собственный экран отказа
- Почему отклонено
- Отказ происходит в чужом приложении, причину перехватить невозможно. Заменено на предупреждение до отправки (актив №4) + диагностику (X3)
Раздел «Помощь»
- Почему отклонено
- Объяснение нужно в момент вопроса, а не в меню, куда не ходят
Открытые вопросы
- Рабочее название продукта — нужно для онбординга и стора
- Компактное поле ввода на 360 dp: влезает ли 5–6 знаков в trailing-слот. Меряется в Figma первым делом. Не влезло → фолбэк на карточку с полем на своей строке, размен на длину списка
- Точный путь до PDF в Платосфере — пройти и записать по шагам; проверить наличие кнопки «Поделиться» (от неё зависит share target как основной вход)
- То же для Квартплаты+ — плюс разметка их чеков (риск №12)
- Таблица «услуга → бывает ли индивидуальный прибор» для O4
- Требования сторов к юридике — данные противоречивые, проверять перед этапом 2 (риск №7)
- Где применяем Expressive и почему — кандидаты: подтверждение отправки по поставщику (S5), вердикт находки (N3). Записывается отдельно