gitverse new year логотип

internship_ios_2022

Форк
0

2 года назад
2 года назад
README.md

Тестовое задание на позицию стажёра в iOS + разбор (информация ниже)

Общее описание задания

Написать приложение для 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

Описание

Тестовое задание на позицию стажёра в iOS

Языки

Swift

Сообщить о нарушении

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.