Эффективная DI библиотека на Swift в 200 строк кода

Библиотека EasyDi содержит контейнер зависимостей для Swift. Синтаксис этой библиотеки был специально разработан для быстрого освоения и эффективного использования. Она умещается в 200 строк, при этом умеет все, что нужно взрослой Di библиотеке:

— Создание объектов и внедрение зависимостей в существующие
— Разделение на контейнеры — Assemblies
— Типы разрешения зависимостей: граф объектов, синглетон, прототип
— Разрешение циклических зависимостей
— Подмена объектов и конктесты зависимостей для тестов

В EasyDi нет разделения на register/resolve. Вместо этого зависимости описываются вот так:

var apiClient: IAPIClient {
  return define(init: APIClient()) {
    $0.baseURl = self.baseURL
  }
}

Cocoapods / EasyDi
Github / EasyDi

Под катом очень краткое описание «Зачем DI и что это», также примеры использования библиотеки:

  • Как использовать и типы зависимостей
  • Как тестировать c подменой объектов
  • Как можно это использовать для A/B тестов
  • Как собрать VIPER-модуль

Читать дальше →

Новинки ASUS на выставке Computex 2017

Тайваньская выставка Computex остается одним из самых значимых событий в мире потребительского IT. Многие производители стараются подготовить новые продукты или, как минимум, их анонсировать на популярной площадке в Тайбэе. Исторически Computex была «компьютерной» выставкой, однако даже в названии заложено определение compute (анг., вычисление), а это существенно расширяет тематику и охват мероприятия. Computex действительно трансформируется, отвечая […]

Новая версия iPad-приложения Swift Playgrounds позволяет управлять объектами из реального мира — роботами, дронами и другими умными устройствами

На этой неделе компания Apple объявила о том, что в приложении для обучения программированию Swift Playgrounds на iPad появились новые возможности управления роботами, дронами и музыкальными инструментами. В частности, возможность подключиться к Swift Playgrounds через Bluetooth получили такие популярные устройства, как LEGO MINDSTORMS EV3 и дроны Parrot. Владельцы комплекта LEGO MINDSTORMS Education EV3 смогут запрограммировать […]