- Создать приложение "Тинькофф Новости", которое будет загружать из API
https://api.tinkoff.ru/v1/news
заголовки новостей банка и показывать их в виде списка. - Жест pull-to-refresh приводит к обновлению списка новостей.
- По тапу на ячейку списка осуществляется переход просмотру полной информации по выбранной новости.
- Загрузка должна быть постраничной (по 20 новостей). Параметры для постраничной загрузки:
Название | Обязательный | Описание |
---|---|---|
First | Начало ограничения количества сущностей. Нумерация локальна для возвращаемого массива данных, и начинается с 0. Например, first=20 вернет сущности с порядковыми номерами в списке от 20 до last (или до конца, если last не указан). | |
Last | Конец ограничения количества сущностей. Нумерация локальна для возвращаемого массива данных, и начинается с 0. Например, last=25 вернет сущности с порядковыми номерами в списке от first (или от 0, если first не указан) до 25 |
- Пример:
https://api.tinkoff.ru/v1/news?first=20&last=40
- На каждой ячейке должен быть счетчик (число), отражающий количество переходов к просмотру деталей этой конкретной новости
- При нажатии на каждую новость, она должна открывать новый экран и показывать содержимое (payload.content) загруженное из API
https://api.tinkoff.ru/v1/news_content?id={ payload[i].id}
- Чистый аккуратный интерфейс с обработкой всех возможных исключений (например, отсутствие интернет-соединения) обязателен
- Приложение должно быть написано на Swift. Без использования сторонних библиотек/подов
- Данные о новостях и счетчик просмотров необходимо кэшировать, используя CoreData (особое внимание уделяется реализации стека CoreData и работе с записью/чтением данных)
- Закэшированные данные отображаются перед отправлением запроса на обновление данных
- Закэшированные данные доступны и после перезапуска приложения