Sourcery — это генератор кода для языка Swift, который гарантированно сэкономит ваше время. Он используется в более чем 40 000 проектов для iOS и macOS и поддерживает некоторые из самых популярных и получивших признание критиков приложений, которые вы использовали (включая Airbnb, Bumble, New York Times).

Сценарий использования:

С помощью небольшой магии мы преобразовали это:

в это 🪄:

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

Узнайте, как использовать источник

Забавный факт: вы можете понять и настроить Sourcery быстрее, чем смотреть фильм о Гарри Поттере. 🍿

1. Загрузите исходный код

Мы собираемся загрузить Sourcery с Cocopods.

Добавьте pod 'Sourcery' к Podfile, а затем pod install

Помните: Sourcery не является зависимостью в исходном коде вашего проекта, он не будет отправлен в окончательное заархивированное приложение. Это как свифтлинт. Таким образом, Cocoapods будет загружать для нас только исполняемый файл, а затем мы собираемся его использовать. Без него мы не можем творить чудеса 🪄

2. Используйте источник

Теперь, когда у нас есть инструмент для волшебства (исполняемый файл), мы должны знать, как его запускать.

Pods/Sourcery/bin/sourcery --sources "PROJECT_NAME/Source" \
--templates "PROJECT_NAME/TemplateMagic" \
--output "PROJECT_NAME/Source"
  • Источники → Входные файлы, которые Sourcery должен читать для создания других файлов. (например, в приведенном выше примере FooProtocol.swift находится внутри PROJECT_NAME/Source)
  • Шаблоны → Инструкции для Sourcery, чтобы знать, для каких классов/перечислений создавать код и какой код.
  • Вывод → Папка, в которой исходники будут сохранять сгенерированные файлы.

Совет: если вы хотите, чтобы Sourcery запускался в каждой сборке, вы можете добавить его в фазы сборки.

3. Научитесь писать собственные шаблоны (заклинания)

Stencil — самый популярный язык шаблонов для написания ваших пользовательских шаблонов.
Давайте теперь создадим наш собственный пользовательский шаблон, чтобы мы могли гордиться Гарри Поттером ⚡️ :)

Совет. Между {% и %} находится код шаблона трафарета.

Совет: First for повторяет все протоколы с аннотацией/комментарием MyFirstSpell

Каждый фокусник начинает с простых заклинаний для превращения предметов в лягушек 🐸

А теперь побегаем 🪄

Наблюдение: комментарий в первой строке обязателен, иначе у нас не будет вывода (нет функций лягушки).

И после заклинания:

Вы сделали это 🎉. Слава вам. Ты официально новый маг. Я ожидаю увидеть больше заклинаний от вас.

Узнайте больше о том, как писать еще более мощные заклинания, здесь:
https://www.youtube.com/watch?v=GNmLVq14LC8

Если вы нашли эту статью полезной, не забудьте поставить несколько аплодисментов 👏, вы помогаете коллеге-волшебнику продолжать писать такие статьи!

И чуть не забыл... Вот несколько заклинаний, которые я использую постоянно и хочу поделиться ими с вами.

AutoMockable

Автоприравнивание:

Преобразуйте перечисление, чтобы оно соответствовало эквивалентному протоколу.

Больше контента на blog.devgenius.io.