Вёрстка и ресурсы

Чего надо

  • Поле для логина, должно кушать почту
  • Поле для пароля, должно показывать точки и иметь кнопку для временного показа оного
  • Кнопка логина
  • Указание на неверные данные при нажатии на кнопку логина
    • Не указан логин (если нет логина)
    • Не указан пароль (если нет пароля)
    • Неверный логин или пароль (иначе)
    • Появление оной не должно вызывать изменение положения других вьюшек
  • Разные темы приложения для тёмного и светлого оформления
    • Проверять на устройстве с Android 9+ на борту
    • Тема из системы
  • Перевод (при помощи ресурсов) на другие языки
    • Один из языков должен быть русским или английским
    • Один из языков должен иметь письменность справа налево (допускается промптоперевод)
  • Не должно быть заголовка (см. изображение ниже)

Портрет

portrait mode pic

  • Кнопка логина намертво прибита к низу экрана и видна даже при открытой клавиатуре

Ландшафт

  • Кнопка логина располагается чётко справа от полей для ввода, как бы занимая две строчки
    • Или слева для иврита и других RtL языков

Бонус

  • +0,5 за возможность динамически сменить тему из приложения
  • +0,5 за нажатие на кнопку логина при нажатии на энтер в поле пароля

Что может пойти не так

Штрафы

  • Любые ошибки (в т.ч. подавленные) в xml / коде на java/kotlin
    • Разрешается делать подаление ошибки о #performClick, если используется OnTouchListener для определения нажатия на compound drawable
  • Любая ViewGroup внутри ConstrintLayout

Не сегодня

  • Вложенность больше 3
    • т.е. TextView в Linear в Linear в Linear ещё допустима
    • т.е. TextView в Linear в Linear в Linear в Linear уже нет
  • Вложенные веса в вёрстке