Skip to content

IvanKrim/UIKit-Hotels

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

68 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

UIKit-Hotels

Обзор

20220221-235348-415-2 DarkModeHotelsApp

Данный проект ялвляется тестовым заданием

Требования:

Необходимо написать приложение, которые загружает с сервера JSON с информацией о нескольких отелях, парсит его и выводит на экран данные этих отелей. Формат отображения этих данных остается на усмотрение разработчика. Пока идет загрузка данных, пользователь должен об этом знать, соответственно, необходимо отображать activity indicator (не индикатор в статусбаре).

Должна присутствовать возможность отсортировать отели по одному из двух параметров: по расстоянию отеля от центра города или по количеству свободных номеров (данные есть в JSON-файле из API). Контрол для выбора типа сортировки остаётся на усмотрение разработчика. Первичная сортировка должна совпадать с выдачей с сервера.

Необходимо предусмотреть возможность просмотра подробной информации об отеле на отдельном экране, включая изображение. Формат отображения данных об отеле остаётся на усмотрение разработчика. Изображение отеля имеет границу по краю шириной в 1px, обязательно надо избежать отображения этой границы в интерфейсе.

Приложение должно быть собрано на последнем публичном стабильном SDK и стабильно работать на 3 последних версиях iOS (например, с сентября 2021 это iOS15, iOS14 и iOS13), должно поддерживать все размеры экранов iPhone и быть оформлено с базовыми UI контролами по Apple Design Guidelines. Язык — Swift (последняя публичная стабильная версия).

Код должен быть поддерживаем и переиспользуем.

Код-стайл должен быть таким, чтобы работа в команде над подобным проектом была комфортна.

Реализация

MVVM

  • Адаптивная верстка кодом с использованием NSLayoutConstraint & Anchors
  • Архитектура MVVM
  • Работа с сетью URLSession
  • Работа с изображениями URLSession, нативная реализация кропа изображения согласно ТЗ
  • Кеширование изображений NSCache
  • Отображение ошибок через UIAlerController
  • NetworkMonitor для отслеживания сетевого подключения

MVC

  • Адаптивная верстка кодом с использованием NSLayoutConstraint & Anchors
  • Архитектура MVC
  • Работа с сетью URLSession
  • Работа с изображениями Kingfisher
  • Отображение ошибок через UIAlerController
  • NetworkMonitor для отслеживания сетевого подключения

Реализацию MVC версии вы можете посмотреть в одноименной ветке:

Screenshot 2022-02-22 at 00 16 33

Будет реализовано

  • Unit Tests

This is Test app

Requirements:

  • iOS 13.0+
  • Implementation of MVC and MVVM templates
  • Programmatically Layout without SnapKit
  • URLSession

About

My test project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages