plibvi · Android «По любви» · проверка 14 сентября 2026
Что нашлось в сборке и что из этого исправлено
Проверка началась с одного сообщения: на экране «Как тебя зовут?» кнопка «Далее» не срабатывает. Это воспроизвелось, и рядом нашлось ещё семь похожих мест, и всё это уже исправлено. Всё проверено на той же сборке, что лежит на странице раздачи, на эмуляторе 390×844 против живого стенда dusha.uxbrain.ru.
Находки
блокерД-1. Тупик после обязательной части анкеты
✓ Исправлено. Следующий шаг ищется только среди показываемых, лоадер получил «назад». Проверено: регистрация с чистого листа прошла все восемь шагов и дошла до разводной «Не упусти свою любовь».
- Что видно
- Отвечаешь на все восемь шагов анкеты. Дальше — белый экран с крутилкой, шкала прогресса на двух третях и чёрная кнопка «Далее». Нажатие не делает ничего, стрелка «назад» на самом экране не нажимается. Системная кнопка «назад» возвращает на восьмой шаг, вперёд пути нет. Перезапуск приложения — онбординг с самого начала, ответы потеряны.
- Почему
- Плоский список вопросов строится из всех шагов ответа
GET /survey, включая необязательный шаг «Интересы», а список шагов для показа — только из обязательных. После восьмого шага указатель переводится на первый вопрос «Интересов», а фаза остаётся прежней, вместо перехода на разводную «Не упусти свою любовь». Шаг для этого вопроса не находится, и рисуется ветка загрузки: без заголовка, без вариантов. Кнопка в этой ветке получает состояние по умолчанию (активное, чёрная), а обработчик нажатия в неё не передаётся вовсе. - Где чинить
OnboardingViewModel.flattenSurveyиnextSurveyStep, ветка загрузки вOnboardingScreen.SurveyQuestionStep- Воспроизводится
- Всегда, пока в анкете есть необязательный шаг. На стенде он есть: девять шагов, девятый — «Интересы».
важноД-2. «Далее» на экране имени молчит без фамилии
✓ Исправлено. Фамилия больше не обязательна — отправка анкеты и правка профиля и так подставляют прочерк. Проверено: «Далее» с одним именем уводит на следующий шаг.
- Что видно
- Ввёл имя — кнопка стала чёрной и активной. Нажимаешь: ничего не происходит, никакого сообщения. Заполнил фамилию — тот же тап сразу уводит на следующий шаг.
- Почему
- Кнопка включается по одному имени, а проверка требует и фамилию. При пустой фамилии проверка выставляет текст «Введите фамилию», но у экрана имени нет места, куда этот текст вывести, — он просто теряется.
- Стоит решить
- Похоже, фамилия тут обязательна по недоразумению: отправка анкеты в этом же коде подставляет вместо пустой фамилии прочерк, а правка анкеты в профиле фамилию не требует. То есть или убрать требование, или показать сообщение и гасить кнопку.
- Где чинить
OnboardingViewModel.continueFromName,OnboardingScreen.NameStep
важноД-3. Поле фамилии не показывает, что оно в фокусе
✓ Исправлено. Поле отдаёт настоящий фокус. Проверено по цвету рамки: после нажатия терракотовая рамка у фамилии, у имени спокойная.
- Что видно
- Тапаешь по «Фамилии» — клавиатура открыта, ввод идёт, но поле выглядит нетронутым: подпись внутри, курсора нет, рамка серая. Терракотовая рамка при этом остаётся на поле имени. Ощущение, что поле не работает, хотя оно работает.
- Почему
- Вид поля выводится не из настоящего фокуса, а из того, есть ли уже текст в фамилии. Пока она пуста, оба поля рисуются так, будто выбрано имя.
- Где чинить
OnboardingScreen.NameStep(firstFocused),ui/kit/Inputs.kt
важноД-4. Дата рождения: та же немая кнопка на несуществующей дате
✓ Исправлено. Кадр показывает «Дата неверная», «Тебе нет 18» или «Тебе N лет», кнопка включается только по пройденной проверке. Проверено на 31.02.2000 и на настоящей дате.
- Что видно
- Вводишь 31.02.2000 — кнопка активна, нажатие не делает ничего и ничего не говорит. Настоящая дата — проходит сразу.
- Почему
- Кнопка включается по восьми цифрам, а проверка требует существующую дату. Обидно, что у этого экрана уже есть готовые места под сообщения, собранные по кадрам «Дата неверная» и «Тебе нет 18», — их просто не заполняют.
- Где чинить
OnboardingScreen.BirthdayStep— передатьmessageTitle/messageText
важноД-5. Шкалы анкеты нарисованы кнопками, подписи повторяются
✓ Исправлено. Шкала рисуется шкалой, нажатие и протяжка выбирают деление. По дороге нашлись ещё две беды: обработчик жеста держал колбэк предыдущего шага, и повторное нажатие снимало ответ. Обе закрыты.
- Что видно
- Вопрос «Я хочу завести ребенка» показывает подряд четыре одинаковые кнопки «Не планирую детей», затем «Готов к детям», затем четыре «Хочу детей».
- Почему
- Три вопроса приходят со стенда как шкала из девяти делений с подписями только у части делений. Экран рисует шкалу вертикальным списком кнопок, по кнопке на деление, — отсюда повторы. Данные тут ни при чём, стенд отдаёт ровно это. В проекте есть готовый экран шкалы, но он никуда не подключён.
- Сколько
- Три вопроса из пятнадцати: «Я хочу завести ребенка», «Личная жизнь или работа?», «Насколько свободными ты видишь идеальные отношения».
- Где чинить
OnboardingScreen.SurveyQuestionStep— развилка по типу ответа наSurveySliderStepScreen
важноД-8. Крупный шрифт в системе ломает вёрстку
✓ Исправлено. Масштаб шрифта закреплён. Проверено сравнением кадров: при системном шрифте 1.3 и 1.0 разница ноль пикселей, до правки было 3,3 % на приветствии и 1,9 % на экране имени.
- Что видно
- Если в настройках телефона увеличен размер шрифта, текст наезжает сам на себя. На приветствии «ДОСТУПНО» залезает на «60%» и разваливается на две строки поверх кольца, а строки подзаголовка слипаются. На экране имени подпись «Можно отредактировать в профиле» переносится на две строки и садится прямо на кнопку «Далее».
- Почему
- Размер текста задан в единицах, которые растут вместе с системной настройкой, а высота каждого текстового блока и положение блоков на экране взяты из макета жёстко, в неизменяемых единицах. Экраны при этом не прокручиваются: во всём онбординге ровно одно прокручиваемое место. Подросший текст выходит за свой блок и накрывает соседний.
- Проверено
- Тот же эмулятор, системный размер шрифта увеличен на треть. При обычном размере оба экрана в порядке.
- Чем шире
- По той же причине под угрозой любой экран с длинным текстом, а не только эти два: жёстких координат в вёрстке 178 штук.
«ДОСТУПНО» поверх «60%», строки подзаголовка слиплись
Подпись переносится и садится на кнопку «Далее»
мелочьД-6. Ошибкам шага «Открывашки» негде показаться
✓ Исправлено вместе с Д-7 — общим местом под сообщение.
Проверка ставит три разных текста («Выберите вопрос и напишите ответ», «Эта открывашка уже добавлена», «Максимум»), а у экрана есть только флажок «ошибка» без места под сообщение. Вживую не проверено: шаг лежит за тупиком Д-1.
мелочьД-7. Возврат в конце анкеты без объяснения
✓ Исправлено. В корне онбординга появился снек, который показывает любое сообщение проверок. Возраст к тому же проверяется на самом шаге даты, а не в конце анкеты.
Если при отправке анкеты не хватает обязательных ответов, дата не разбирается или возраст меньше 18, пользователя откидывает на нужный шаг с заготовленным текстом («Регистрация с 18 лет» и другие). Эти экраны сообщений не показывают — со стороны это выглядит как самопроизвольный прыжок назад. Вживую не проверено по той же причине.
Одна общая причина у Д-2, Д-4, Д-6, Д-7
Экраны онбординга собраны по кадрам макета, и места под сообщение об ошибке в них не заведено, хотя проверки такие сообщения исправно готовят. Вдобавок кнопка «Далее» включается по более мягкому условию, чем то, что проверяет обработчик. Получается худший вариант: кнопка выглядит рабочей, нажимается и молчит. Лечится в двух местах сразу — включать кнопку ровно по тому же условию, что проверяет обработчик, и дать экранам одну общую строку под сообщение.
Как это выглядит
Кнопка чёрная и активная. Нажатие не делает ничего, пока пуста фамилия
Четыре одинаковые кнопки «Не планирую детей» подряд
Крутилка без конца, «Далее» активна и ни к чему не подключена
Онбординг с начала, ответы анкеты потеряны
Как это выглядит после правок
Вместо четырёх одинаковых кнопок — шкала с подписью деления
Вёрстка не разъезжается: кадр совпадает с обычным шрифтом пиксель в пиксель
Рамка переехала на поле фамилии, у имени она спокойная
Тупика нет: после восьмого шага приложение доходит сюда
Чем проверяли
| Проверка | Итог |
|---|---|
| Регистрация с чистого листа на живом стенде | Восемь шагов анкеты пройдены, дошли до конца |
| Кадры при системном шрифте 1.3 против 1.0 | Ноль пикселей разницы, было 3,3 % и 1,9 % |
| Цвет рамки поля фамилии после нажатия | Терракотовая у фамилии, спокойная у имени |
| Падения за все прогоны | Ни одного |
| Сборки | release и debug собираются, R8 не ругается |
Что проверено и работает
| Участок | Итог |
|---|---|
| Вход по СМС | Работает. Код 338610 принимается, токены выдаются |
| Шаги «Пол и рост», восемь шагов анкеты | Работают, кнопка гаснет и зажигается честно |
| Четыре таба под готовой анкетой | Лента, симпатии, чаты, профиль открываются на живых данных |
| Профиль, настройки, фильтры, пейволл | Ошибки показывают как надо — снеком или блоком |
| Падения | Ни одного за весь прогон, включая релизную сборку |
Что осталось непроверенным
Всё, что лежит за тупиком Д-1: открывашки, выбор фото и видео, финальная отправка анкеты. И оплата — для неё нужен стенд оплаты, которого нет.
Проверка: эмулятор 390×844 ×3, сборка от 13–14 сентября 2026, коммит a782e198, стенд dusha.uxbrain.ru. Сборки и ссылки — на странице раздачи APK.