# Требования к выполнению лабораторных работ

### Проверяемые знания учащихся

* Уровень знания языка Kotlin:
  * Описание и объявление числовых переменных, строк, массивов;
  * Использование управляющих конструкций, условных выражений, циклов;
  * Описание классов и интерфейсов;
  * Работа с Null-безопасностью.
* Уровень знакомства с экосистемой Android:
  * Сборка, запуск и управление зависимостями проекта;
  * Создание макетов приложения;
  * Использование Data Binding;
  * Реализация навигации в приложении с помощью редактора навигации;
  * Работа с жизненным циклом фрагментов и активностей;
  * Использование шаблона построения архитектуры Model-View-ViewModel;
  * Использование Room для создания базы данных приложения.

### Требования к выполнению

* В корне проекта приложения должен располагаться файл `README.txt` с описанием задания.
* Приложение должно выполнять все функции, описанные в задании к лабораторной работе.
* Приложение не должно содержать ошибок.
* Приложение должно корректно обрабатывать неправильный ввод от пользователя.
* Архитектура приложения должна соответствовать шаблону Model-View-ViewModel.
* Навигация в приложении должна быть построена с помощью редактора навигации.
* Для работы с базой данных (если она необходима) приложение должно использовать Room.
* Приложение должно сохранять состояние экранов при смене ориентации.
* Приложение должно обладать понятным интерфейсом: показывать помощь по использованию, для ввода данных приложение должно показывать приглашение с сообщением о типе вводимых данных (например, если в поле необходимо ввести имя пользователя, необходимо добавить соответствующую подсказку к этому полю).
* Все отображаемые в приложении строки должны быть интернационализированы и располагаться в соответствующих файлах ресурсов: `res/values/strings.xml` (для строк на английском языке) и `res/values-ru/strings.xml` (для строк на русском).
