Comments 11
Спасибо за материал!
Полезная статья. Понравилось про версионирование.
По тексту это просто перевод Readme для каждого менеджер зависимостей. А где важные детали ? например:
Cocoapods: какие файлы нужно комитать в гит ? Нужно ли комитать Podfile.lock файл ? Нужно ли комитать Pods директорию, какие плюсы/минусы для Pods директории это имеет.
Carthage: нужно ли комитать Cartfile.resolved ? Нужно ли комитать Checkout & Build директории, если да то какие плюсы минусы.
SPM: где хранятся исходники скаченных библиотек и как это связано с очищением DerivedData
Cocoapods если добавить 50 зависимостей в виде динамических библиотек, что произойдет с временем запуска приложения ?
При работе с каким менеджером у Xcode наилучший перформанс
Привет! Спасибо за комментарий.
Согласимся, что информация про DerivedData и перформанс была бы полезной, но базовую работу с гитом и что нужно коммитить, а что нет, статья не затрагивает.
Важные детали для всех разные, в рамках одного материала раскрыть их все попросту невозможно. Автор статьи считает, что раздел про библиотеки и фреймворки, а также описание работы менеджеров, не менее важны, чем работа с гитом и перформанс.
Привет, но у вас написано:
Материал будет полезен джун-специалистам, которые только начали погружаться в разработку
Я джун, добавил зависимость через Cocoapods как вы написали, git status -sb мне показал ./Pods/ директорию как новую, мне ее нужно комитать в проект или добавить в игнор ? Спасибо.
Нет, resolved и lock файлы, а также Pods и Carthage директории коммитить не нужно.
Действительно, это важно знать джун-специалисту, но, повторим, подробно раскрыть абсолютно все базовые вещи в одной статье не получится.
Carthage директории коммитить не нужно
Спорное утверждение. В проекте 20 библиотек, при запуске тестов на CI их сборка занимает 10 минут (так как вы писали Carthage собирает все схемы), а сами тесты проходят за 3 минуты, если их закоммитить в проект (бинарники папку Carthage/Build) то на каждый прогон тестов их собирать не надо, то есть +10 минут к сборке приложения (да, не без минусов).
resolved коммитить не нужно.
Откуда тогда Carthage узнает какая у вас версия зависимости если она в Cartfile не указана явно, вы писали пример "MyFramework.json" ~> 2.3, как Carthage без resolved поймет нужна 2.3.0 или 2.3.1, или 2.3.9 ?
lock коммитить не нужно.
Аналогично с resolved как Cocoapods поймет какие конкретные версии нужно скачать чтобы ваш коллега на своей машине имел полную копию зависимостей как у вас.
Также из личного опыта почти все современные Carthage зависимости не соберутся без флага --use-xcframeworks. Чтобы по-настоящему собирать из кэша нужно использовать флаг --cache-builds. Также чтобы максимально ограничить сборку под iOS следует передавать флаг --platform iOS, но на моей практике правда от него мало пользы.
Чел, все правильно пишешь.
Но подумай в следующий раз про tone of voice. Можно же по-другому те же вещи написать, сделать конструктивное дополнение к статье и оставить полезный для сообщества комментарий.
А то получается очереднярский псевдосеньор залетел в комменты, понегативил туда и потешил своё самолюбие.
Спасибо за статью, надеюсь рано или поздно все перейдут на SPM)
Полезно для систематизации информации!
Cocoapods, Carthage, SPM: как выбрать менеджер зависимостей в iOS