You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Клоним плейграунд и копируем код из него в новый iOS проект под названием MARepos.
Приложение должно отображать navigation controller с MA репозиториями, установленного в качестве root view controller-а в window.
Создаем новый target с типом iOS Framework и называем его MAReposFramework.
Перемещаем весь код нашего приложения (кроме AppDelegate и/или SceneDelegate) в MAReposFramework.
Нужно убедиться что все исходники принадлежат target-у MAReposFramework, а не target-у приложения.
Необходимо чтобы MAReposFramework был импортипрован в AppDelegate и/или SceneDelegate приложения MARepos чтобы иметь доступ к ReposViewController для создания инстанса ReposViewController.
Собираем приложение и убеждаемся, что все работает так же, как и прежде (нужно будет сделать некоторые типы и функции публичными)
Создаем iOS playground и перетаскиваем его в проект приложения.
Импортируем MAReposFramework, создаем экземпляр ReposViewController и устанавливаем его как live view playground-а.
Можно использовать исходный код playground-а в качестве примера.
Подменяем Current: live заменяем mock вариантом (нужно объявить статические свойства live и mock для Environment)
Теперь страница playground-а может выступать live примером этого экрана.
Меняем mock чтобы протестировать разные состояния, чтобы изменения вступили нужно пересобрать MAReposFramework
Задание 2
В приложении есть еще несколько зависимостей которые мы не затронули.
Давайте исследуем как их взять под контроль выполнив несколько упражнений:
Клиент аналитики использует несколько синглетонов: Bundle.main, UIScreen.main и UIDevice.current. Извлекаем эти зависимости в Environment. Какие есть преимущества контроля этих зависимостей?
DateComponentsFormatter может производить разные строки для разных языков и локалей, и по умолчанию в нем установлена локаль устройства.
Извлекаем эту зависимость в Environment и управляем ею в форматировщике
Приводим несколько примеров того как mock-и Current-а позволяют нам тестировать форматирование для разных языков и локалей.
Примечание Evironment это то же, что и World упоминаемый в лекции.
The text was updated successfully, but these errors were encountered:
Задание 1
Создаем новый target с типом iOS Framework и называем его MAReposFramework.
Меняем mock чтобы протестировать разные состояния, чтобы изменения вступили нужно пересобрать MAReposFramework
Задание 2
В приложении есть еще несколько зависимостей которые мы не затронули.
Давайте исследуем как их взять под контроль выполнив несколько упражнений:
Примечание Evironment это то же, что и World упоминаемый в лекции.
The text was updated successfully, but these errors were encountered: