👋 Как мы использовали макросы для внедрения MVVMНе смог удержаться и не разбавить статью из техблога duolingo мемами про сам duolingo. У кого еще есть любимые мемы про сову, кидайте в комменты
Рост команды и кодовой базы🔵Команда инженеров iOS значительно выросла за последние несколько лет.
🔵Размер кодовой базы также значительно увеличился.
🔵Команда Client Architecture стандартизировала код на основе MVVM.
🔵Это повысило согласованность кода и скорость разработки.
Использование макросов Swift🔵Макросы генерируют новый код во время компиляции, оперируя с AST
🔵Они позволяют сократить количество шаблонов и сохранить ясность кода
🔵Макросы используют расширения Key для сбора контекста
🔵Пример: автоматическое создание реализации KeyValueDataSource
🟢Макросы экономят время и снижают вероятность ошибок
🔴Недостатки: код недоступен для поиска в Xcode, иногда требуется перестраивать пакет
🔴Добавление макросов увеличило время сборки
🟢Решение: выгрузка бинарника в S3
Результаты🟢В базе кода iOS более 4300 строк сгенерированного макросами кода
🟢Макросы упрощают разработку и улучшают качество кода
🟢Макросы используются для автоматической генерации протоколов и инициализаторов