Во время долгих операции или когда отсутвуют данные, экран не должен пустовать. Как правило показывается специальное вью, с соответствующей информацией.
Существуют 3 базовых типа:
- Загрузка
- Ошибка
- Данные пусты
Класс. Управляет отоборажением вьюх для нужного типа индикации. Для правильной работы нужно указать container и providers
Протокол. Описывает куда и как будут помещаться вьюхи индикации. Для позиционирования используется UILayoutGuide, чтобы не создавать лишнюю вьюху Имеется готовое расширение для UIViewController, которое под капотом всё это настраивает.
Протокол, через него ARCHIndicationHelper
получает вьюху или обертку над ней.
На своем проекте можете более детально настоить Provider, может сразу хранить ссылки на вьюхи или выступать в качетсве фабрики.
Это уникальный id описывающий нужный тип индикации.
Данная структура реализуют возможности OptionSet
, что позволяет безопасно расширять пулл типов индикации.
- iOS 10.0+
- Swift 4.1
- Xcode 9
Для интеграции HHIndication пропиши в Cartfile
:
github "Heads-and-Hands/architecture-team-a-ios"
Запусти команду carthage update --platform ios
. Добавь в проект HHModule.framework
и HHIndication.framework
- [Один раз] Создай модель данных, выполняющая протокол ARCHIndicationState
- [Один раз] Создай вьюшки для индикации
- [Один раз] Создай Provider, реализующий протокол
ARCHIndicationViewProvider
- [Опционально] Упрости инициализацию ARCHIndicationHelper:
class IndicationHelper: ARCHIndicationHelper<IndicationState> {
static var defaultProviders: [ARCHIndicationTypes: ARCHIndicationViewProvider] {
let type: ARCHIndicationTypes = [.loading, .empty, .error]
return [type: IndicationViewProvider()]
}
override init() {
super.init()
providers = IndicationHelper.defaultProviders
}
}
- Подключи хелпер во UI слой, укажи container
- Добавь в состояние модуля поле типа объекта, созданного на (1) шаге