Инструкций по запуску и сборке проекта не добавляю, все запускается с 0. Оставлю комментарии о реализации задания :
Главный Экран - делал вёрстку через storyboard, содержимое ячейки создавал через Xib file. В моделе создал структуру данных получаемых из Api, в ServiceApi логику по получению этих данных, а так же функцию получения картинки обложки книги по id. Добавил alert который появляется если при получении данных произошла ошибка, с просьбой проверить соединение и попробовать загрузить список книги еще раз.
Экран с информацией о книге - верстку делал кодом (специально применил разный подход на разных экранах). Информацию о книге брал из готовой модели. Для получения информации о содержании книги создал новую модель с 2-мя разными структурами данных. Через проверку получаемых данных в JSON в Postman установил что данные приходили у некоторых книг в другом формате. И это нужно было обработать. Это реализовано в func loadData() в BookDetailsViewController. И в ServiceApi создал функции под каждую из этих 2-х моделей.
Вот два скрина где видно что есть 2 разных формата в которых приходит описание книги:
Добавил приложению appIcon.