TGViewer
AppFiles - Mobile Development AppFiles - Mobile Development @applib · 2.18K subscribers
Post #3872 385
Опенсорс-библиотека Implicits от Яндекс Браузера: новый шаг в передаче зависимостей Swift

Когда iOS‑приложение вырастает до сотен тысяч строк, появляется проблема: добавление зависимости в глубокий компонент требует изменений во всех промежуточных функциях. Эти функции зависимость не используют — они просто передают её дальше. Сигнатуры разбухают, рефакторинг превращается в массовую правку файлов, и значительная часть кода становится техническим шумом.

Проблема известна. Scala использует implicit parameters на уровне языка, Kotlin экспериментирует с context receivers, Android полагается на Dagger. А Swift не предлагает встроенного решения. Поэтому мы в команде Яндекс Браузера создали библиотеку Implicits — механизм неявной передачи зависимостей с compile‑time‑проверками. Она успешно работает в продакшне Браузера на полутора миллионах строк Swift‑кода, а ещё доступна в опенсорсе.

Статья: https://habr.com/ru/companies/yandex/articles/976898/
Платформа: iOS

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
  • 👍 2
More from @applib
  1. Oct 15, 2026AsoBeast - self-hosted ASO-инструмент для отслеживания ключевых слов в App Store и Google…
  2. Oct 14, 2026Куда девается место на диске: Xcode, рабочие деревья и ИИ-агенты Несколько недель назад мо…
  3. Oct 14, 2026Как эффективно отлаживать код, когда вы перестали его понимать С развитием AI-кодинга возн…
  4. Oct 14, 2026CodexKit - SDK для создания агентов CodexKit — это SDK на Swift для встраивания агентов в…
  5. Oct 13, 2026Куда делись все вакансии для Android-разработчиков? Я всё думаю о том, насколько иначе рын…
  6. Oct 13, 2026Мы научили агента писать тесты так, как их пишет наша команда Каждому iOS-разработчику зна…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →