Написать приложение для iOS. Приложение должно состоять из одного экрана со списком. Список данных в формате JSON приложение загружает из интернета по ссылке, необходимо распарсить эти данные и отобразить их в списке.
Пример возвращаемых данных.
- Приложение работает на iOS 13 и выше
- Реализована поддержка iPhone и iPad
- Список отсортирован по алфавиту
- Кэширование ответа на 1 час
- Обработаны случаи потери сети / отсутствия соединения
Внешний вид приложения: по возможности, лаконичный, но, в целом, на усмотрение кандидата.
- Приложение написано на языке Swift
- Пользовательский интерфейс приложения настроен в InterfaceBuilder (в Storiboard или Xib файлы) или кодом без использования SwiftUI
- Для отображения списка используется UITableView, либо UICollectionView
- Для запроса данных используется URLSession
- Код должен быть выложен в git-репозиторий на github.com и отправлен нам.
Пример решения тестового задания можно найти в папке SolutionExample
. Чтобы его запустить достаточно вызвать .xcodeproj
.
Чуть подробнее про само решение:
- Для отображения списка используется UITableView (см.
Modules/MainPage
) - Кэширование данных реализовано с помощью связки
URLCache
+UserDefaults
(см.Networking/Client/NetworkClientImpl.swift
) - Обработка случаем потери сети / отсутствия соединения так же находится в файле
NetworkClientImpl.swift
- Работа с многопоточкой происходит через
async\await