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.