/NewWorker

Test task NewWorker with TableView, Core Data, Network request

Primary LanguageSwift

Задание 1

Создайте NewWorkerViewController (наследник от UITableViewController). TableView состоит из следующих ячеек:

Аватар (Ячейка с UIImageView) Имя (Ячейка с UITextField) Фамилия (Ячейка с UITextField) Дата рождения (Ячейка с UITextField или c UIDatePicker) Компания (Ячейка с disclosure indicator) По нажатию открывается еще один UITableViewController с списком компаний: Apple, Google, IBM, Tesla, Microsoft По нажатию на одну из компаний, отобразить выбранный вариант на NewWorkerViewController Кнопка “Сохранить” По нажатию открывается UIAlertController с сообщением об успешном сохранении данных

NewWorkerViewController должен быть назначен корневым (root) для проекта.

Задание 2

Посредством встроенных инструментов создайте CoreData модель. Внутри модели создайте сущность WorkerEntity. Сущность имеет свойства:

Image (URL) Name Second Name Birthday Company Реализуйте сохранение введенных данных из NewWorkerViewController в созданную модель CoreData

Задание 3

Ознакомьтесь с Lorem Picsum

Используя метод picsum.photos/200 обновите NewWorkerViewController. По нажатию на ячейку аватара, загрузите изображение используя вышеупомянутый метод.

По нажатию на кнопку “Сохранить” изображение сохраняется вместе со всеми данными о сотруднике.

Задание 4

Создайте UITabBarController. Назначьте его корневым для проекта. Контроллер состоит из двух табов: Сотрудники, Компании

На табе “Компании” в навигационную панель добавьте кнопку “Создать”. По нажатию на кнопку, показывается UIAlertController с UITextField, в который пользователь сможет ввести название новой компании.

На табе “Сотрудники” в навигационную панель добавьте кнопку “Создать”. По нажатию на кнопку отобразите на экране уже ранее созданный NewWorkerViewController.

На контроллере “Компании” отобразите список введенных компаний в модель CoreData.

На контроллере “Сотрудники” отобразите список введенных сотрудников. По нажатию на “сотрудника” отобразите детальную информацию.

Задание 5.1*

Задание повышенной сложности

Обновите модель CoreData, добавив новую сущность – CompanyEntity, которая имеет свойства:

name employees это связь с сущностью WorkerEntity. Используйте связь типа ко многим (To Many)

Соответственно измените сущность WorkerEntity.

В NewWorkerViewController измените выбор компании таким образом, чтобы задействовать новую сущность CompanyEntity из CoreData.

Замените реализованную логику присвоение аватара. Допускается использование любого сервиса для поиска картинок. По нажатию на ячейку с аватаром, отобразите ViewController с коллекцией изображений. По нажатию на изображение из коллекции, аватар будет присвоен сотруднику.

Задание 5.2*

Задание повышенной сложности

На контроллере “Компании” по нажатию на компанию отобразите детальную информацию:

Первая секция (section) Название компании Количество сотрудников Вторая секция История найма сотрудников Добавьте возможность удаления компаний и сотрудников из списков в соответствующих табах. Эти изменения должны отразиться на всех контроллерах, где встречаются сущности компания и сотрудник