Приложение, состоящее из двух экранов и отображающее список товаров и детальную информацию по каждому товару
Main View | Details View | Details View on a small screen |
---|---|---|
Loading state | Error state | Images still loading |
Main View | Details View |
---|---|
У каждого экрана должно быть три состояния:
- Отображение ошибки
- Состояние загрузки
- Отображение контента из JSON файла
Внешний вид приложения реализовывается на усмотрение кандидата, за референс можно брать приложение Авито. Для каждого экрана нужно будет загружать данные в формате JSON из интернета:
- https://www.avito.st/s/interns-ios/main-page.json
- URL для запроса на главном экране.
- https://www.avito.st/s/interns-ios/details/{itemId}.json
- URL для запроса на детальной странице. ID берется из данных для главного экрана.
- Пример ссылки: https://www.avito.st/s/interns-ios/details/1.json
- Приложение написано на языке Swift.
- Пользовательский интерфейс приложения реализован кодом без использования SwiftUI.
- Для отображения списка используется UICollectionView с отображением в 2 столбца.
- Для запроса данных используется URLSession.
- Swift
- UIKit
- MVVM
- Combine
- Склонируйте репозиторий.
- Откройте проект в Xcode.
- Выберите целевое устройство для запуска.
- Нажмите кнопку "Run" в Xcode для сборки и запуска приложения.