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