ЗАДАЧА:
Генератор случайных имен
Приложение позволяет пользователю выбрать имя для ребенка по переданным параметрам.
Приложение позволяет пользователю указывать параметры для генерации имени.
Приложение позволяет просматривать сгенерированное имя, удовлетворяющее указанным пользователем параметрам.
Параметры для генерации имени:
Пол: мужское, женское, универсальное, любое;
Количество букв в имени;
Национальность (минимум 3);
Количество имен для генерации.
Общее количество заранее подготовленных имен — не менее 50 на каждую национальность.
ТРЕБОВАНИЯ:
В корне проекта приложения должен располагаться файл README.txt с описанием задания.
Приложение должно выполнять все функции, описанные в задании к лабораторной работе.
Приложение не должно содержать ошибок.
Приложение должно корректно обрабатывать неправильный ввод от пользователя.
Архитектура приложения должна соответствовать шаблону Model-View-ViewModel.
Навигация в приложении должна быть построена с помощью редактора навигации.
Приложение должно сохранять состояние экранов при смене ориентации.
Приложение должно обладать понятным интерфейсом: показывать помощь по использованию, для ввода данных приложение должно показывать приглашение с сообщением о типе вводимых данных (например, если в поле необходимо ввести имя пользователя, необходимо добавить соответствующую подсказку к этому полю).
Все отображаемые в приложении строки должны быть интернационализированы и располагаться в соответствующих файлах ресурсов: res/values/strings.xml (для строк на английском языке) и res/values-ru/strings.xml (для строк на русском).
Что стоит использовать \ что проверяется:
Уровень знания языка Kotlin:
Описание и объявление числовых переменных, строк, массивов;
Использование управляющих конструкций, условных выражений, циклов;
Описание классов и интерфейсов;
Работа с Null-безопасностью.
Уровень знакомства с экосистемой Android:
Сборка, запуск и управление зависимостями проекта;
Создание макетов приложения;
Использование Data Binding;
Реализация навигации в приложении с помощью редактора навигации;
Работа с жизненным циклом фрагментов и активностей;
Использование шаблона построения архитектуры Model-View-ViewModel;.