🔥

Тред (Данила Шевлюк)


Тред про генерацию проектов в iOS, поехали! 🧵

В iOS много всяких мелких моментов, про которые ты когда узнаешь то думаешь "оооооо, нифига себе" Особенно это относится к вещам, которые нужно тыкать мышкой в IDE или AppStore Connect 😭🥵

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

Проще всего это объяснить на аналогии со сторибордом. Минусы точно такие же, как и при редактировании проекта: - сложный UI, который работает далеко не всегда🕵🏻 - дифф выглядит так же сложно, как дифф между картинками 😅 - файлы меняются даже если просто что-то открыть 😵‍💫

Как только я узнал, что можно генерировать файлы проектов и забыть про все эти окошки, меню и галочки, то мир изменился навсегда. Тут на арену залетает Xcodegen github.com/yonaskolb/Xcod…

Просто делаете конфиг проекта в смузи-yaml формате, вызываете волшебный скрипт и все случается само собой! Можно не коммитить .xcodeproj и вообще больше не заходить в Build Settings и Build Phases.
notion image

К новой схеме работы нужно немного привыкнуть, но обратно уже не захочется. Я уже даже не представляю как живут люди с галочками и конфликтами в файлах проекта. Думаю кто-то получает зп только за то, что хорошо умеет их разруливать 👮🏻

Помимо Xcodegen есть ещё один более новый проект Tuist. Там все ещё круче из-за того, что все конфиги нужно писать на Swift, есть встроенные штуки для генерации кода и очень качественная документация.

Я больше пользоваться Xcodegen, но недавно погружался в Tuist и он показался мне более секси. Вот отличное сравнение от @SurfStudioRu habr.com/ru/company/sur…

Это дополнительная внешняя зависимость, но я думаю, что сейчас генерация файлов проекта это уже must have. Простой адопшен + ускоряем команду + можно уволить того самого челика или посадить его настраивать новые инапы для отправки на ревью в коннекте 😆

Закидывайте в реплаи свои истории про плюсы и минусы такого подхода, всегда интересно послушать кулстори 🚀

Данила ШевлюкДанила Шевлюк